Your help desk application may have the facility to store large amount of data but this can also hinder the performance of your help desk tool. This guide provides certain queries to improve the performance of ManageEngine ServiceDesk Plus.
To execute the query, you need to access the MySQL database. Click the respective OS link (Windows or Linux) to know how to access the MySQL database.
NOTE: Please restart ServiceDesk Plus after executing the query for the changes to get applied.
The list of performance tips discussed in this guide is,
We recommend at least 2GB of RAM on the server machine if it's dedicated to ServiceDesk Plus. In cases where you have enough RAM but still have performance issues, then follow the instructions given below,
Go to ManageEngine\ServiceDesk\server\default\conf folder
Edit the wrapper.conf file on a wordpad and change the parameters according to the RAM size on the server machine:
By default, the maximum java heap size is 512 MB.
If you have 3GB of RAM, then change 512 to 768,
# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=512
to
# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=768
If you have 4 GB of RAM, then change 512 to 1024
If the RAM is 3GB or 4GB, then along with the maximum memory configuration, you could also change the following,
wrapper.java.additional.19=-XX:PermSize=64m
can be changed to,
wrapper.java.additional.19=-XX:PermSize=128m
And,
wrapper.java.additional.20=-XX:MaxPermSize=128m
can be changed to,
wrapper.java.additional.20=-XX:MaxPermSize=256m
You could also perform a tuning of the MySQL database. The instructions are given below,
Go to ManageEngine\ServiceDesk\bin folder
Edit startdb.bat file on a wordpad and append the following parameters to the last line of the file based on the RAM size.
For 1GB RAM:
--set-variable=query-cache-type=2 --read_buffer_size=128K --read_rnd_buffer_size=1M --sort_buffer_size=1M --myisam_sort_buffer_size=4M --tmp_table_size=32M --max_heap_table_size=32M --key_buffer_size=32M --innodb_buffer_pool_size=128M --bulk_insert_buffer_size=16M --table_cache=512 --thread_cache=32 --innodb_flush_log_at_trx_commit=0 --low-priority-updates
For 2GB of RAM:
--set-variable=query-cache-type=2 --read_buffer_size=128K --read_rnd_buffer_size=1M --sort_buffer_size=2M --myisam_sort_buffer_size=4M --tmp_table_size=32M --max_heap_table_size=32M --key_buffer_size=32M --innodb_buffer_pool_size=256M --bulk_insert_buffer_size=16M --table_cache=512 --thread_cache=32 --innodb_flush_log_at_trx_commit=0 --low-priority-updates
For 3GB of RAM:
--set-variable=query-cache-type=2 --read_buffer_size=128k --read_rnd_buffer_size=1M --sort_buffer_size=2M --myisam_sort_buffer_size=8M --tmp_table_size=32M --max_heap_table_size=32M --key_buffer_size=64M --innodb_buffer_pool_size=750M --bulk_insert_buffer_size=16M --table_cache=750 --innodb_flush_log_at_trx_commit=0 --low-priority-updates
For 4GB of RAM:
--set-variable=query-cache-type=2 --read_buffer_size=128K --read_rnd_buffer_size=2M --sort_buffer_size=2M --myisam_sort_buffer_size=8M --tmp_table_size=32M --max_heap_table_size=32M --key_buffer_size=64M --innodb_buffer_pool_size=1024M --bulk_insert_buffer_size=16M --table_cache=900 --innodb_flush_log_at_trx_commit=0 --low-priority-updates
If you have followed the above instructions but still have an issue with the performance, then send the below stated log files to our Support Team for further analysis.
1. wrapper.log from ManageEngine\ ServiceDesk\bin
2. serverout0.txt,.....,serverout5.txt from ManageEngine\ServiceDesk\server\default\log
You can schedule data archiving of closed and resolved requests at regular intervals to improve the performance of ServiceDesk Plus. Refer Data Archiving to learn more on archiving requests.
If you have many nodes say, more than 1000, then scanning these nodes at regular intervals would hinder the performance of ServiceDesk Plus. To reduce the load on the server, you could scan these nodes using Distributed Asset Scan. All you need to do is install remote ServiceDesk Plus servers across departments. These remote servers scan the nodes at regular intervals and export the data to the central ServiceDesk Plus server.
The Request Count displays the total number of requests in the request list view page. Larger the request count value, the longer it takes to display the requests in the list view page.
The request count value cannot be removed. Instead you can choose to view the request count, by clicking a Row Count button in the request list view page.
To show the Row Count button, use the query,
update GlobalConfig set PARAMVALUE='FALSE' where CATEGORY='PERFORMANCE' and PARAMETER='SHOW_REQUEST_COUNT';
The Refresh Timer refreshes the request list view page at regular intervals. But this can slow down the performance of ServiceDesk Plus.
You can disable the Refresh Timer option by using the query,
update GlobalConfig set PARAMVALUE='FALSE' where CATEGORY='PERFORMANCE' and PARAMETER='SHOW_WO_REFRESH_TIME';
The 'All Requests' filter in the request list view displays all the requests that have been created so far, irrespective of the status. But as the number of requests increases, the performance of ServiceDesk Plus gradually slows down.
In this case, you can remove the 'All Requests' option from the filter drop-down using the query,
update GlobalConfig set PARAMVALUE='FALSE' where CATEGORY='PERFORMANCE' and PARAMETER='SHOW_ALL_REQUEST_VIEW';
Decrease the number of requests in List View
In the Request List View page, you would find a drop-down menu to select the number of requests to view per page. Limiting this number to 25 or 50 would eliminate loading of requests and improve the performance of ServiceDesk Plus.
Disable Short Description Search
Short Description refers to the description which appears when you hover over the subject link of the request in the request list view. By default, while performing a search operation, the short description of a request would be searched. But when you have large amount of data, the performance of ServiceDesk Plus eventually decreases.
You can disable this feature by using the query,
update GlobalConfig set PARAMVALUE='false' where CATEGORY='SearchShortDescription' and PARAMETER='Status';
By default, the recent items list is deleted once in every 15 days. But you can improve ServiceDesk Plus's performance by increasing the cleanup frequency.
Example: If you want to cleanup the Recent Item list every 5 days, then use the query,
update GlobalConfig set PARAMVALUE=5 where CATEGORY='CLEANUP_TASK' and PARAMETER='CLEANUP_RI_LIMIT';
The maximum limit for cleaning up recent item list is 90. If you want to disable the cleanup, then set the parameter value as -1.
By default, the error log list is deleted once in every 180 days. But you can increase the cleanup frequency to accelerate the backup process.
Example: If you want to cleanup the Error Log list every 30 days, then use the query,
update GlobalConfig set PARAMVALUE=30 where CATEGORY='CLEANUP_TASK' and PARAMETER='CLEANUP_ERROR_LOG_LIMIT';
The maximum limit for cleaning up error log list is 365. If you want to disable the cleanup, then set the parameter value to -1.
It is a table containing the session details i.e., the logged in and logged out information. These entries are not used by the application and can be removed periodically for better database performance. By default, the session details are deleted once in every 90 days but for better performance, you can increase the cleanup frequency.
Example: If you want to cleanup the ACC Session every 30 days then use the query,
update GlobalConfig set PARAMVALUE=30 where CATEGORY='CLEANUP_TASK' and PARAMETER='CLEANUP_ACC_SESSION_LIMIT';
The maximum limit for cleaning up the ACC session details is 365. If you want to disable the cleanup, then set the parameter as -1.
Delete System Generated Notifications
System Generated Notifications are notifications generated and sent by the system. You can either delete all the system notifications or manually check the notifications to delete.
If you want to delete all the system notifications then execute the query,
delete from notification where senderid=1;
To get the list of notification titles to delete unwanted notifications, execute the query,
select notificationtitle from notification limit 100;
Example: If the notificationtitle is 'has been added to the group', then use the query to delete notifications under this title,
delete from notification where notificationtitle like '%has been added to the group%';
By default, the number of user data objects that would be cached is 500. But in case of high-end machines with better RAM configurations, this value can be increased to cache more data for quick response.
Example: If you want to increase the cache count to 1000, then use the query,
update GlobalConfig set PARAMVALUE='1000' where PARAMETER='USER_CACHECOUNT';
Increase Technician Cache Count
By default, the number of technician data objects that would be cached is 300. But in case of high-end machines with better RAM configurations, this value can be increased to cache more data for quick response.
Example: If you want to increase the cache to 1000, then use the query,
update GlobalConfig set PARAMVALUE='1000' where PARAMETER='TECHNICIAN_CACHECOUNT';
Increase Message IDs Cache Count
By default, the number of Message IDs that would be cached is 1000. But in case of high-end machines with better RAM configurations, this value can be increased to cache more data for quick response.
Example: If you want to increase the cache count to 2000, then use the query,
update GlobalConfig set PARAMVALUE='2000' where PARAMETER='MESSAGEID_CACHECOUNT';
Increase E-mail IDs / User IDs Cache Count
By default, the number of E-mail IDs / User IDs that would be cached is 1000. But in case of high-end machines with better RAM configurations, this value can be increased to cache more data for quick response.
Example: If you want to increase the cache count to 2000, then use the query,
update GlobalConfig set PARAMVALUE='2000' where PARAMETER='EMAIL_USERID_CACHECOUNT';