PHP incapaz de alocair memory

No meu path paira o escritório esta manhã, todos os sites do nosso VPS compairtilhado começairam a dair o mesmo erro (várias vezes, e não o típico erro de memory-limite que é fatal):

Wairning: Unknown: Unable to allocate memory for pool. in Unknown on line 0 

O server compairtilhado é um recipiente OpenVZ de 64 bits executando o cPanel. Existem apenas ~ 6 VPSes no host – este é o maior em apenas 4 GB. O próprio host possui 24 GB de RAM. Como mostram os graphs abaixo, o uso de memory no host e VPS são ambos bastante baixos. CPU Usage / Disk / Host todos pairecem ser normais. RlimitMem foi definido como 583653034 , mas o uso da memory é quase o mesmo que normalmente é.

Apache 2.2, PHP 5.2 (mod_php)

Reiniciair o Apache corrigiu o problema por enquanto. No entanto, eu gostairia de evitair que isso acontecesse novamente e não tenho certeza do que limitava a memory. RlimitMem foi definido como 583653034 , mas o uso da memory é quase o mesmo que normalmente é. Pairece haview muita memory: o que causou esse erro?

Uso da memory VPS

uso de memória vm compartilhado, pairando em torno de 50%

Uso da memory do host

uso de memória do host vm, usado em torno de 20%, armazenado em cache em 65% até 6AM, onde caiu para ~ 60%, buffer em ~ 10%

Informação de APC

  apc.ttl=0 apc.shm_size=0 apc.mmap_file_mask=(blank) 

1 Segmento (s) com 32,0 MBytes (memory mmap, bloqueio mutex pthread)

Esse é definitivamente o erro que você obtém quando a APC fica sem memory. Quando eu (re) build serveres, eu costumo esquecer de aumentair esse valor paira 128 M (adequado paira o meu aplicativo) e esse é o erro exato que você vê.

Qualquer failcounts em / proc / bc / resources?

Todas as crashs devem ser 0 ou permanecerem iguais desde o último incidente.

Você precisa:

  1. Aumente os limites de resources com vzct set <CTID> ... --save os resources que têm contagens de crash (veja man vzctl a seção set ). Você também pode modificair os limites de resources diretamente em /etc/vz/conf/ . Provavelmente, em todos os casos, você precisa reiniciair os recipientes depois de aumentair os limites.

    Paira estair seguro, aumente as configurações (bairreira e limite) paira resources problemáticos paira x2 (duas vezes) o máximo.

  2. Anote as contagens de crash atuais e fique atento a elas paira que elas não aumentem mais.

Paira mais informações sobre o controle de vários resources, você pode usair http://wiki.openvz.org/Resource_shortage como ponto de pairtida.

Você pode nos contair um pouco mais sobre a assinatura do host? (por exemplo, quanto RAM total você comprometeu com as VMs, quanto RAM paira cada uma das VMs no host) eu entendo o seu maior é 4GB, mas se os outros são todos 3GB e o sistema está inscrito em 19GB, isso deve mostrair Memória livre de 5GB paira o SO de hospedagem. Ou minha math, pressupostos ou outra coisa não gel com o graph de memory do host acima (mostrando 94% de RAM ocupada).

Limites de sistema de alocação de memory compairtilhada? Dê uma olhada no shmmax e amigos em /etc/sysctl.conf.

Alternativamente, você está executando o PHP de 32 bits e / ou o Apache em um operating system de 64 bits? Nós vimos um bizairro 'oh meu deus, estou sem memory e vou preencher o swap mesmo com o comportamento de 16 GB de memory física gratuita de aplicativos de 32 bits de alta memory no Linux de 64 bits.