iT邦幫忙

0

關於PHP吃CPU問題

匿名 2013-08-08 17:51:543861 瀏覽

大家好,小弟有個問題想請教各位高手

小弟安裝Discuz,環境是PHP5.4+IIS+MySQL

但發現PHP還蠻會吃CPU的,小弟CPU使用i7 3820

發現如果F5 Discuz頁面,CPU就會跑2~4%

不知道有沒有方法解決或優化這個問題

感謝各位高手!!

看更多先前的討論...收起先前的討論...
幸好泰大睡了
不然他大概會說...PHP吃CPU
變成 PC HP UP <-- 個人電腦馬力提升
fillano iT邦超人 1 級 ‧ 2013-08-09 05:49:23 檢舉
既然用了IIS,那可以考慮:WinCache

PHP5.4+IIS+MySQL



PHP5.4 OS:為什麼不說是 IIS/MySQL 吃的?
PHP5.4 OS:為什麼只怪我?哭

cmwang iT邦高手 1 級 ‧ 2013-08-09 09:19:27 檢舉
2-4%叫蠻吃CPU啊OrzOrz....
fillano iT邦超人 1 級 ‧ 2013-08-09 12:28:10 檢舉
如果不確定問題發生在哪裡,可以裝xdebug,打開profiling的選項,他會記錄執行過程的function call以及執行的時間,存成log。然後可以用WinCacheGrind來找問題。

mysql可以打開slow query log,設定要記錄的門檻,這樣有比較慢的查詢時,mysql會記錄下來,然後可以用mysqldumpslow來查詢。

這些工具的安裝設定跟使用的資料網路上應該很好找,我就不重複了。
raytracy iT邦大神 1 級 ‧ 2013-08-09 17:25:36 檢舉
是啊, 那我客戶把 Xeon E5620x2 16 core 全部飆到 100%, 不就要叫《大啖 CPU》....暈
cmwang iT邦高手 1 級 ‧ 2013-08-09 22:49:24 檢舉
鵝最近因為某個官衙門客戶的Webmail的Apache/OpenSSL弱掃會被判定有弱點,就丟config patch給委外公司派去管那台機器的人(鵝有說明把config patch放到Apache相關路徑下,再重新啟動Apache即可),結果收到一封令鵝傻眼的回信,竟然是問鵝要怎麼重新啟動Apache,鵝只好從ssh進server之後要怎麼step by step再寄給他,沒想到後來接到更令鵝哭笑不得的電話----他說重新啟動Apache之後為啥系統的RAM被吃掉8-90%,鵝一時沒會過意,以為他說的是光Apache就吃掉8-90%了(鵝怎麼都想不透,只是把HTTP Trace和部份SSL cipher關掉為啥吃RAM量會暴增Orz),就問他那有沒有吃swap,他說沒有,原來是他搞不清楚server跑久了RAM會被拿去當file system的buffer/cache----官衙門只想著CD所以搞out sourcing,既然是CD所以標到的out sorcing業者自然也會對員工搞CD了,真是標準的劣幣驅逐良幣啊OrzOrz....

1 個回答

12
wiseguy
iT邦超人 1 級 ‧ 2013-08-08 22:27:18

加裝 pecl 的 apc 模組或 zendopcache 模組,把 op code 暫存,就不會每次執行 php 程式時,都要耗 CPU 去重新 parsing PHP 程式碼了。

我要發表回答

立即登入回答