摘自syslog
:
CRON[pid]: (user) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -
execdir fuser -s {} 2>/dev/null \; -delete)
我的 CPU 已經卡在 99% 幾個小時了,我猜是因為這樣。有人知道這是什麼、它是如何開始的、如何阻止它嗎?
編輯:我嘗試過top -n1
,並且多次看到這一點:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
PID user 20 0 0 0 0 Z 99.9 0.0 0:00.00 fuser <defunct>
該行重複約 8 次。
編輯2:
uname-a:
user SMP Tue Feb 14 13:27:41 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux`
lsb_release -a:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 11.10
Release: 11.10
Codename: code
編輯3:
重新啟動後,系統又回到相同的99% cpu usage
結果top -n1
。
答案1
這是一個 cron 作業,用於清除 /var/lib/php5/ 中的舊會話檔案。如果它掛在 99% 上,您也許應該檢查目標資料夾 (/var/lib/php5/) 是否有過多文件,甚至可能是檔案系統損壞。
過程從 crontab 啟動。請參閱 crontab 清單(描述這裡)。您可以終止該進程並將其從 crontab 中刪除,但更有可能的是您有潛在問題,例如需要修復的檔案過多。
答案2
在這裡找到了答案:http://www.flynsarmy.com/2011/11/fuser-using-100-cpu-in-ubuntu-11-10/
在/etc/cron.d/php5 on Ubuntu 11.10:
代替
09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete
和
09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete