Archivio

Posts Tagged ‘kernel.msgmni’

Riavvio di apache fallito

2 settembre 2009 loade 2 commenti

Può capitare, specialmente su server con un alto traffico, che il riavvio del web server fallisca con un errore del tipo:

failed: No space left on device

Se lo spazio non è realmente terminato, il problema è sicuramente legato ai semafori di apache.

Con il seguente comando potete verificare se sono rimasti attivi alcuni semafori :

ipcs -s

—— Semaphore Arrays ——–
key        semid      owner      perms      nsems
0×00000000 1835008    www-data  600        1
0×00000000 1867777    www-data  600        1
0×00000000 1900546    www-data  600        1
0×00000000 1933315    www-data  600        1

A questo punto potete cancellare i semafori rimasti attivi con il comando:

for i in `ipcs -s | awk ‘/www-data/ {print $2}’`; do (ipcrm -s $i); done

Nel caso volessimo aumentare le capacità del nostro webserver:

vi /etc/sysctl.conf

aggiungere le seguenti variabili:

kernel.msgmni = 1024
kernel.sem = 250 256000 32 1024

per far caricare le impostazioni al kernel direttamente:

sysctl -p

Per vedere se il kernel ha preso le nuove impostazioni:

ipcs -l

—— Shared Memory Limits ——–
max number of segments = 4096
max seg size (kbytes) = 32768
max total shared memory (kbytes) = 8388608
min seg size (bytes) = 1

—— Semaphore Limits ——–
max number of arrays = 1024
max semaphores per array = 250
max semaphores system wide = 256000
max ops per semop call = 32
semaphore max value = 32767

—— Messages: Limits ——–
max queues system wide = 1024
max size of message (bytes) = 8192
default max size of queue (bytes) = 16384

Per approfondimenti:

kernel-msgmni, kernel-sem