Out of memory

21 contenuti / 0 new
Ultimo contenuto
Out of memory

Più di tanto non mi intendo di server ma c'è qualcosa che non mi quadra.

Questo tipo di errori si verificano su un dominio con D7 con 64MB di ram impostati da .htaccess

Il dominio è in un server virtuale che dovrebbe avere 250MB di ram dedicata. Effettuando alcune operazioni es.controlli aggiornamenti, pulizia della cache ecc. mi va in Out of memory con conseguente pagina bianca e sito irraggiungibile per qualche secondo-minuto.

La cosa che mi puzza è il fatto che non va in Out of memory superando i 64MB ma molto meno. Di seguito un esempio preso dal log:

[Thu Sep 01 12:29:09 2011] [error] [client xx.xx.xxx.xx] PHP Fatal error: Out of memory (allocated 20971520) (tried to allocate 19456 bytes) in /var/www/vhosts/.../subdomains/.../httpdocs/sites/all/modules/views/includes/handlers.inc on line 1409, referer: http://.../sites/all/modules/views_nivo_slider/views_nivo_slider.css?lq30rq

Come si può notare è andato in Out of memory con 20971520 bytes quindi 20MB. D'assistenza danno la colpa ai moduli in questo caso a views nivo slider e non rispondono alla differenza di Ram.

Mi stanno prendendo per il c... e come sospetto non ci sono 250MB disponibili, o c'è qualcosa che sbaglio io?

Ciao, una cosa sono i 250MB che ti hanno allocato al VPS, un'altra sono i 20MB che sono allocati dal PHP per l'esecuzione della richiesta (pagina, script, etc etc).

Secondo me da .htaccess non stai allocando 64MB. Hai provato a vedere via phpinfo() quanto è il memory_limit che il PHP sta utilizzando?

M.

--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal

Innanzitutto grazie per la risposta.

Via phpinfo() vedo memory_limit 64M - 48M

Secondo me è un pò poco.
Comunque non saprei come si fa da htaccess (come dice zietto); forse si confonde con il php.ini, ma in locale, non su server.
Su server comanda l' hosting e, per me una memory limit di 48Mb è poco (se si usano molte view)

Io leggo due valori 64 (quelli che ho impostato io) e 48.

Ora non ho capito bene quale sia quello vero ma anche se fossero 48, 48 è più di 20 ed i teoria non dovrebbe andare in Out of memory.

Ma come ho scritto sopra di server ne so ben poco, forse 250Mb non sono sufficienti per far funzionare VPS e D7 o forse c'è qualcos'altro.

Per questo ho scritto qui, nella speranza che qualche esperto in server mi chiarisca le idee trasformandole in info utili a chiunque :-)

interessato anche io all'argomento perchè mesi fa mi successe la stessa identica cosa. sai come risolsi? cambiando hosting e con la medesima ram allocata andava bene, quindi pensai ad una bella presa per il c...
sicuro al 100% non sono mai stato ma visto che adesso stai passando la stessa cosa mi paicerebbe capire anche a me.

Secondo me la differenza è tutta nella memory_limit di PHP. E' come la ram di sistema; la differenza di 20 Mb probabilmente significa che ne hai in totale 48 o 64, ma Drupal per girare già se ne prende occupa 28 o 44 e quindi te restano 20. Appena parte una view un pò più corposa

Quote:
Fatal error: Out of memory (allocated 20971520)

Dalle discussioni sul forum, sembra che per saperlo con precisione, ci vorrebbe Devel.

...posso assicurare (per esperienza diretta...) che è tutta una questione di memory_limit

...per lavorare bene con Drupal senza questi tipi di scocciature bisogna aumentare tale valore... naturalmente questo comporta l'aumento/upgrade della memoria del VPS ...devi fare delle prove, per questo io ho scelto dreamhost.com che ti da la possibilità di attivare un VPS con l'opzione (molto comoda...) di testare/individuare il quantitativo di ram (TOTALE... da 300M a 4.000M) che ti serve per una settimana, prima dell'acquisto... (probabilmente anche altri provider offrono tale servizio...) ...fai un po di prove (sul memory_limit...) 128M > 256M > 300M, fino a quando il tutto scorre senza problemi...

su siti di medie/grandi dimensioni ci vogliono risorse... su uno dei miei siti ho dovuto optare per 2150M di ram sul VPS e settare il memory_limit a 500M ...a 450M su certe Views mi usciva la pagina bianca che hai descritto sopra...

comunque il problema è quello... sarebbe come lavorare su un PC con 256 MB di ram ...ad un certo punto si pianta su qualche applicazione che richiede molte risorse in termini di ram!

probabilmente apparirò un pò largo di manica ma Drupal, alla fine, mi sono convinto che è come un Sistema Operativo e, come tale, non puoi dargli la ram con il contagoccie (mentalità che vedo molto diffusa...), un pò largo devi stare... è come avere un PC/MAC con il quale devi fare editing audio/video ...non puoi prevedere di quanta ram ad un certo punto devi aver bisogno - gli schiaffi 4 banchi da 2 GB ciascuno e sei a posto... mica stai li a misurare quanta ram richiede un'applicazione (o più applicazioni contemporaneamente...)... un pò di "ossigeno" di scorta lo devi sempre avere... spero di essermi spiegato...

Grazie per le risposte, pensavo di aver abbondato prendendo un VPS con 250M di ram ma a quanto pare non è così.

prova a mettere nell'.htaccess

php_value memory_limit 128M

Ciao, oramai con 250MB di ram ce ne fai poco, ma con qualsiasi CMS. Sempre che tu non voglia fare siti statici.
Io per la mia macchina di sviluppo ho un hosting che mi da 512MB di ram ed in cui il MYSQL è a parte, quindi 512MB reali per il PHP (al netto di qualche MB per i programmi del sistema operativo). Ed è una gran cosa che il MySQL sia a parte, perché molte volte è lui che ti frega.

M.

--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal

muka wrote:
prova a mettere nell'.htaccess

php_value memory_limit 128M

Grazie ma ho in un altro sito 128M con lo stesso problema, quindi questo non risolve.

zio budda se ho capito quindi hai il db su un server e php sull'altro?
quanta memoria dedichi poi a mysql?

Si, PHP su devel.ziobuddalabs.it e MySQL su un cluster interno.

Il bello del mio hosting è che non setto la memoria di MySQL. Ovviamente il contratto è per siti medio-piccoli e comunque di sviluppo. Se a qualcuno interessa posso dare i riferimenti dell'hosting, ma non vorrei darli pubblicamente per non passare per messaggio pubblicitario.

M.

--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal

Secondo me 128M sono sufficenti anche con più viste (e senza cache) e parecchi risultati.
Forse hai dei moduli che strizzano troppo la cache, in paricolare se usano le funzionalità del theme registry

@muka sul sito dove ho impostato 128m ci sono installati i seguenti moduli, in quello dove ho impostato 64M (u sottodominio) i moduli sono più o meno gli stessi. Sono attive 3 viste in 3 pagine diverse.

Quote:

admin_menu
backup_migrate
captcha
ctools
custom_breadcrumbs
elements
entity
front
globalredirect
google_analytics
html5_tools
imce
imce_wysiwyg
libraries
metatags_quick
page_title
pathauto
piwik
redirect
semanticviews
token
transliteration
views
views_slideshow
webform
wysiwyg
wysiwyg_linebreaks
xmlsitemap

@ziobudda
Sto cercando di risolvere con l'assistenza ma la cosa potrebbe essere interessante nel caso mi rispondano di non avere un supporto adeguato a D7. Quindi invia pure :-)

krima wrote:

[Thu Sep 01 12:29:09 2011] [error] [client xx.xx.xxx.xx] PHP Fatal error: Out of memory (allocated 20971520) (tried to allocate 19456 bytes) in /var/www/vhosts/.../subdomains/.../httpdocs/sites/all/modules/views/includes/handlers.inc on line 1409, referer: http://.../sites/all/modules/views_nivo_slider/views_nivo_slider.css?lq30rq

In effetti non ci sono molti moduli..
Dall'errore qui sopra direi
1 memory_limit è 20M nonostante i tuoi settaggi, forse in php.ini dovresti vedere se c'è AllowOverride All
2 Si "pianta" mentre aggrega il css, quindi dopo il flush della cache. Senza aggregazione css/js forse ce la fa :P

@krima
c'è un'ampia discussione qui (dove hai partecipato anche tu...) sulla faccenda del memory_limit, dei processi di Apache etc etc... >>> http://www.drupalitalia.org/node/11165

@muka
Il server è managed quindi non posso controllare il php.ini. Ad ogni modo hanno alzato i parametri ed ora funziona tutto correttamente.

@kipper
Vero :-) me ne ero scordato...

Ciao, io con alcuni managed ho avuto la possibiltà di mettere il php.ini nella directory root del mio sito web. Provaci nel caso ci fossero altri problemi.

M.

--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal

ziobudda wrote:

Ciao, io con alcuni managed ho avuto la possibiltà di mettere il php.ini nella directory root del mio sito web. Provaci nel caso ci fossero altri problemi.
M.

Terrò presente grazie :-)