前一陣子就發現我自己寫的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的全域變數設定。

相關文章

  • 2010年3月8日 -- PHP時區設定 (0)
    上禮拜在做Ubuntu Server系統更新時發現更新後出現了幾個問題,首先是系統時間被改成UTC時間,再來就是PHPSysinfo和PHPmyadmin不見了,逐步修復上述三個問題後進入mysql發...
  • 2009年10月6日 -- coLinux Ubuntu阻擋大量連線請求 (0)
    大量連線請求通常會造成伺服器過度負荷,進而可能讓主機嚴重當機,無法正常運作。針對這種情形,在過去我採用監控Apache和Mysql的執行緒數目來解決。其原理是一旦連線請求過多,通常Apache和Mys...
  • 2009年12月12日 -- Shell Script:監控記憶體使用率及rTorrent使用情形 (0)
    經過幾天的記憶體使用率觀察,確認了rTorrent對記憶體的耗用情況。發現退出rTorrent後,rTorrent並不會釋放記憶體的問題。這對整個系統而言並不是一個好事,於是寫了一個Shell Scr...
  • 2009年12月9日 -- 記憶體使用率監控 (0)
    自從發現rtorrent在Hashing時會吃光記憶體之後,覺得有必要對系統的記憶體狀況做一個長期觀察與監控,於是用shell再寫了一個記憶體監控程式,數據則來自Linux的free指令,由gnupl...
  • 2009年10月17日 -- Uptime Graph (0)
    寫了一些監控coLinux系統的script,輸出的圖形也放在WordPress的分頁方便監控和追蹤coLinux的系統效能,最近又寫了一個uptime的監控圖形,一樣利用mysql儲存歷史資料庫,然...