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 documentos a sus necesidades. La extracción de texto es uno de los procesos que puede 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 percepción del usuario final sobre la interfaz.
Cuando se suben documentos, se añaden automáticamente a la cola de extracción de texto. Puede ver la cola de extracción de texto en Administration > Statistics > Text extraction queue.
Hay una tarea crontab llamada “Text extractor worker” en Administration > Crontab que controla el ciclo de indexación.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| text.extraction.batch | Boolean | Indica el número de documentos a procesar en cada ciclo de indexación. Cuando el parámetro “text.extraction.concurrent” está habilitado, es buena práctica establecerlo como 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 | El número de hilos concurrentes usados para la funcionalidad de extracción de texto. Este número debería ser menor o igual que el número de núcleos de hardware. 2 |
Hay una tarea crontab llamada “Mail extractor worker” en Administration > Crontab, que controla el ciclo de indexación.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| mail.extraction.batch | Boolean | Indica el número de correos a procesar en cada ciclo de indexación. Cuando el parámetro “mail.extraction.concurrent” está habilitado, es buena práctica establecerlo como 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 | El número de hilos concurrentes usados para la funcionalidad de extracción de correo. Este número debería ser menor o igual que el número de núcleos de hardware. 2 |
Descargar ficheros y carpetas como fichero ZIP
Sección titulada «Descargar ficheros y carpetas como fichero ZIP»No es buena práctica descargar grandes volúmenes de ficheros como ficheros ZIP. En la mayoría de los casos, considere usar la herramienta de exportación de la aplicación en Administration > Utilities > Repository export.
Descargar ficheros y carpetas como fichero ZIP puede consumir mucho tiempo y recursos de hardware. Primero, la aplicación preparará una carpeta temporal en el servidor que se usará para crear el fichero ZIP, que después se enviará a la interfaz de usuario. Para evitar bloquear la interfaz de usuario mientras se espera a que finalice el proceso, hay 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 segundo plano.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| download.zip.live.max.files | Integer | Establece el número máximo de ficheros permitidos para descargar en modo en vivo. 100 |
| download.zip.live.max.file.size | String | Establece el tamaño máximo del conjunto de ficheros permitido para descargar en modo en vivo. |
Para más información sobre estos parámetros, consulte User interface configuration parameters.
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). Una política de comprobador de antivirus agresiva puede reducir el rendimiento de la aplicación y afectar a la percepción del usuario final sobre la interfaz. El comprobador de antivirus puede funcionar en modo en vivo (como parte del proceso de subida: el antivirus comprueba el documento y, si se detecta un virus, se lanza inmediatamente un error de aviso y el documento no se incorpora al repositorio) o 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 a false. Hay una tarea crontab (Administration > Crontab) llamada Antivirus Checker Worker que controla el comprobador de antivirus en segundo plano. Cuando la comprobación en segundo plano está deshabilitada, el antivirus se procesa durante la subida del documento. Eso puede añadir tiempo extra al proceso de subida (en algunos casos, el antivirus puede tardar más de 3 segundos en 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, porque la comprobación de antivirus se ejecuta como parte del proceso de subida. Nuestra sugerencia es dejarlo habilitado. true |
| background.antivirus.check.threads | Integer | El número de hilos concurrentes usados para el antivirus. Este número debería 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 a procesar en cada ciclo de indexación. Cuando el parámetro “background.antivirus.check” está habilitado, es buena práctica establecerlo como un múltiplo del valor de “background.antivirus.check.threads”. 20 |
Para más información, consulte Antivirus configuration parameters.
Reindexar todo el repositorio Lucene
Sección titulada «Reindexar todo el repositorio Lucene»La aplicación puede usar dos formas distintas de reconstruir los índices de Lucene: secuencial o en paralelo. Por defecto, la reindexación secuencial está habilitada, pero puede seleccionar el modo con el parámetro de configuración “hibernate.indexer.rebuild”.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| hibernate.indexer.rebuild | String | Por defecto está establecido a “flush”. Los valores posibles son “mass”, “flush” y “delayed”. Consulte la tabla de abajo para ver los detalles de cada valor. |
Puede usar el parámetro de configuración “hibernate.indexer.batch.size.load.objects” para indicar a Hibernate cuántos objetos debe gestionar a la vez. Para evitar problemas de OutOfMemory, el repositorio debe reindexarse por lotes. Si el valor de esta propiedad es demasiado bajo, el rendimiento será pobre, pero si es demasiado alto, puede tener problemas de OutOfMemory.
| Modo | Descripción |
|---|---|
| Mass Indexer | Este modo reindexará el repositorio en paralelo, usando varios hilos. Puede ser más rápido, pero también es más problemático en términos de recursos. El repositorio estará en modo solo lectura hasta que finalice. Dispone de varias propiedades de configuración para ajustar su rendimiento: - hibernate.indexer.batch.size.load.objects: tamaño de lote usado para cargar las entidades. 30 - hibernate.indexer.threads.load.objects: número de hilos usados para cargar las entidades. 4 |
| Flush to Indexes | Este modo reconstruirá el índice secuencialmente por lotes. Consume menos recursos, pero puede ser más lento. El repositorio estará en modo solo lectura hasta que finalice. Dispone de varias propiedades de configuración para ajustar su rendimiento: - hibernate.indexer.batch.size.load.objects: tamaño de lote usado para cargar las entidades. 30 |
| Delayed Indexer | Hay una tarea cron llamada “Lucene Delayed Indexer” que procesa en segundo plano la cola de nodos pendientes de indexar. Esta cola se rellena cuando va a Administration > Tools > Rebuild indexes y elige “Lucene indexes”. Cuando el indexador retardado está habilitado, los nodos se incluyen en la cola de lotes para ser procesados por este proceso en segundo plano. Este modo reconstruirá el índice secuencialmente por lotes. Consume menos recursos y puede ser más lento, pero tiene más control porque puede elegir qué nodos necesitan reindexarse, y el repositorio no estará en modo solo lectura mientras funciona. Dispone de varias propiedades de configuración para ajustar su rendimiento: - hibernate.indexer.delayed.max.objects: cuántos nodos se procesarán en un lote. 1000 - hibernate.indexer.batch.size.load.objects: número de nodos a leer de la base de datos a la vez. 4 |
Tiempo de espera de ejecución
Sección titulada «Tiempo de espera de ejecución»La aplicación ejecuta programas externos para procesar documentos; por ejemplo, extrae texto con un motor OCR, analiza documentos con software antivirus, y 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 ejecutándose 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 para las aplicaciones externas. Las unidades son minutos. Por defecto, la configuración está establecida a 5 minutos. 5 |
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 estas acciones no necesitan registrarse y pueden llenar su tabla de registro de actividad.
Existe una propiedad de configuración llamada “activity.log.actions” donde puede establecer qué acciones registrar. Por defecto, está configurada con las acciones más comunes o interesantes. Puede usar expresiones regulares para definir estas acciones. Consulte Java Regex Tutorial para más información sobre 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 dashboard
Sección titulada «Actividad del dashboard»El dashboard de OpenKM muestra una vista global de la actividad de la aplicación. Para ofrecer esto, la aplicación necesita procesar una gran cantidad de información, lo que puede reducir el rendimiento general (por ejemplo, para obtener los documentos subidos más recientemente, OpenKM puede ejecutar consultas de base de datos lentas). Por tanto, sugerimos que los repositorios muy grandes deshabiliten la actividad del dashboard.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| dashboard.user.activity | Boolean | Establézcalo a false para deshabilitar la funcionalidad. |
El motor de búsqueda Lucene puede deshabilitarse o configurarse de varias formas. Dependiendo de la configuración, el comportamiento de la aplicación y el rendimiento general pueden cambiar.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| spring.jpa.properties.hibernate.search.enabled | String | Habilita o deshabilita el motor de búsqueda Lucene. Valores permitidos: - true - false true |
| spring.jpa.properties.hibernate.search.automatic_indexing.synchronization.strategy | String | Establece el modo de ejecución del worker de Lucene. Por defecto está establecido a “write-sync”, lo que significa que una modificación de entidad no se completará hasta que el índice de Lucene se haya actualizado correctamente. En el caso de “async”, las modificaciones de entidad 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 esperar a que finalice el proceso. |