台灣最大程式設計社群網站
線上人數
1596
 
會員總數:246145
討論主題:189731
歡迎您免費加入會員
討論區列表 >> 網管 / 資安 / VM >> 想請教一下關於PHP異常占用記憶體的問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
想請教一下關於PHP異常占用記憶體的問題
價值 : 100 QP  點閱數:1935 回應數:6
樓主

mgmggt
初學者
362 9
528 28
發送站內信

捐贈 VP 給 mgmggt
想請教一下關於PHP異常占用記憶體的問題
已經設定PHP程式執行的記憶體限制為64MB
但仍可占用到200MB以上(占用的程序是/usr/bin/php,且為同時多個,開起相同的頁面)
目前有觀察到出現該情況的頁面有Discuz及mediawiki的index.php頁面
及WordPress的index.php,wp-cron.php頁面
請問這比較有可能是什麼原因導致的?有解決方法嗎?
(目前我暫時用超過一定大小記憶體就直接kill掉的方法處理了,不過我認為這樣沒有解決根本的問題...)

執行環境:
Linode VPS
CentOS 6.3 64bit
CPanel 11.34.1
Apache 2.2.23
PHP 5.3.20
MySQL 5.1.66

搜尋相關Tags的文章: [ PHP ] , [ 記憶體 ] ,
本篇文章發表於2013-01-20 17:14
1樓
回應

那顆爛蔥
捐贈 VP 給 那顆爛蔥 檢舉此回應
你是用什麼方式知道PHP吃了這麼大的記憶體??
本篇文章回覆於2013-01-21 15:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

mgmggt
捐贈 VP 給 mgmggt 檢舉此回應
我安裝了ConfigServer Firewall做監控
從該監控的自動發信得知
===
Time: Sun Jan 20 22:02:32 2013 +0800
Account: XXXXX
Resource: Virtual Memory Size
Exceeded: 154 > 128 (MB)
Executable: /usr/bin/php
Command Line: /usr/bin/php /home/XXXXX/public_html/index.php
PID: 18577 (Parent PID:16064)
Killed: Yes
===
同時多個則是由監控的自動發信其中的ps及apache狀態頁
本篇文章回覆於2013-01-21 15:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

那顆爛蔥
捐贈 VP 給 那顆爛蔥 檢舉此回應
Virtual Memory...

top - 16:56:11 up 30 days, 4:24, 1 user, load average: 0.00, 0.02, 0.00
Tasks: 96 total, 2 running, 94 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 1.0%sy, 0.0%ni, 96.3%id, 0.0%wa, 0.0%hi, 2.5%si, 0.0%st
Mem: 1034528k total, 808000k used, 226528k free, 89520k buffers
Swap: 4642768k total, 620k used, 4642148k free, 590776k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
16313 www-data 20 0 174m 21m 14m S 0 2.2 0:00.84 /usr/sbin/apache2 -k start
16179 www-data 20 0 172m 21m 15m S 0 2.1 0:02.10 /usr/sbin/apache2 -k start
16354 www-data 20 0 174m 21m 14m S 0 2.1 0:00.52 /usr/sbin/apache2 -k start
16355 www-data 20 0 174m 20m 13m S 0 2.0 0:00.40 /usr/sbin/apache2 -k start
29341 www-data 20 0 174m 19m 12m S 0 1.9 0:00.22 /usr/sbin/apache2 -k start
16395 www-data 20 0 174m 18m 11m S 0 1.8 0:00.50 /usr/sbin/apache2 -k start
16502 www-data 20 0 174m 18m 11m S 0 1.8 0:00.10 /usr/sbin/apache2 -k start
29178 www-data 20 0 173m 17m 10m S 0 1.7 0:00.18 /usr/sbin/apache2 -k start
16501 www-data 20 0 174m 17m 10m S 0 1.7 0:00.12 /usr/sbin/apache2 -k start
16231 www-data 20 0 172m 16m 11m S 0 1.7 0:00.88 /usr/sbin/apache2 -k start
16394 www-data 20 0 170m 12m 7200 S 0 1.3 0:00.28 /usr/sbin/apache2 -k start
29223 www-data 20 0 170m 10m 6148 S 0 1.1 0:01.64 /usr/sbin/apache2 -k start
6421 www-data 20 0 169m 10m 5964 S 0 1.0 0:03.60 /usr/sbin/apache2 -k start
29186 www-data 20 0 169m 10m 5688 S 0 1.0 0:00.10 /usr/sbin/apache2 -k start
16391 www-data 20 0 170m 10m 5320 S 0 1.0 0:00.08 /usr/sbin/apache2 -k start
4704 root 20 0 169m 9m 6004 S 0 1.0 0:37.33 /usr/sbin/apache2 -k start
16315 www-data 20 0 169m 9544 4780 S 0 0.9 0:00.12 /usr/sbin/apache2 -k start
29264 www-data 20 0 169m 9156 4424 S 0 0.9 0:00.10 /usr/sbin/apache2 -k start
29300 www-data 20 0 169m 9080 4352 S 0 0.9 0:00.00 /usr/sbin/apache2 -k start
16503 www-data 20 0 169m 9040 4292 S 0 0.9 0:00.00 /usr/sbin/apache2 -k start
16500 www-data 20 0 169m 8880 4204 S 0 0.9 0:00.04 /usr/sbin/apache2 -k start
16504 www-data 20 0 169m 8876 4204 S 0 0.9 0:00.18 /usr/sbin/apache2 -k start
16497 www-data 20 0 169m 7396 2748 S 0 0.7 0:00.00 /usr/sbin/apache2 -k start
16509 www-data 20 0 169m 6448 2168 S 0 0.6 0:00.00 /usr/sbin/apache2 -k start
29424 www-data 20 0 169m 6164 1900 S 0 0.6 0:00.00 /usr/sbin/apache2 -k start
29383 www-data 20 0 169m 6148 1884 S 0 0.6 0:00.00 /usr/sbin/apache2 -k start
29385 www-data 20 0 169m 6148 1884 S 0 0.6 0:00.00 /usr/sbin/apache2 -k start
29386 www-data 20 0 169m 6148 1884 S 0 0.6 0:00.00 /usr/sbin/apache2 -k start
29387 www-data 20 0 169m 6148 1884 S 0 0.6 0:00.00 /usr/sbin/apache2 -k start
29389 www-data 20 0 169m 6148 1884 S 0 0.6 0:00.00 /usr/sbin/apache2 -k start
16496 www-data 20 0 169m 5424 1172 S 0 0.5 0:00.00 /usr/sbin/apache2 -k start

雖然說不上來,但總覺得你監看錯了東西...
本篇文章回覆於2013-01-22 16:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

那顆爛蔥
捐贈 VP 給 那顆爛蔥 檢舉此回應
嗯...看圖比較明顯
本篇文章回覆於2013-01-22 17:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

mgmggt
捐贈 VP 給 mgmggt 檢舉此回應
調整該項監控參數的是這項
# This User Process Tracking option sends an alert if any cPanel user process
# exceeds the memory usage set (MB). To ignore specific processes or users use
# csf.pignore
#
# Set to 0 to disable this feature
PT_USERMEM = 128
# Default: 100 [0-500]
==
(調整了監控回報的內容,坐等下次發生...
本篇文章回覆於2013-01-22 17:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

mgmggt
捐贈 VP 給 mgmggt 檢舉此回應
看起來lfd的Virtual Memory Size似乎不是指VSZ
監控回報的部分內容:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
XXX 13202 32.5 3.4 132872 34652 ? R 07:31 0:00 /usr/bin/php /home/XXX/public_html/XXXXX/index.php
※伺服器記憶體為1GB
本篇文章回覆於2013-01-23 14:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.