Esse é definitivamente o erro que você recebe quando o APC fica sem memória. Quando eu (re) construo servidores, muitas vezes esqueço de aumentar esse valor para 128 M (adequado para minha aplicação) e esse é o erro exato que você vê.
No meu caminho para o escritório esta manhã, todos os sites no nosso VPS compartilhado começaram a dar o mesmo erro (várias vezes, não o típico erro memory_limit que é fatal):
Warning: Unknown: Unable to allocate memory for pool. in Unknown on line 0
O servidor compartilhado é um contêiner OpenVZ de 64 bits que executa o cPanel. Há apenas ~ 6 VPS no host - este é o maior com apenas 4GB. O host em si tem 24 GB de RAM. Como os gráficos abaixo mostram, o uso da memória no host e no VPS é bastante baixo. O uso da CPU / disco / host parece ser normal. RlimitMem foi definido como 583653034
, mas o uso de memória é quase o mesmo que costuma ser.
Apache 2.2, PHP 5.2 (mod_php)
Reiniciar o Apache corrigiu o problema por enquanto. No entanto, gostaria de evitar que isso aconteça novamente e não tenho certeza do que estava limitando a memória. RlimitMem foi definido como 583653034
, mas o uso da memória é quase o mesmo que costuma ser. Parece haver muita memória: o que causou esse erro?
apc.ttl=0
apc.shm_size=0
apc.mmap_file_mask=(blank)
1 segmento (s) com 32,0 MBytes (memória mmap, bloqueio mutex pthread)
Alguma falha em / proc / bc / resources?
Todos os failcounts devem ser 0 ou permanecer iguais desde o último incidente.
Você precisa:
Aumente os limites de recursos com vzct set <CTID> ... --save
nos recursos que têm contagens de falhas (consulte man vzctl
a seção set ). Você também pode modificar os limites de recursos diretamente em /etc/vz/conf/
. Provavelmente, em todos os casos, você precisa reinicializar os contêineres depois de aumentar os limites.
Por segurança, aumente as configurações (barreira e limite) para recursos problemáticos para x2 (duas vezes) o máximo.
Anote as contagens de falhas atuais e fique de olho nelas para que elas não aumentem mais.
Para mais informações sobre como controlar vários recursos, você pode usar o link como ponto de partida.
Você pode nos contar um pouco mais sobre como o host é inscrito? (por exemplo, quanto RAM total você comprometeu com as VMs, quanta memória RAM para cada uma das VMs no host) Eu entendo que sua maior é de 4 GB, mas se os outros são todos de 3 GB e o sistema está inscrito em 19 GB, isso deve mostrar 5GB de memória livre para o sistema operacional de hospedagem. Minha matemática, minhas suposições ou qualquer outra coisa não combinam com o gráfico de memória do host acima (mostrando 94% de RAM ocupada).
Limites sysctl de alocação de memória compartilhada? Dê uma olhada no shmmax e nos amigos em /etc/sysctl.conf.
Alternativamente, você está executando o PHP de 32 bits e / ou o Apache em um sistema operacional de 64 bits? Nós vimos um comportamento bizarro de 'meu deus, estou sem memória e preencherei até mesmo com 16 GB de memória física livre' de aplicativos de 32 bits de uso intenso de memória no Linux de 64 bits.
Tags openvz linux apache-2.2