PHP non è in grado di allocare memory

Durante il mio viaggio verso l'ufficio questa mattina, each sito web della nostra condivisione VPS ha iniziato a dare lo stesso errore (più volte, non l'errore tipico di memory_limit fatale):

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

Il server condiviso è un contenitore OpenVZ a 64 bit in esecuzione cPanel. Ci sono solo 6 VPS nell'host – questo è il più grande a soli 4GB. L'host stesso dispone di 24 GB di RAM. Come mostrano i grafici sottostanti, l'utilizzo della memory dell'host e del VPS sono entrambi piuttosto bassi. L'utilizzo di CPU / Disk / Host sembra tutto normale. RlimitMem è stato impostato su 583653034 , tuttavia l'utilizzo della memory è uguale a quello di solito.

  • In Linux, c'è un modo per vedere quale utente ha aggiornato un file?
  • grep è inconsistente inadempiente a grep -P?
  • Xen - non è ansible creare il dominio perché "vdb non può essere connesso"
  • Come dovrebbe un Windows SysAdmin esperto imparare Linux?
  • Migliori opzioni per creare e montare un volume ext4 contenente file> 10M in una directory
  • Linux: perché la frequenza della CPU fluttua quando si utilizza il governatore delle performance?
  • Apache 2.2, PHP 5.2 (mod_php)

    Il riavvio di Apache ha ora risolto il problema. Tuttavia, vorrei impedire che accada di nuovo e non sono sicuro di cosa stava limitando la memory. RlimitMem è stato impostato su 583653034 , tuttavia l'utilizzo della memory è uguale a quello di solito. C'è parecchio abbondanza di memory: cosa ha causato questo errore?

    Utilizzo della memory VPS

    utilizzo condiviso di memoria vm, che corre intorno al 50%

    Utilizzo della memory host

    l'utilizzo di memoria di memoria host vm, utilizzato a 20% in cache al 65% fino alle 6:00, dove è sceso a ~ 60%, tamponato a ~ 10%

    Informazioni sull'APC

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

    1 segmento (s) con 32.0 MBytes (memory mmap, block mutex pthread)

  • come redirect ad un URL utilizzando iptables?
  • Apache + mod_wsgi non responsive dopo l'installazione di scipy
  • Configurare apache per gestire tutte le richieste tramite single index.php
  • Server DHCP per VLAN multilple
  • elenca i nomi di partizione linux solo in bash
  • Disabilita la radice in linux per SSH
  • 4 Solutions collect form web for “PHP non è in grado di allocare memory”

    Questo è sicuramente l'errore che si ottiene quando APC esaurisce la memory. Quando ri-costruisco server, spesso dimentico di aumentare questo valore a 128 M (adatto alla mia applicazione) e questo è l'errore esatto che vedi.

    Qualsiasi failcount in / proc / bc / resources?

    Tutti i failcounts dovrebbero essere 0 o rimanere stessi dall'ultimo incidente.

    Devi:

    1. Aumenta i limiti di risorsa con il vzct set <CTID> ... --save sulle risorse che hanno conteggi di fail (vedi man vzctl la sezione impostata ). È inoltre ansible modificare i limiti di risorse direttamente in /etc/vz/conf/ . Probabilmente in tutti i casi è necessario riavviare i contenitori dopo aver aumentato i limiti.

      Per essere sicuri, aumentare le impostazioni (sia la barriera che il limite) per le risorse problematiche a x2 (due volte) del maxheld.

    2. Scrivere i conteggi correnti correnti e tenere d'occhio loro in modo che non aumentino di più.

    Per ulteriori informazioni sul controllo di varie risorse, è ansible utilizzare http://wiki.openvz.org/Resource_shortage come punto di partenza.

    Puoi dirci un po 'di più su come l'host è stato sottoscritto? (per es. quanto la RAM totale si è impegnata nei VM, quanta RAM per ciascuno dei VM nell'host) Ho capito che il tuo più grande è 4GB, ma se gli altri sono tutti 3GB e il sistema è sottoscritto a 19GB, dovrebbe essere visualizzato 5GB di memory libera per l'OS di hosting. O la mia math, le ipotesi o qualcos'altro non si gelano con il grafico di memory dell'ospite sopra (che mostra il 94% di RAM occupata).

    Limiti sysctl di allocazione della memory condivisa? Guarda shmmax e amici in /etc/sysctl.conf.

    In alternativa, stai eseguendo PHP a 32 bit e / o Apache su un sistema operativo a 64 bit? Abbiamo visto bizzarro 'oh mio dio che sono fuori memory e ho intenzione di riempire lo scambio anche attraverso la memory fisica libera di 16 GB' da applicazioni a 32 bit ad alto utilizzo di memory a 64 bit Linux.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.