Fatal error: Allowed memory size of 16777216 bytes exhausted
前一陣子就發現我自己寫的Apache和Mysql的連線防護的監控圖出了一點問題,無法產生year的圖形,一直沒空追查到底哪邊出了問題,因為印象中在我過去那台gentoo主機使用一樣的shell script、php和mysql都沒問題的,今天比較有空,把問題追了一下,總算找到解決的方法。
我試著手動執行自己寫的shell script,出現了一個錯誤訊息:
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate
3423780 bytes) in /var/www/sysmon/gnuplot.php on line 28
因為這隻監控程式是每分鐘執行一次,看來累積了大量的資料在mysql資料庫中,導致預設的記憶體不夠用,可以在php.ini裡把memory_limit = 16M這個值把它調大,例如修改成64M或更大。
不過在這裡提供一個更好的解決方法,只要直接在php程式中設定(記憶體大小可視需求,記得要放在整個程式的前面)就可以了:
<?php ini_set("memory_limit","128M"); ?>
這個方法是在php程式上動態設定memory,不會動到PHP的全域變數設定。
相關文章
標籤:
memory‧mysql‧PHP‧php5‧shell script‧記憶體
上一篇:幼兒美語經驗分享
下一篇:戶外教學

本篇尚無任何回應。