您的帮助台application可能具备存储大量数据的功能,但这也可能会影响帮助台工具的性能。本指南提供了一些查询语句,用于提升 ManageEngine ServiceDesk Plus 的性能。
要执行查询,您需要访问 MySQL 数据库。单击相应的操作系统链接(Windows 或 Linux)以了解如何访问 MySQL 数据库。
注意:执行查询后,请重新启动 ServiceDesk Plus,以使更改生效。
本指南中讨论的性能优化技巧列表如下:
Java 调优
必须使用 64 位的Server机器。wrapper.conf 中设置的默认配置已足够使用。但是,在较大的环境中,请按如下方式设置最大堆大小:
# 最大 Java 堆大小(单位:MB)
wrapper.java.maxmemory=4096
启用 MS SQL 快照模式
我们可以在 MSSQL 环境中启用 Read Committed Snapshot,以提升application的性能。它会基于您当前的结果创建一个快照或只读数据库,并与实时数据库分离。因此,当您运行 SELECT 语句读取数据时,您实际上是在从数据库的只读副本中读取数据。当您更改数据库时,更改会发生在实时数据库上,随后会创建一个新的副本或快照供读取使用。
所有 MSSQL 数据库通常都会存在锁问题,这可能会影响application的最佳性能。为避免 ServiceDesk Plus 中出现此类性能问题,请按照以下步骤启用已提交读快照隔离(RCSI):
执行以下命令,使 ServiceDesk Plus 数据库脱机:
运行以下命令以启用已提交读快照:
使用以下命令使数据库联机:
运行以下查询,检查您是否已成功启用 RCSI。
现在您可以启动application。有关 MSSQL 数据库和 RSCI 的更多信息,请单击此处。
启用 MS SQL 快照模式的好处
多个用户可同时查询数据库而不会出现延迟或中断(尽管application上的负载可能会超出平常限制)。
用户查询的记录将保存在独立的 tempdb 中,不会受到并行或后续其他用户查询的影响。
仅在事务完成后才会更新数据库表。
如果您有很多节点,比如超过 1000 个,那么定期扫描这些节点会影响 ServiceDesk Plus 的性能。为减轻Server负载,您可以使用分布式资产扫描来扫描这些节点。您只需在各部门安装远程 ServiceDesk Plus Server。这些远程Server会定期扫描节点,并将数据导出到中央 ServiceDesk Plus Server。
请求计数会在请求列表视图页面中显示请求总数。请求计数值越大,在列表视图页面中显示请求所需的时间就越长。
请求计数值无法被移除。不过,您可以通过单击请求列表视图页面中的行计数按钮来查看请求计数。
要显示“行计数”按钮,请使用以下查询:
刷新计时器会按固定间隔刷新请求列表视图页面。但这可能会降低 ServiceDesk Plus 的性能。
您可以使用以下查询禁用刷新计时器选项:
请求列表视图中的“所有请求”筛选器会显示迄今为止创建的所有请求,而不考虑其状态。但随着请求数量的增加,ServiceDesk Plus 的性能会逐渐下降。
在这种情况下,您可以使用以下查询从筛选器下拉列表中移除“所有请求”选项:
在请求列表视图页面中,您会看到一个下拉菜单,用于选择每页显示的请求数量。将此数量限制为 25 或 50,可减少请求加载并提升 ServiceDesk Plus 的性能。
简短描述是指当您将鼠标悬停在请求列表视图中请求主题链接上时显示的描述。默认情况下,执行搜索操作时,也会搜索请求的简短描述。但当您拥有大量数据时,ServiceDesk Plus 的性能最终会下降。
您可以使用以下查询禁用此功能:
默认情况下,最近项目列表每 15 天删除一次。但您可以通过提高清理频率来改善 ServiceDesk Plus 的性能。
示例:如果您希望每 5 天清理一次最近项目列表,请使用以下查询:
最近项目列表清理的最大限制为 90。如果您想禁用清理,请将参数值设置为 -1。
默认情况下,错误日志列表每 180 天删除一次。但您可以提高清理频率以加快备份过程。
示例:如果您希望每 30 天清理一次错误日志列表,请使用以下查询:
错误日志列表清理的最大限制为 365。如果您想禁用清理,请将参数值设置为 -1。
该表包含会话详细信息,即登录和注销信息。这些条目不会被application使用,因此可以定期移除以获得更好的数据库性能。默认情况下,会话详细信息每 90 天删除一次,但为了获得更好的性能,您可以提高清理频率。
示例:如果您希望每 30 天清理一次 ACC 会话,请使用以下查询:
ACC 会话详细信息清理的最大限制为 365。如果您想禁用清理,请将参数设置为 -1。
系统生成的通知是由系统生成并发送的通知。您可以删除所有系统通知,也可以手动检查通知并删除。
如果您想删除所有系统通知,请执行以下查询:
delete from notification where senderid=1;
要获取通知标题列表以删除不需要的通知,请执行以下查询:
select notificationtitle from notification limit 100;
示例:如果 notificationtitle 是“has been added to the group”,那么可以使用以下查询删除此标题下的通知:
delete from notification where notificationtitle like '%has been added to the group%';
默认情况下,将被缓存的用户数据对象数量为 500。但对于具有更大 RAM 配置的高性能机器,可以增大该值以缓存更多数据,从而获得更快响应。
示例:如果您想将缓存数量增加到 1000,请使用以下查询。
对于 build 11000 或更高版本:
对于旧版本 build:
默认情况下,将被缓存的技术人员数据对象数量为 300。但对于具有更大 RAM 配置的高性能机器,可以增大该值以缓存更多数据,从而获得更快响应。
示例:如果您想将缓存增加到 1000,请使用以下查询。
对于 build 11000 或更高版本:
对于旧版本 build:
默认情况下,将被缓存的消息 ID 数量为 1000。但对于具有更大 RAM 配置的高性能机器,可以增大该值以缓存更多数据,从而获得更快响应。
示例:如果您想将缓存数量增加到 2000,请使用以下查询:
默认情况下,将被缓存的电子邮件 ID / 用户 ID 数量为 1000。但对于具有更大 RAM 配置的高性能机器,可以增大该值以缓存更多数据,从而获得更快响应。
示例:如果您想将缓存数量增加到 2000,请使用以下查询:
数据库的恢复模式定义了事务日志的记录和保留方式。
当前使用的恢复模式有 3 种:简单、完整 和 大容量日志记录。这里我们仅讨论简单和完整模式。
在 SQL Server中,如果事务日志文件未定期备份,它们可能会不断增长并导致数据库故障,因为默认恢复模式为完整模式。
为防止出现这种情况,数据库管理员可以执行以下操作:
a) 使用完整恢复模式并定期备份事务日志
或
b) 将数据库恢复模式设置为简单。
在简单恢复模式下,无法进行时间点恢复,而在完整恢复模式下则可以。
因此,在生产环境中,请将数据库配置为完整恢复模式,以便轻松获得时间点恢复能力。
请按照以下步骤创建备份日志文件:
输出:







输出



在 SQL Server Management Studio 中

i) 在 Database files and filegroups 下,选择 文件类型 为 日志。
ii) 在 Shrink action 下,选择 释放未使用空间

每次applicationServer出现性能问题时,都会密切监控并记录 CPU 和内存使用统计信息。此功能仅适用于 Windows。
启用监控脚本以记录 CPU 和内存使用统计信息。在 PowerShell 中执行以下命令。
转到 ServiceDesk Home/tools/monitoring/CPU_Memory_Monitoring.ps1,并解除位于application目录中的 PowerShell 脚本的阻止。
设置执行策略以运行自定义脚本。您可以使用以下执行策略之一:Bypass、Unrestricted 或 RemoteSigned。