大大安安
這幾天遇到一個奇怪的問題
伺服器上安裝的 CentOS 7
過 1~2 週後會出現 swap free 為 0kb 的問題
top 指令截圖如下
可以看到除了 swap free 為 0kb
使用記憶體最兇的是 polkitd
比下面的 mariadb 還兇
但是這個好像不能隨便 kill 掉
不知道這種問題要怎麼解決 @@?
因為伺服器是用 VNC 遠端的
這樣 VNC 遠端過去只看的到畫面
無法操控任何東西
CentOS 印象中是很穩定的伺服器才對
可是這種情況搞得每 1~2週就要重開一次
感覺差很多 =口=
您看錯了, 是8257532 free, 那個0是0 used, 不是free的.
您的記憶體扣除buffer/cache後也只用約5GB,
每兩週重開是因為?
XD 真的,
眼睛不好,看錯了逗點,
不過我依然有相同的問題,
polkitd 隨著開機時間不斷的消耗我的記憶體,
隨著開機時間越久消耗越多,
過了 1~2 週之後,
遠端的 VNC 就會沒反應,
只看得到畫面滑鼠點選沒反應,
最後只能重新開機......
polkitd: policy kit daemon
這是freedesktop安全警衛, 管事的, 只要有裝圖形介面, 就會有, 不能刪除的. 關於您的猜測, 這應該是VNC的問題, 建議不要用VNC, 改用SSH, 用文字介面. 或者用crontab定期重啟polkitd(藉由killall polkitd, polkitd會馬上重啟):
以下是每日重啟:
建立腳本
# nano /etc/cron.daily/kill-polkitd
#!/bin/bash
/usr/bin/kill -9 `/usr/bin/pgrep polkitd`
# chmod +x /etc/cron.daily/kill-polkitd
您也可以手動重啟:
#/etc/cron.daily/kill-polkitd
由於我不用CentOS, 如果kill和pgrep路徑不對, 請用
# whereis kill
# whereis pgrep
找出更正, 或請有使用CentOS的指正.
另外, 如果是伺服器, 我使用沒有圖形介面的, 通常是Ubuntu, 也就不會有polkitd, 當然, 可以用ssh管理, 如果喜歡用圖形介面, 那就裝webmin
感謝~
這看起來直指問題的核心,
我會試試看 crontab 定時刪除 polkitd,
真的非常感激