Parámetros de configuración del 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 utilizar muchos recursos de hardware (memoria y CPU). Una política de extracción de texto agresiva puede disminuir el rendimiento de la aplicación y afectar a la experiencia del usuario final con la interfaz de usuario.
Cuando se suben documentos, estos 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 de crontab denominada “Text extractor worker” en Administration > Cron tab que controla el ciclo de indexación.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| text.extraction.batch | Boolean | Indica el número de documentos que se procesarán durante cada ciclo de indexación. Cuando el parámetro “text.extraction.concurrent” está habilitado, es recomendable que sea un múltiplo del valor de “text.extraction.threads”. 20 |
| text.extraction.concurrent | Boolean | Habilita o deshabilita la funcionalidad de hilos concurrentes de extracción de texto. True |
| text.extraction.threads | Integer | Número de hilos concurrentes que se utilizarán para la funcionalidad de extracción de texto. Este número debe ser menor o igual que el número de núcleos de hardware. 2 |
Existe una tarea de crontab denominada “Mailextractor worker” en Administration > Cron tab que controla el ciclo de indexación.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| mail.extraction.batch | Boolean | Indica el número de correos electrónicos que se procesarán durante cada ciclo de indexación. Cuando el parámetro “mail.extraction.concurrent” está habilitado, es recomendable que sea un múltiplo del valor de “mail.extraction.threads”. 20 |
| mail.extraction.concurrent | Boolean | Habilita o deshabilita la funcionalidad de hilos concurrentes de extracción de correo. True |
| mail.extraction.threads | Integer | Número de hilos concurrentes que se utilizarán para la funcionalidad de extracción de correo. Este número debe ser menor o igual que el número de núcleos de hardware. 2 |
Servicio de conversión de OpenOffice LibreOffice
Sección titulada «Servicio de conversión de OpenOffice LibreOffice»Como parte del arranque de la aplicación, OpenKM ejecuta un servicio de OpenOffice o LibreOffice. Este se utiliza internamente con fines de conversión, por ejemplo, para convertir ficheros DOC a PDF.
El servicio de OpenOffice o LibreOffice puede utilizar muchos recursos de hardware (CPU hasta el 100 %), lo que puede disminuir 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:
Descarga de ficheros y carpetas como fichero ZIP
Sección titulada «Descarga de ficheros y carpetas como fichero ZIP»No es una buena práctica descargar un gran volumen de ficheros como ficheros ZIP. En la mayoría de los casos, considere utilizar la herramienta de exportación de la aplicación en Administration > Utilities > Repository export.
Descargar ficheros y carpetas como un fichero ZIP puede requerir mucho tiempo y muchos recursos de hardware. Primero, la aplicación preparará una carpeta temporal en el servidor que se utilizará para crear el fichero ZIP y, finalmente, este se enviará a la interfaz de usuario. Para evitar bloquear la interfaz de usuario mientras se espera a que finalice el proceso, existen dos parámetros que notificarán al usuario cuando se hayan superado ciertos límites (número de ficheros o tamaño) y el proceso pasará a modo en segundo plano.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| download.zip.live.max.files | Integer | Establece el número máximo de ficheros que se permite descargar en modo en vivo. 100 |
| download.zip.live.max.file.size | String | Establece el tamaño total máximo de todos los ficheros que se permite descargar en modo en vivo. |
Para más información sobre estos parámetros, lea Parámetros de configuración de la interfaz de usuario.
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 pueden utilizar muchos recursos de hardware (memoria y CPU). Una política de comprobación de antivirus agresiva puede disminuir el rendimiento de la aplicación y afectar a la experiencia del usuario final con la interfaz de usuario. El comprobador de antivirus puede funcionar en modo en vivo (a medida que se suben los documentos, el antivirus los comprueba y, si se detecta un virus, se muestra de inmediato una advertencia y el documento no se añade al repositorio) o en modo en segundo plano.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| system.antivir | String | Establece la ruta del antivirus. |
| background.antivirus.check | Boolean | Habilita o deshabilita el comprobador de antivirus en segundo plano. Por defecto está establecido en false. Existe una tarea de crontab ( Administration > Crontab ) denominada Antivirus Checker Worker que se encarga del comprobador de antivirus en segundo plano. Cuando la comprobación en segundo plano está deshabilitada, el antivirus se procesa mientras se sube cualquier documento. Eso puede añadir tiempo extra al proceso de subida (en algunos casos más de 3 segundos para comprobar un documento). Cuando realiza una importación masiva de ficheros, el tiempo total para completar la operación puede multiplicarse por 3 o más con esta opción deshabilitada. Nuestra sugerencia es habilitarla. true |
| background.antivirus.check.threads | Integer | Número de hilos concurrentes que se utilizarán para las comprobaciones de antivirus. Este número debe ser menor o igual que el número de núcleos de hardware. 2 |
| background.antivirus.check.batch | Integer | Indica el número de documentos que se procesarán en cada ciclo de indexación. Cuando el parámetro “background.antivirus.check” está habilitado, es recomendable que sea un múltiplo del valor de “background.antivirus.check.threads”. 20 |
Para más información, lea Parámetros de configuración del antivirus.
Reindexación de todo el repositorio de Lucene
Sección titulada «Reindexación de todo el repositorio de Lucene»La aplicación puede utilizar dos formas diferentes de reconstruir los índices de Lucene: secuencial o en paralelo. Por defecto, la reindexación secuencial está habilitada, pero puede seleccionar el modo mediante el parámetro de configuración “hibernate.indexer.rebuild”.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| hibernate.indexer.rebuild | String | Por defecto está establecido en “flush”. Los valores posibles son “mass”, “flush” y “delayed”. Consulte la tabla siguiente para ver los detalles de los distintos valores. |
Puede utilizar el parámetro de configuración “hibernate.indexer.batch.size.load.objects” para indicar a Hibernate cuántos objetos se deben gestionar 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á deficiente, pero si es demasiado alto puede tener problemas de OutOfMemory.
| Modo | Descripción |
|---|---|
| Mass Indexer | Este modo reindexará el repositorio en paralelo, utilizando varios hilos. Puede ser más rápido, pero también puede ser problemático en cuanto a recursos. El repositorio estará en modo de solo lectura hasta su finalización Dispone de varias propiedades de configuración para ajustar su rendimiento: - hibernate.indexer.batch.size.load.objects: tamaño del lote utilizado para cargar las entidades. 30 - hibernate.indexer.threads.load.objects: número de hilos utilizados para cargar las entidades. 4 |
| Flush to Indexes | Este modo reconstruirá el índice de forma secuencial por lotes. Consume menos recursos, pero puede ser más lento. El repositorio estará en modo de solo lectura hasta su finalización Dispone de varias propiedades de configuración para ajustar su rendimiento: - hibernate.indexer.batch.size.load.objects: tamaño del lote utilizado para cargar las entidades. 30 |
| Delayed Indexer | Existe una tarea cron denominada “Lucene Delayed Indexer” que procesa en segundo plano la cola de nodos que se deben indexar. Esta cola se rellena cuando accede a Administration > Tools > Rebuild indexes y elige “Lucene indexes”. Cuando el indexador diferido está habilitado, los nodos se incluyen en la cola de lotes para que este proceso en segundo plano los procese. Este modo reconstruirá el índice de forma secuencial por lotes. Consume menos recursos y puede ser más lento, pero tiene más control porque puede elegir qué nodos deben reindexarse y el repositorio no estará en modo de solo lectura mientras trabaja. Dispone de varias propiedades de configuración para ajustar su rendimiento: - hibernate.indexer.delayed.max.objects: cuántos nodos se procesarán por lote. 1000 - hibernate.indexer.batch.size.load.objects: número de nodos que se leerán de la base de datos al mismo tiempo. 4 |
Tiempo de espera de ejecución
Sección titulada «Tiempo de espera de ejecución»La aplicación ejecuta aplicaciones externas para procesar documentos; por ejemplo, extrae texto con un motor de OCR, analiza con software antivirus, transforma documentos a otros formatos, entre otras acciones. A veces estos procesos pueden tardar mucho tiempo o, por algún motivo, no finalizan correctamente y el proceso permanece en ejecución en el sistema operativo consumiendo recursos. 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 en las aplicaciones externas. Las unidades son minutos. Por defecto la configuración está establecida en 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 ficheros.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| upload.throttle.filter | Boolean | Limita el ancho de banda total de subida a 10 KB/s por usuario. |
Servicio de conversión remoto
Sección titulada «Servicio de conversión remoto»En un repositorio enorme con muchos usuarios concurrentes, es una buena idea configurar un servidor únicamente 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 |
Servicio de conversión de Microsoft Office
Sección titulada «Servicio de conversión de Microsoft Office»En un repositorio enorme con muchos usuarios concurrentes, es una buena idea configurar un servidor únicamente para la transformación de documentos.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| remote.msoffice.conversion.service | String | Establece la URL del servicio de conversión. https://localhost:5400/rest/conversion/pdf |
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 y pueden llenar su tabla del registro de actividad.
Existe una propiedad de configuración denominada “activity.log.actions” donde puede establecer qué acciones se registran. Por defecto está establecida en las acciones más comunes o interesantes. Puede utilizar expresiones regulares para definir estas acciones. Lea el Java Regex Tutorial para más información sobre las expresiones regulares de Java.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| activity.log.actions | List | LOGIN LOGOUT CREATE_.* DELETE_.* PURGE_.* MOVE_.* COPY_.* CHECKOUT_DOCUMENT CHECKIN_DOCUMENT GET_DOCUMENT_CONTENT.* MISC_TEXT_EXTRACTION_FAILURE |
Actividad del panel de control
Sección titulada «Actividad del panel de control»El panel de control (dashboard) de OpenKM muestra una vista global de la actividad de la aplicación. Para ello, la aplicación necesita procesar una enorme cantidad de información, lo que puede disminuir el rendimiento general de la aplicación (por ejemplo, para obtener los últimos documentos subidos al sistema, OpenKM podría ejecutar consultas lentas a la base de datos). Por lo tanto, sugerimos deshabilitar la actividad del panel de control en repositorios enormes.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| dashboard.user.activity | Boolean | Establézcalo en false para deshabilitar la funcionalidad. |
Estadísticas del repositorio
Sección titulada «Estadísticas del repositorio»Esta información está disponible en Administration > Stats y muestra algunos gráficos con información sobre el tamaño del repositorio y el número de documentos, carpetas, correos y expedientes por contexto. En el caso de repositorios enormes, estas consultas pueden tardar demasiado tiempo en completarse, por lo que se recomienda deshabilitarlas:
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| repository.stats.enabled | Boolean | Por defecto es true. Establézcalo en false para deshabilitar las estadísticas del repositorio. |
El motor de búsqueda Lucene puede deshabilitarse o configurarse de varias formas. Dependiendo de ello, el comportamiento de la aplicación y el rendimiento general pueden cambiar.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| spring.jpa.properties.hibernate.search.autoregister_listeners | String | Habilita o deshabilita el motor de búsqueda Lucene. Valores permitidos: - on - off on |
| spring.jpa.properties.hibernate.search.default.worker.execution | String | Establece el modo de ejecución del worker de Lucene. Por defecto está establecido en “sync”, lo que significa que cada modificación de una entidad no se completará hasta que el índice de Lucene se haya 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 |
Otras propiedades de configuración
Sección titulada «Otras propiedades de configuración»| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| background.parent.node.purge | Boolean | Realiza la purga de nodos como una tarea en segundo plano para que el usuario pueda seguir trabajando sin necesidad de esperar a que el proceso haya finalizado. |