El binario splitlogs en WHM
Introducción
La utilidad
/usr/local/cpanel/bin/splitlogs le permite ajustar sus compensaciones de recursos y rendimiento cuando crea los registros de Apache. La utilidad
splitlogs también le provee algunas optimizaciones de rendimiento, lo que incluye la habilidad de cerrar
handlers de archivo sin reiniciar Apache. Esto mejora el rendimiento durante el procesamiento de registros y banda ancha.
Por diseño, Apache abre y escribe a un solo archivo de registro para cada dominio. Se le asigna su propio registro a cada anfitrión virtual en el archivo de configuración de Apache.
Los sistemas de cPanel y WHM se abren y escriben a dos archivos de registro:
- Un archivo de registro rastrea el uso de recurso del dominio (byte log).
- El otro archivo de registro rastrea cómo el dominio se accede y quién lo accede (access log).
Los sistemas de cPanel y WHM usan la funcionalidad
piped logs de Apache, con la utilidad
splitlogs, para procesar información de registros de Apache (enlace en inglés). cPanel y WHM puede reducir el consumo de memoria de Apache al cambiar cómo se escriben los registros de acceso
(access log) y byte
(byte log).
Los sistemas de cPanel y WHM corren dos instancias de la utilidad
splitlogs: una que administra los
byte logs y otra que administra los
access logs.
La utilidad
splitlogs extraerá el nombre del dominio y el puerto y usará esta información como la línea separada por espacios en el archivo de registro. El nombre del archivo de registro se basa en esta información y se escribe al directorio que usted especifica con esta utilidad o a la ubicación predeterminada para los registros de Apache (
/usr/local/apache/).
Usos
/usr/local/cpanel/bin/splitlogs --bincheck
/usr/local/cpanel/bin/splitlogs --dir=/logs/apache
/usr/local/cpanel/bin/splitlogs --dir="/logs/apache" --suffix=".log" --sslsuffixi="_ssl.log" --maxopen="20000" --buffer="yes"
Parámetros
Revisión del programa
| Parámetro |
Descripción |
Tipo de entrada |
Ejemplo |
| --bincheck |
Este parámetro le permite verificar que la utilidad splitlogs está construida correctamente. Si la utilidad puede correr, el parámetro --bincheck devolverá BinCheck Ok por medio de STDOUT y por salida. Si splitlogs no se construye apropiadamente, el script tendrá una salida sin mensaje. |
No aplica |
/usr/local/cpanel/bin/splitlogs ‑‑bincheck |
Opciones de configuración de Apache
| Parámetro |
Descripción |
Tipo de entrada |
Ejemplo |
| --dir |
El directorio en el que usted desea guardar archivos de registro de Apache. El valor predeterminado de este parámetro es /usr/local/apache |
cadena |
/usr/local/cpanel/bin/splitlogs ‑‑dir="/logs/apache" |
| --suffix |
El sufijo que usted debe usar con los registros de acceso no codificados (que no son SSL) de Apache. Por predeterminación, su valor es una cadena vacía. |
cadena |
/usr/local/cpanel/bin/splitlogs ‑‑suffix=".logs" |
| --sslsuffix |
El sufijo a usarse con los registros de acceso SSL de Apache. Los archivos de registro para las solicitudes codificadas por SSL de Apache usan un sufijo. Por predeterminación, el valor de este parámetro es ssl_log |
cadena |
/usr/local/cpanel/bin/splitlogs ‑‑suffix="_ssl.log" |
| --sslport |
El puerto en el que ocurren las conexiones SSL. La utilidad splitlogs examina el número de puerto e incluye el número de puerto en el archivo de registro. El valor predeterminado de este valor es 443. El puerto 443 es el número de puerto estándar predeterminado para las solicitudes codificadas de Apache (HTTPS). |
cadena |
/usr/local/cpanel/bin/splitlogs ‑‑sslport="2089" |
| --main |
El nombre de anfitrión del servidor. Por predeterminación, Apache enruta las solicitudes sin un anfitrión virtual correspondiente al registro predeterminado, en vez de a un registro de dominio diferente. Este parámetro le permite especificar el nombre de anfitrión del servidor para que splitlogs reconozca solicitudes que necesitan ser redirigidas al archivo de registro predeterminado. Este parámetro, en conjunto con --mainout, le permite a cPanel y WHM igualar el comportamiento estándar de Apache. |
cadena |
/usr/local/cpanel/bin/splitlogs ‑‑main="host.example.com" |
| --mainout |
La ruta al registro de acceso predeterminado donde se registran las solicitudes sin ningún anfitrión virtual correspondiente. Este parametro, en conjunto con ‑‑main, le permite a cPanel y WHM igualar el comportamiento estándar de Apache. |
cadena |
/usr/local/cpanel/bin/splitlogs ‑‑mainout="/logs/apache/host.example.com.log" |
Opciones para ajustar el rendimiento
| Parámetro |
Descripción |
Tipo de entrada |
Ejemplo |
| ‑‑maxopen |
El número máximo de manejadores de archivo que splitlogs puede mantener abiertos en un momento dado. El valor predeterminado de este parámetro es 16000 (16,000). El parámetro --maxopen puede aceptar cualquier número entero entre 1 y número máximo de manejadores de archivo que cualquier proceso individual puede abrir. Su sistema operativo dicta este valor. |
cadena |
/usr/local/cpanel/bin/splitlogs ‑‑maxopen=20000 |
| ‑‑buffer |
Seleccione si debe activar buffered file writing. Este valor accepta dos cadenas: yes (sí) o no. En la mayoría de los casos, el parámetro se configura a yes por predeterminación. Sin embargo, bajo algunas condiciones, este valor puede predeterminarse a no. Lea la sección Más sobre --buffer para más detalles. |
cadena |
/usr/local/cpanel/bin/splitlogs ‑‑buffer=yes |
Más sobre --maxopen
Este parámetro le permite configurar un compromiso entre recursos y velocidad. El parámetro
--maxopen le permite especificar el número máximo de archivos de registro que
splitlog puede mantener abierto en un momento dado.
Esencialmente, este valor es el número de archivos hacia los que
splitlogs puede escribirles en cualquier momento sin tener que cerrar o abrir archivos de registro adicionales.
El valor predeterminado de este parámetro es 16,000. Si el valor que usted escoge es muy grande, el sistema operativo rehusará abrir un archivo cuando lo necesita y el valor del parámetro volverá al valor predeterminado de 16,000.
Consideraciones importantes:
- Cuando se abre el número máximo de archivos y
splitlogs necesita escribirle a un archivo nuevo, el archivo más antiguo se cierra y se abre el nuevo archivo. Esto permite que la utilidad splitlogs le escriba al archivo de registro.
- La utilidad
splitlogs no cerrará ningunos archivos de registro hasta que se excede el valor configurado en --maxopen. Esto significa que, mientras el número de archivos de registro que splitlogs ha abierto sea menor que el set de valores en --maxopen, no se llevará a cabo ninguna acción.
- La utilidad
splitlogs también cierra archivos durante el procesamiento de registros y banda ancha y cuando Apache se reinicia.
- La utilidad
splitlogs solamente abrirá un archivo de registro al cual escribirle cuando se accede su dominio correspondiente. Esto difiere del comportamiento predeterminado de Apache, donde el número de archivos de registro abiertos es igual a dos veces el número de anfitriones virtuales configurados en el archivo de configuración de Apache (/usr/local/apache/conf/httpd.conf). Esto ocurre porque hay dos archivos de registro para cada anfitrión virtual (un registro de acceso (access log) y un registro de byte (byte log)).
- Configurar este parámetro a un número muy bajo causará que el binario
splitlogs abra y cierre archivos más de lo necesario, lo que reduce el rendimiento.
- Configurar este parámetro a un número muy alto requiere más recursos de sistema y manejadores de archivo de sistema operativo, lo que aumenta la carga total del sistema. Este problema se agrava si el búfer está activado.
- En última instancia, usted debe determinar el valor del parametro
--maxopen según el patrón actual de acceso a sitios en su sistema.
Más sobre --buffer
Esta opción de configuración es otro compromiso entre recursos y velocidad. Bajo la mayoría de las condiciones, la utilidad
splitlogs usa escritos de búfer por predeterminación.
Consideraciones importantes:
- Activar los buffered writes hace más rápido escribirle a los archivos de registro individuales, pero requiere más memoria para cada archivo de registro que está abierto.
- Usted solamente sentirá este aumento de rendimiento si el sistema tiene memoria de sobra y la carga del servidor es suficientemente liviana para recargar los bufferers en el momento oportuno.
- Si el sistema se sobrecarga o no tiene memoria adicional de sobra, write buffering disminuirá el rendimiento general.
- Desactivar los buffered writes reduce sustancialmente la cantidad de memoria requerida por la utilidad
splitlogs
- Por ejemplo, en un sistema que tiene un búfer de sistema de operación de 4,000 manejadores de archivos y donde le parámetro
--maxopen se configura a 1024 se usan 4 MB de memoria por cada instancia de splitlogs
- Si el archivo bandera
/var/cpanel/conserve_memory existe, los buffered writes se desactivan por predeterminación. Usted puede anular esta configuración con la utilidad splitlogs al pasar el parámetro yes de ‑‑buffer (por ejemplo, /usr/local/cpanel/bin/splitlogs ‑‑buffer="yes").
- Es posible que vea alguna pérdida de datos si el
splitlogs se termina forzosamente, antes de que se recarguen los buffers.
¡Ojo!: Si usted decide modificar la opción
--buffer, observe la carga del sistema y el uso de memoria para determinar si el compromiso es razonable.
El archivo de configuración de la utilidad splitlogs
Cuando reconstruye la configuración de Apache, el sistema de cPanel y WHM examinará el archivo de configuración de la utilidad
splitlogs en
/var/cpanel/conf/splitlogs.conf El sistema usa el contenido del archivo de configuración para configurar las opciones de la línea de comandos para las directivas
CustomLog en el archivo de configuración de Apache (
/usr/local/apache/conf/httpd.conf).
El archivo de configuración consiste en pares
key=value delimitados por línea. Las entradas
key son iguales a los parámetros de línea de comandos descritos en la sección de
parámetros de este documento.
Luego de especificar las directivas personalizadas en
splitlogs.conf usted debe reconstruir y reiniciar Apache. Para hacerlo, usted puede usar los siguientes comandos:
- /usr/local/cpanel/scripts/rebuildhttpdconf
- /etc/init.d/httpd -k graceful
Notas acerca de los problemas de rendimiento
- La utilidad
splitlogs escribe información a su archivo de registro cada vez que alcanza su límite de handle de archivo 1,000 veces. Al final, estos mensajes de registro deben indicar con qué frecuencia la utilidad splitlogs abre y cierra los archivos de registro.
- Si usted no encuentra estos mensajes en el archivo de registro de la utilidad
splitlogs usted debe reducir el valor del parámetro --maxopen.
- Si usted encuentra un número inusualmente alto de estos mensajes en el archivo de registro de la utilidad
splitlog usted debe aumentar el valor del parámetro --maxopen. Usted debe determinar este valor según el patrón actual de acceso a sitios en su sistema.
- Como parte del mantenimiento regular de su sistema, usted debe examinar estos valores cuando ocurren cambios en la carga, o cada vez que cambia el número de dominios que su sistema aloja. El valor que está correcto hoy puede ser un valor incorrecto en el futuro.