Sem memória, o fork não pode alocar memória

1

Estamos ficando sem memória com freqüência, assim como o fork não pode alocar memória. Eu fiz algumas investigações.

Parece que os scripts não são o caso como eu pensava antes disso. Vou compartilhar informações que recebo depois de analisar.

Eu tenho servidor isolado, para que outras pessoas não possam acessar o servidor. Isso mostrará o uso de memória "verdadeiro" neste caso.

  1. Eu não tenho mysqld e apache iniciado [uso de memória ~ 182mb].
  2. acabou de iniciar o mysqld. nenhuma conexão feita no mysqld [mu ~ 340mb].
  3. link
  4. primeiro pedido ao script. [~ 630mb]. Mas!! A parte mais interessante. A memória não é desalocada. Tudo parece bem. Script terminado, página carregada com sucesso. Mas ainda cerca de ~ 630mb.

Por que uma solicitação consome 270MB? Por que isso não é desalocado após a solicitação?

Algumas estatísticas:

  • RAM do servidor 512 MB garantidos
  • 256 MB expansíveis
  • Limite de memória do PHP: 256MB

link

<IfModule prefork.c>
StartServers 1
MinSpareServers 1
MaxSpareServers 3
ServerLimit 50
MaxClients 50
MaxRequestsPerChild  50
</IfModule>
    
por Toktik 21.03.2012 / 13:26

1 resposta

0

Why one request eats 270MB?

Provavelmente porque ele acessou muitos dados ou metadados em ou sobre arquivos no disco.

Why thats not deallocated after request?

Como os dados podem ser usados novamente em breve. Desalocá-lo após a solicitação torna o próximo pedido caro. Faz mais sentido adiar a desalocação até que a memória seja realmente necessária para outra coisa.

    
por 17.10.2017 / 08:31