# Guía de rendimiento Es posible que su aplicación de mesa de ayuda tenga la capacidad de almacenar una gran cantidad de datos, pero esto también puede afectar el rendimiento de su herramienta de mesa de ayuda. Esta guía proporciona ciertas consultas para mejorar el rendimiento de ManageEngine ServiceDesk Plus. Para ejecutar la consulta, necesita acceder a la base de datos MySQL. Haga clic en el enlace del sistema operativo correspondiente ([Windows](https://www.manageengine.com/products/service-desk/faq-general-modules.html#database2) o [Linux](https://www.manageengine.com/products/service-desk/faq-general-modules.html#linux6)) para saber cómo acceder a la base de datos MySQL. **NOTA:** Reinicie ServiceDesk Plus después de ejecutar la consulta para que se apliquen los cambios. --- La lista de consejos de rendimiento tratados en esta guía es la siguiente: - [Ajuste de Java](#ajuste-de-java) - [Habilitar el modo Snapshot de MSSQL](#habilitar-el-modo-snapshot-de-ms-sql) - [Escaneo distribuido de activos](#escaneo-distribuido-de-activos) - [Deshabilitar el conteo de solicitudes](#deshabilitar-el-conteo-de-solicitudes) - [Deshabilitar el temporizador de actualización de solicitudes](#deshabilitar-el-temporizador-de-actualización-de-solicitudes) - [Deshabilitar el filtro Todas las solicitudes](#deshabilitar-el-filtro-todas-las-solicitudes) - [Reducir el número de solicitudes en la vista de lista](#reducir-el-número-de-solicitudes-en-la-vista-de-lista) - [Deshabilitar la búsqueda de descripción corta](#deshabilitar-la-búsqueda-de-descripción-corta) - [Límite de limpieza de elementos recientes](#límite-de-limpieza-de-elementos-recientes) - [Límite de limpieza del registro de errores](#límite-de-limpieza-del-registro-de-errores) - [Limpiar la sesión ACC](#limpiar-la-sesión-acc) - [Eliminar notificaciones generadas por el sistema](#eliminar-notificaciones-generadas-por-el-sistema) - [Aumentar el conteo de caché de usuarios](#aumentar-el-conteo-de-caché-de-usuarios) - [Aumentar el conteo de caché de técnicos](#aumentar-el-conteo-de-caché-de-técnicos) - [Aumentar el conteo de caché de IDs de mensajes](#aumentar-el-conteo-de-caché-de-ids-de-mensajes) - [Aumentar el conteo de caché de IDs de correo electrónico / IDs de usuario](#aumentar-el-conteo-de-caché-de-ids-de-correo-electrónico--ids-de-usuario) - [Violación del umbral del tamaño del archivo de registro (MSSQL): mejores prácticas](#violación-del-umbral-del-tamaño-del-archivo-de-registro-mssql-mejores-prácticas) - [Registrar estadísticas de uso de CPU y memoria](#registrar-estadísticas-de-uso-de-cpu-y-memoria) --- ## Ajuste de Java Se requiere contar con un servidor de 64 bits. La configuración predeterminada establecida en `wrapper.conf` es suficiente. Sin embargo, en un entorno más grande, configure el tamaño máximo del heap de la siguiente manera: ```properties # Tamaño máximo del heap de Java (en MB) wrapper.java.maxmemory=4096 ``` ## Habilitar el modo Snapshot de MS SQL Podemos habilitar Read committed Snapshot en el entorno MSSQL para aumentar el rendimiento de la aplicación. Esto crea un snapshot o una base de datos de solo lectura con sus resultados actuales, separada de su base de datos activa. Por lo tanto, cuando ejecuta una instrucción SELECT para leer sus datos, está leyendo desde una copia de solo lectura de su base de datos. Cuando modifica su base de datos, el cambio ocurre en la base de datos activa y luego se crea una nueva copia o snapshot para la lectura. ### Cómo habilitar el aislamiento de snapshot de lectura confirmada (RCSI) Todas las bases de datos MSSQL suelen tener problemas de bloqueo, lo que puede afectar el rendimiento óptimo de una aplicación. Para evitar estos problemas de rendimiento en ServiceDesk Plus, habilite el aislamiento de snapshot de lectura confirmada (RCSI) siguiendo estos pasos: > Esto puede tardar un tiempo en completarse y también requiere tiempo de inactividad, por lo que le recomendamos programarlo durante un fin de semana. 1. Detenga la aplicación ServiceDesk Plus. 2. Inicie sesión en SQL Management Studio. 3. Ponga la base de datos de ServiceDesk Plus fuera de línea ejecutando: ```sql USE master; GO ALTER DATABASE SET OFFLINE WITH ROLLBACK IMMEDIATE GO ``` 4. Habilite Read committed Snapshot ejecutando: ```sql ALTER DATABASE SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE GO ``` 5. Vuelva a poner la base de datos en línea usando: ```sql USE master; GO ALTER DATABASE SET ONLINE GO ``` 6. Verifique si ha habilitado RCSI correctamente ejecutando la siguiente consulta: ```sql SELECT is_read_committed_snapshot_on FROM sys.databases WHERE [name] = '' ``` Si la salida de esta consulta es 1, ha habilitado RCSI correctamente. Ahora puede iniciar la aplicación. Para obtener más información sobre las bases de datos MSSQL y RSCI, consulte [aquí](https://technet.microsoft.com/en-us/library/ms189122(v=sql.105).aspx). ### Beneficios de habilitar el modo Snapshot de MS SQL - Será posible que varios usuarios consulten la base de datos al mismo tiempo sin demoras ni interrupciones (aunque la carga sobre la aplicación podría exceder los límites habituales). - Las consultas de registros de los usuarios se mantendrán en una `tempdb` separada, que no se verá afectada por otras consultas de usuarios que ocurran en paralelo o posteriormente. - Las tablas de la base de datos se cargarán solo después de que una transacción haya finalizado. ## Escaneo distribuido de activos Si tiene muchos nodos, por ejemplo, más de 1000, escanearlos a intervalos regulares afectará el rendimiento de ServiceDesk Plus. Para reducir la carga en el servidor, puede escanear estos nodos usando [Escaneo distribuido de activos](https://www.manageengine.com/configurations/discovery/distributed-asset-scan.html). Todo lo que necesita hacer es instalar servidores remotos de ServiceDesk Plus en los distintos departamentos. Estos servidores remotos escanean los nodos a intervalos regulares y exportan los datos al servidor central de ServiceDesk Plus. ## Deshabilitar el conteo de solicitudes El conteo de solicitudes muestra el número total de solicitudes en la página de vista de lista de solicitudes. Cuanto mayor sea el valor del conteo de solicitudes, más tiempo tardará en mostrar las solicitudes en la página de vista de lista. El valor del conteo de solicitudes no se puede eliminar. En su lugar, puede elegir ver el conteo de solicitudes haciendo clic en el botón **Row Count** en la página de vista de lista de solicitudes. Para mostrar el botón Row Count, use la consulta: ```sql update GlobalConfig set PARAMVALUE='FALSE' where CATEGORY='PERFORMANCE' and PARAMETER='SHOW_REQUEST_COUNT'; ``` ## Deshabilitar el temporizador de actualización de solicitudes El temporizador de actualización refresca la página de vista de lista de solicitudes a intervalos regulares. Pero esto puede ralentizar el rendimiento de ServiceDesk Plus. Puede deshabilitar la opción Refresh Timer usando la consulta: ```sql update GlobalConfig set PARAMVALUE='FALSE' where CATEGORY='PERFORMANCE' and PARAMETER='SHOW_WO_REFRESH_TIME'; ``` ## Deshabilitar el filtro Todas las solicitudes El filtro "All Requests" en la vista de lista de solicitudes muestra todas las solicitudes que se han creado hasta el momento, independientemente de su estado. Pero a medida que aumenta el número de solicitudes, el rendimiento de ServiceDesk Plus se ralentiza gradualmente. En este caso, puede eliminar la opción "All Requests" del menú desplegable de filtros usando la consulta: ```sql update GlobalConfig set PARAMVALUE='FALSE' where CATEGORY='PERFORMANCE' and PARAMETER='SHOW_ALL_REQUEST_VIEW'; ``` ## Reducir el número de solicitudes en la vista de lista En la página de vista de lista de solicitudes, encontrará un menú desplegable para seleccionar la cantidad de solicitudes que desea ver por página. Limitar este número a 25 o 50 eliminará la carga excesiva de solicitudes y mejorará el rendimiento de ServiceDesk Plus. ## Deshabilitar la búsqueda de descripción corta La descripción corta se refiere a la descripción que aparece cuando pasa el cursor sobre el enlace del asunto de la solicitud en la vista de lista de solicitudes. De forma predeterminada, al realizar una operación de búsqueda, se busca también la descripción corta de una solicitud. Pero cuando tiene una gran cantidad de datos, el rendimiento de ServiceDesk Plus eventualmente disminuye. Puede deshabilitar esta función usando la consulta: ```sql update GlobalConfig set PARAMVALUE='false' where CATEGORY='SearchShortDescription' and PARAMETER='Status'; ``` ## Límite de limpieza de elementos recientes De forma predeterminada, la lista de elementos recientes se elimina una vez cada 15 días. Pero puede mejorar el rendimiento de ServiceDesk Plus aumentando la frecuencia de limpieza. **Ejemplo:** Si desea limpiar la lista de elementos recientes cada 5 días, use la consulta: ```sql update GlobalConfig set PARAMVALUE=5 where CATEGORY='CLEANUP_TASK' and PARAMETER='CLEANUP_RI_LIMIT'; ``` El límite máximo para limpiar la lista de elementos recientes es 90. Si desea deshabilitar la limpieza, establezca el valor del parámetro en -1. ## Límite de limpieza del registro de errores De forma predeterminada, la lista del registro de errores se elimina una vez cada 180 días. Pero puede aumentar la frecuencia de limpieza para acelerar el proceso de respaldo. **Ejemplo:** Si desea limpiar la lista del registro de errores cada 30 días, use la consulta: ```sql update GlobalConfig set PARAMVALUE=30 where CATEGORY='CLEANUP_TASK' and PARAMETER='CLEANUP_ERROR_LOG_LIMIT'; ``` El límite máximo para limpiar la lista del registro de errores es 365. Si desea deshabilitar la limpieza, establezca el valor del parámetro en -1. ## Limpiar la sesión ACC Es una tabla que contiene los detalles de la sesión, es decir, la información de inicio y cierre de sesión. Estas entradas no son utilizadas por la aplicación y pueden eliminarse periódicamente para obtener un mejor rendimiento de la base de datos. De forma predeterminada, los detalles de la sesión se eliminan una vez cada 90 días, pero para un mejor rendimiento puede aumentar la frecuencia de limpieza. **Ejemplo:** Si desea limpiar la sesión ACC cada 30 días, use la consulta: ```sql update GlobalConfig set PARAMVALUE=30 where CATEGORY='CLEANUP_TASK' and PARAMETER='CLEANUP_ACC_SESSION_LIMIT'; ``` El límite máximo para limpiar los detalles de la sesión ACC es 365. Si desea deshabilitar la limpieza, establezca el parámetro en -1. ## Eliminar notificaciones generadas por el sistema Las notificaciones generadas por el sistema son notificaciones creadas y enviadas por el sistema. Puede eliminar todas las notificaciones del sistema o revisar manualmente las notificaciones para eliminar las que no desee. Si desea eliminar todas las notificaciones del sistema, ejecute la consulta: ```sql delete from notification where senderid=1; ``` Para obtener la lista de títulos de notificaciones y eliminar las no deseadas, ejecute la consulta: ```sql select notificationtitle from notification limit 100; ``` **Ejemplo:** Si el `notificationtitle` es `'has been added to the group'`, use la consulta para eliminar las notificaciones bajo ese título: ```sql delete from notification where notificationtitle like '%has been added to the group%'; ``` ## Aumentar el conteo de caché de usuarios De forma predeterminada, la cantidad de objetos de datos de usuario que se almacenan en caché es **500**. Pero en máquinas de alto rendimiento con mejores configuraciones de RAM, este valor puede aumentarse para almacenar más datos en caché y obtener una respuesta más rápida. **Ejemplo:** Si desea aumentar el conteo de caché a 1000, use la siguiente consulta. Para la compilación 11000 o posterior: ```sql update GlobalConfig set PARAMVALUE='1000' where PARAMETER='USER_DO_COUNT'; ``` Para compilaciones anteriores: ```sql update GlobalConfig set PARAMVALUE='1000' where PARAMETER='USER_CACHECOUNT'; ``` ## Aumentar el conteo de caché de técnicos De forma predeterminada, la cantidad de objetos de datos de técnicos que se almacenan en caché es **300**. Pero en máquinas de alto rendimiento con mejores configuraciones de RAM, este valor puede aumentarse para almacenar más datos en caché y obtener una respuesta más rápida. **Ejemplo:** Si desea aumentar la caché a 1000, use la siguiente consulta. Para la compilación 11000 o posterior: ```sql update GlobalConfig set PARAMVALUE='1000' where PARAMETER='USER_DO_COUNT'; ``` Para compilaciones anteriores: ```sql update GlobalConfig set PARAMVALUE='1000' where PARAMETER='TECHNICIAN_CACHECOUNT'; ``` ## Aumentar el conteo de caché de IDs de mensajes De forma predeterminada, la cantidad de IDs de mensajes que se almacenan en caché es **1000**. Pero en máquinas de alto rendimiento con mejores configuraciones de RAM, este valor puede aumentarse para almacenar más datos en caché y obtener una respuesta más rápida. **Ejemplo:** Si desea aumentar el conteo de caché a 2000, use la consulta: ```sql update GlobalConfig set PARAMVALUE='2000' where PARAMETER='MESSAGEID_CACHECOUNT'; ``` ## Aumentar el conteo de caché de IDs de correo electrónico / IDs de usuario De forma predeterminada, la cantidad de IDs de correo electrónico / IDs de usuario que se almacenan en caché es **1000**. Pero en máquinas de alto rendimiento con mejores configuraciones de RAM, este valor puede aumentarse para almacenar más datos en caché y obtener una respuesta más rápida. **Ejemplo:** Si desea aumentar el conteo de caché a 2000, use la consulta: ```sql update GlobalConfig set PARAMVALUE='2000' where PARAMETER='EMAIL_USERID_CACHECOUNT'; ``` ## Violación del umbral del tamaño del archivo de registro (MSSQL): mejores prácticas El modelo de recuperación de una base de datos define cómo se registran y conservan las transacciones. Hay 3 modelos de recuperación en uso: **Simple**, **Completo** y **Bulk Logged**. Aquí, analizaremos solo los modelos **Simple** y **Completo**. En SQL Server, los archivos de registro de transacciones, cuando no se respaldan regularmente, pueden crecer y causar una falla en la base de datos porque el modelo de recuperación, de forma predeterminada, es Completo. Para evitar este escenario, los administradores de bases de datos pueden realizar lo siguiente: a) Modelo de recuperación completo con respaldos regulares del registro de transacciones o b) Configurar el modelo de recuperación de la base de datos en **Simple**. ### Modelo de recuperación completo con respaldo del registro de transacciones En el modelo de recuperación **Simple**, no es posible una recuperación a un punto en el tiempo, mientras que sí es posible en el modelo de recuperación **Completo**. Por lo tanto, en un entorno de producción, configure su base de datos con el modelo de recuperación **Completo**, de modo que la opción de recuperación a un punto en el tiempo esté fácilmente disponible. Siga estos pasos para crear un archivo de respaldo del registro: - En SQL SERVER Management Studio, ejecute la siguiente consulta: ```sql BACKUP LOG [] TO DISK = N'\sdp-backup.trn' WITH NOFORMAT, NOINIT, NAME = N'-Full Log Backup' ``` **Salida:** ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/2020_02_26_11_57_331.png) - En SQL SERVER Management Studio, haga clic derecho en la base de datos que desea respaldar y haga clic en **Tasks >> Back Up** ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/2020_02_26_11_57_332.png) - En el cuadro de diálogo Back Up Database, seleccione **Backup type como Transaction Log**, en **Name**, escriba el nombre del conjunto de respaldo, y luego haga clic en **Add**. - En el cuadro de diálogo Back Up Database, en **Destination**, seleccione **Disk**, elija la ruta haciendo clic en **Add**, y haga clic en **Ok**. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/2020_02_26_11_57_333.png) - En la lista Script, haga clic en **Script Action to Job**. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/2020_02_26_11_57_334.png) - Proporcione un nombre. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/2020_02_26_11_57_335.png) - En el panel izquierdo, haga clic en **Schedules** y luego en **New**. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/2020_02_26_11_57_336.png) - En el cuadro de diálogo Job Schedule Properties, escriba el nombre del trabajo en el cuadro Name y proporcione los siguientes valores: - En Frequency, seleccione **Occurs daily** y **Recurs 1 day**. - En Daily frequency, seleccione **Occurs every 10 minutes** y **Starting at 12:00AM** y **Ending at 11:59PM**. - En Duration, seleccione la fecha actual como fecha de inicio y elija sin fecha de finalización. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/2020_02_26_11_57_337.png) ### Modelo de recuperación simple - En SQL SERVER Management Studio, ejecute la siguiente consulta: ```sql USE [master] GO ALTER DATABASE SET RECOVERY SIMPLE WITH NO_WAIT GO ``` **Salida** ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/2020_02_26_11_57_338.png) - En SQL SERVER Management Studio, haga clic derecho en **Database >> Properties** ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/2020_02_26_11_57_339.png) - Elija **Options** en la página de selección y cambie el modelo de recuperación. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/2020_02_26_11_57_3310.png) > En el modelo de recuperación simple, no es posible la recuperación a un punto en el tiempo. Esto se debe a que el registro de transacciones de SQL Server se trunca (borra) automáticamente después de cada transacción completada. Esto significa que los registros del log se eliminan una vez que la transacción se confirma y los cambios se escriben en la base de datos. En consecuencia, los respaldos del registro de transacciones no son compatibles con este modelo. ### Reducción del archivo de registro En SQL Server Management Studio: - Haga clic derecho en su base de datos y vaya a **Tasks -> Shrink -> Files.** ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/2020_04_24_11_51_481.png) - En el cuadro de diálogo Shrink File: - En Database files and filegroups, elija el **File type** como **Log**. - En Shrink action, elija **Release unused space**. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/2020_04_24_11_51_482.png) - Haga clic en **OK** para comenzar a reducir el archivo de registro. > **Nota:** Tenga en cuenta que esto tendrá éxito solo cuando el respaldo del registro de transacciones se haya completado correctamente. Esto también puede programarse como un trabajo. ## Registrar estadísticas de uso de CPU y memoria Cada vez que el servidor de aplicaciones experimente problemas de rendimiento, las estadísticas de uso de CPU y memoria se supervisarán de cerca y se documentarán. Esto aplica solo para Windows. Habilite el script de monitoreo para registrar las estadísticas de uso de CPU y memoria. Ejecute los siguientes comandos en PowerShell. 1. Vaya a `ServiceDesk Home/tools/monitoring/CPU_Memory_Monitoring.ps1` y desbloquee el script de PowerShell ubicado en el directorio de la aplicación. ```powershell Unblock-File -Path "C:\ServiceDesk Home\tools\monitoring\CPU_Memory_Monitoring.ps1" ``` 2. Configure la política de ejecución para ejecutar el script personalizado. Puede usar una de las siguientes políticas de ejecución: Bypass, Unrestricted o RemoteSigned. ```powershell Set-ExecutionPolicy RemoteSigned ```