Apache : calcular tamaño memoria por proceso de apache y optimizar el valor de Maxclients
Para calcular el tamaño que está ocupando en memoria apache y sus procesos podemos usar el siguiente script en bash:
Ejemplo de salida
Apache uso de memoria (MB): 1396.54
Tamaño medio del proceso (MB): 16.8257
Procesos apache: 83
Estos valores son útiles para optimizar el parámetro MaxClients en el fichero /etc/httpd/conf.d/mpm_prefork.conf ( Centos 7 ) .
Para calcular el Valor:
MaxClients = (Total RAM en el sistema - RAM reserva para el resto del sistema) / Tamaño medio del proceso
Por ejemplo si tenemos una máquina con 16 GB, y queremos dedicar al apache el 80% de la memoria (3,2 GB) y el tamaño del proceso es de 17MB.
ps -ylC httpd | awk '{x += $8;y += 1} END { print "Apache uso de memoria (MB): "x/1024; print "Tamaño medio del proceso (MB): "x/((y-1)*1024); print "Procesos apache: "y-1; }'
Ejemplo de salida
Apache uso de memoria (MB): 1396.54
Tamaño medio del proceso (MB): 16.8257
Procesos apache: 83
Estos valores son útiles para optimizar el parámetro MaxClients en el fichero /etc/httpd/conf.d/mpm_prefork.conf ( Centos 7 ) .
Para calcular el Valor:
MaxClients = (Total RAM en el sistema - RAM reserva para el resto del sistema) / Tamaño medio del proceso
Por ejemplo si tenemos una máquina con 16 GB, y queremos dedicar al apache el 80% de la memoria (3,2 GB) y el tamaño del proceso es de 17MB.
MaxClients = (16GB - 3.2 GB) * 1024 / 17MB =771,0118o equivalentemente
MaxClients = ((16×1024) × 0,8) ÷ 17 = 771SI queremos fijar la cantidad de memoria a un valor fijo (ej: 4GB) se hacen las mismas cuentas
MaxClients = (4×1024) ÷ 17 = 240
Comentarios