Parámetros de configuración de rendimiento
Cola de extracción de texto
Sección titulada «Cola de extracción de texto»Existen varios parámetros de configuración para adaptar la extracción de texto de los documentos a sus necesidades. La extracción de texto es uno de los procesos que pueden consumir muchos recursos de hardware (memoria y CPU). Una política de extracción de texto agresiva puede reducir el rendimiento de la aplicación y afectar a la sensación del usuario final con la interfaz de usuario.
Cuando se suben documentos, se añaden automáticamente a la Text extraction queue. Puede ver la cola de extracción de texto en Administration > Statistics > Text extraction queue.
Existe una tarea crontab llamada “Text extractor worker” en Administration > Cron tab que controla el ciclo de indexación
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| managed.text.extraction.batch | Boolean | Indica el número de documentos que se procesarán en cada ciclo de indexación. Cuando el parámetro “text.extraction.concurrent” está habilitado, es una buena práctica que sea múltiplo del valor de “text.extraction.threads”. 20 |
| managed.text.extraction.concurrent | Boolean | Habilita o deshabilita la funcionalidad de extracción de texto con hilos concurrentes. True |
| managed.text.extraction.threads | Integer | Número de hilos concurrentes que se utilizarán para la extracción de texto. Este número debería ser menor o igual que el número de núcleos de hardware. 2 |
Servicio de conversión de OpenOffice y LibreOffice
Sección titulada «Servicio de conversión de OpenOffice y LibreOffice»Como parte del arranque de la aplicación, OpenKM ejecuta un servicio de OpenOffice o LibreOffice. Se utiliza internamente con fines de conversión, por ejemplo para convertir archivos doc a pdf.
El servicio de OpenOffice o LibreOffice puede consumir muchos recursos de hardware (CPU hasta el 100%), lo que puede reducir el rendimiento de la aplicación. Una buena práctica es trasladar el servicio de conversión de OpenOffice o LibreOffice a otro servidor.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| system.openoffice.server | String | URL del servicio de OpenOffice o LibreOffice. http://192.168.1.34:8080/converter/convert |
| system.openoffice.tasks | String | Reinicia el servicio tras x conversiones para evitar fugas de memoria. 5 |
Para más información, lea:
Comprobador de antivirus
Sección titulada «Comprobador de antivirus»Existen varios parámetros de configuración para adaptar el comprobador de antivirus a sus necesidades. El comprobador de antivirus es uno de los procesos que puede consumir muchos recursos de hardware ( memoria y CPU’s ). Una política de comprobación de antivirus agresiva puede reducir el rendimiento de la aplicación y afectar a la sensación del usuario final con la interfaz de usuario. El comprobador de antivirus funciona en modo en vivo ( durante la subida, el antivirus comprueba el documento y, si se detecta un virus, se genera inmediatamente un error de advertencia y el documento no se incorpora al repositorio ).
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| system.antivir | String | Establece la ruta del antivirus. |
Reindexar todo el repositorio de Lucene
Sección titulada «Reindexar todo el repositorio de Lucene»La aplicación puede utilizar dos formas distintas de reconstruir los índices de Lucene: secuencial o paralela. Por defecto está habilitada la reindexación secuencial, pero puede seleccionar el modo mediante el parámetro de configuración “hibernate.indexer.mass.indexer”.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| hibernate.indexer.mass.indexer | Boolean | Cuando está habilitado, el proceso de reconstrucción de los índices de Lucene pasa a “Parallel mode”. |
| Modo | Descripción |
|---|---|
| Modo secuencial | Puede utilizar el parámetro de configuración “hibernate.indexer.batch.size.load.objects” para indicar a Hibernate cuántos objetos debe manejar cada vez. Para evitar problemas de OutOfMemory, el repositorio debe reindexarse por lotes. Si el valor de esta propiedad es demasiado bajo, el rendimiento será malo, pero si es demasiado alto puede tener problemas de OutOfMemory. - hibernate.indexer.batch.size.load.objects: tamaño de lote utilizado para cargar las entidades raíz. 30 |
| Modo paralelo | Dispone de varias propiedades de configuración para ajustar su rendimiento: - hibernate.indexer.batch.size.load.objects: tamaño de lote utilizado para cargar las entidades raíz. 30 - hibernate.indexer.threads.subsequent.fetching: número de hilos utilizados para cargar las colecciones perezosas relacionadas con las entidades indexadas. 8 - hibernate.indexer.threads.load.objects: número de hilos utilizados para cargar las entidades raíz. 4 - hibernate.indexer.threads.index.writer: número de hilos utilizados para analizar los documentos y escribir en el índice. 3 |
Tiempo máximo de ejecución
Sección titulada «Tiempo máximo de ejecución»La aplicación ejecuta aplicaciones externas para procesar documentos; por ejemplo, extrae el texto con un motor de OCR, analiza con un software antivirus o transforma documentos a otros formatos, entre otras acciones. A veces estos procesos pueden tardar mucho tiempo o, por algún motivo, no finalizar correctamente, y el proceso sigue consumiendo recursos en el sistema operativo. Para evitarlo, el parámetro “system.execution.timeout” establece el tiempo máximo de ejecución permitido para las aplicaciones externas.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| system.execution.timeout | Integer | Establece el tiempo máximo de ejecución permitido para las aplicaciones externas. La unidad son minutos. Por defecto, la configuración es de 5 minutos. 5 |
Ancho de banda de subida
Sección titulada «Ancho de banda de subida»A veces desea restringir el ancho de banda total utilizado por cada usuario al subir archivos.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| upload.throttle.filter | Boolean | Limita el ancho de banda total de subida a 10kb/seg por usuario. |
Servicio de conversión remoto
Sección titulada «Servicio de conversión remoto»En repositorios enormes con muchos usuarios concurrentes es buena idea configurar un servidor solo para la transformación de documentos.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| remote.conversion.server | String | Establece la URL del servicio de conversión. http://192.168.2.1:8080/converter/convert |
Acciones del registro de actividad
Sección titulada «Acciones del registro de actividad»OpenKM puede registrar mucha información relacionada con la actividad de los usuarios, pero a veces no es necesario registrar estas acciones, que llenan su tabla del registro de actividad.
Existe una propiedad de configuración llamada “activity.log.actions” donde puede establecer qué acciones se registran. Por defecto se establecen las acciones más habituales o interesantes. Puede utilizar expresiones regulares para definir estas acciones. Lea Java Regex Tutorial para más información sobre las expresiones regulares de Java.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| activity.log.actions | List | LOLOGIN LOGOUT CREATE_.* DELETE_.* PURGE_.* MOVE_.* COPY_.* CHECKOUT_DOCUMENT CHECKIN_DOCUMENT GET_DOCUMENT_CONTENT.* |
El motor de búsqueda Lucene puede deshabilitarse o configurarse de varias formas. Según ello, el comportamiento de la aplicación y el rendimiento general pueden cambiar.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| hibernate.search | String | Habilita o deshabilita el motor de búsqueda Lucene. Valores permitidos: - on - off on |
| hibernate.search.worker.execution | String | Establece el modo de ejecución del worker de Lucene. Por defecto es “sync”, lo que significa que cada modificación de una entidad no finaliza hasta que el índice de Lucene se ha actualizado correctamente. En el caso de “async”, estas modificaciones de entidades serán más rápidas porque la parte de Lucene se añade a una cola y se procesa en un hilo en segundo plano. Valores permitidos: - sync - async sync |
| hibernate.search.worker.buffer.queue.max | Integer | El tamaño de la cola del worker para almacenar las tareas pendientes de modificación del índice cuando todos los hilos del worker están ocupados. Cada acción de actualización del índice se encolará para minimizar el tiempo de modificación de la entidad. Además, un hilo consumirá esta cola ejecutando las acciones de modificación del índice. Este parámetro solo tiene sentido en el caso de ejecución asíncrona. 256 |
| hibernate.search.worker.thread.pool.size | Integer | Establece el tamaño del pool de workers. Es el número de hilos que gestionan las tareas de modificación del índice. Los valores permitidos son enteros a partir de 1. Más de 2 no será mejor, porque solo un hilo puede modificar el índice al mismo tiempo. Este parámetro solo tiene sentido en el caso de ejecución asíncrona. 1 |