mod_python com falhas do Apache

1

Estou tendo um problema com o mod_python e o Apache, e tenho certeza de que sei qual é o problema, mas gostaria de ter um pouco de tranquilidade. Atualmente, tenho uma situação em que estou trabalhando com uma pequena VM muito com apenas 256M de RAM. Agora o MySQL e o Apache rodam muito bem, e tudo está bem e bem, até eu começar a usar o swap, o que obviamente eu quero evitar o máximo possível. Com essa pequena RAM, é praticamente impossível. Eu optei por cron up restart do MySQL e Apache algumas vezes por dia, no entanto, recebo um espaço no disco deixado no dispositivo após cerca de 4-5 dias:

[Mon May 11 06:00:14 2009] [notice] caught SIGTERM, shutting down
[Mon May 11 06:00:20 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Mon May 11 06:00:20 2009] [notice] Digest: generating secret for digest authentication ...
[Mon May 11 06:00:20 2009] [notice] Digest: done
[Mon May 11 06:00:21 2009] [notice] mod_python: Creating 4 session mutexes based on 256 max processes and 0 max threads.
[Mon May 11 06:00:21 2009] [error] (28)No space left on device: mod_python: Failed to create global mutex 1 of 4 (/tmp/mpmtx265021).

Minha inicial foi a falta de semáforos, mas isso não parece ser o caso. Pelo menos os truques que usei para contornar isso no passado não funcionaram até agora. Eu vi problemas semelhantes com pessoas usando mod_python, mas eu não encontrei muito em termos de correções reais. Minhas reinicializações estão causando isso, ou isso é apenas mod_python sendo buggy? Obrigado!

    
por f4nt 13.05.2009 / 03:53

4 respostas

2

Eu tive problemas semelhantes ao reiniciar repetidamente o Apache no meu laptop (para mim, foram necessárias cerca de 40 reinicializações); a única solução que encontrei foi reiniciar totalmente o computador. Claro, meu laptop tem 2GB de RAM e muito mais espaço em disco do que seu servidor provavelmente faz, então você pode se deparar com esse problema mais rapidamente ... basicamente, eu evito reiniciar o Apache muitas vezes sem reiniciar o servidor por completo.

    
por 13.05.2009 / 04:32
2
  1. remover os semáforos vazados que não são mais usados

    ipcs -s | perl -ane '/^0x00000000/ && 'ipcrm -s $F[1]''
    
  2. aumenta os semáforos disponíveis

    echo “kernel.sem = 512 32000 100 512″ >> /etc/sysctl.conf; sysctl -p
    
por 30.04.2013 / 20:12
1

Pesquisando no Google, encontrei esta solução :

You actually need to increase the amount of SysV Semaphores on your system.

I use (in /etc/sysctl.conf):
kernel.sem = 512 32000 100 512
(set the options in this file by running sysctl -p).

BTW. mod_python é um pouco obsoleto, desde a introdução do WSGI. A maioria dos aplicativos modernos pode ser executada usando mod_wsgi .

    
por 13.05.2009 / 13:54
1

Suponho que isso seja feito em um sistema Linux.

Eu só estou querendo saber se você pode estar vendo algum problema de memória compartilhada, bem como os semáforos? Eu tive que acontecer comigo quando o apache é morto via kill -9.

Quando isso acontece, você verificou o status da área de memória compartilhada usando o comando:      ipcs-a Isso mostrará o uso atual de semáforos, filas de mensagens e memória compartilhada. Isso pode fornecer mais informações sobre o problema.

Você pode, na verdade, remover os semáforos antigos ou as regiões de memória compartilhada usando o comando ipcrm (consulte a man page para obter as opções específicas necessárias).

Não me lembro no momento, mas lembro que é relativamente fácil no Linux modificar os parâmetros de semáforo e memória compartilhada.

Bem, apenas algumas reflexões sobre o seu problema. Espero que ajude.

    
por 15.05.2009 / 07:42