1. 程式人生 > >【轉】為什麼linux系統變慢了

【轉】為什麼linux系統變慢了

實際上本文列出的導致系統變慢的 3 種原因 —— CPU佔用、記憶體佔用、IO佔用,及其處理方法,同樣也適用於 Windows 系統。

為什麼linux系統變慢了

“系統變得很慢了,讓我重啟一下”,這個被經常使用且有效的做法真的很粗暴。 作為程式設計師最親密的夥伴,可以待它溫柔多些。

在linux發行版中,核心很穩定,極少出現bug,所以通常是某個應用導致系統變慢。 只要查出是哪些應用導致的,kill之就可以了。

  • cpu佔用

linux下自帶的工具top可以實時顯示當前cpu的使用情況。

$ top
$ pkill -9 chrome # 假定chrome程序cpu的佔用100%

不像windows,到處都是殺不死的小強。SIGKILL訊號可以輕易殺掉該程序。 自此,cpu終於過上農夫山泉有點田的生活了,cpu風扇也安靜下來了。
博者注:Windows 中可以使用 tasklist 進行檢查,使用 taskkill 命令終止程序

  • 記憶體佔用

當某應用由於記憶體洩漏,記憶體濫用等導致要頻繁的讀寫swap分割槽,或者在OOM Killer自動清除掉一些程序時, 系統就會變的很慢,就像房源被少數人控制後,即使只想攤上個剛需房也是天大的難事。

$ free -m # 檢查 swap 分割槽佔用
$ ps -eo pid,%mem,cmd --sort %mem
$ 
pkill -9 chrome

這樣,chrome濫用/洩漏的記憶體資源被全部回收,並分配給其它需要的程序,絕對不會從中收受群眾的一房一地。
博者注:Windows 中同樣可以使用 tasklist 進行檢查,使用 taskkill 命令終止程序

  • IO佔用

IO佔用一般是指頻繁的讀寫磁碟的時候,如拷貝大量的小檔案,執行定時任務updatedb等,也可能讓系統產生卡頓感。 跟top相似,iotop可以實時的顯示當前io讀寫情況。

$ sudo emerge iotop # 安裝iotop
$ sudo iotop # 新的linux版本需要超級許可權

如果這個任務不是緊急的,仍然可以用pkill殺掉該任務,讓它閒時重新執行。或者tar成一個大的存檔檔案再讀寫。 如果覺得上面步驟太繁瑣,sudo /etc/init.d/xdm restart 重啟一下Xwindow可解決大部分問題。
博者注:Windows 中可以使用資源管理器進行檢查並終止程序

送給應用組的同事:原本生活可以更美的☺

~EOF~ 2013.02.24