Los scripts mod_perl dejan de ver el sistema de archivos después de un tiempo.


0

Yo uso mod_perl scripts bajo Apache 2.4.18 en un VPS bajo Ubuntu 16.04. Los scripts abren archivos desde el disco (plantillas de página web). De vez en cuando, dejan de ver estos archivos, el registro de errores del servidor está lleno de los siguientes errores:

[TIEMPO] [: error] [pid PID: tid TID] error de archivo - NOMBRE DE ARCHIVO: no encontrado \ n

Estos mensajes son generados por el paquete de plantillas cuando Perl open() la función devuelve falso. Después de reiniciar Apache, los archivos son visibles de nuevo, pero solo por un tiempo. Al cabo de un rato, el problema vuelve a aparecer.

¿Cuál puede ser la razón de tal comportamiento?

Respuestas:


2

Tal vez mod_perl / apache no está cerrando los archivos correctamente. Después de un tiempo, cuando se alcanza la cantidad máxima de archivos abiertos (1024 soft / 4096 hard see ulimit -Sn;ulimit -Hn ) el reinicio de apache cierra todos los controladores obsoletos.

La próxima vez que ocurra el error, puede investigar esta teoría obteniendo el pid de apache / perl.

# ps aux | grep apache

o

# pidof apache

o módulo perl si tiene un proceso propio.

salida de muestra:

28294

Listar archivo abierto por un PID

# lsof -p 28294
# lsof -a -p 28294
# counting
# lsof -a -p 28294| wc -l

o

# cd /proc/28294/fd
# ls -l | less
# count open files with
# ls -l | wc -l
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.