跟硬碟使用量以及記憶體使用狀態有關的linux command line指令

前陣子因為用了六年多的DigitalOcean主機顯示硬碟容量不足,因此開始清理裡面的垃圾。清理完畢後發現MySql竟然記憶體飆高到40%,重啟服務、更新版本能試的方法試過一輪還是一樣。最後才發現原來自己誤刪了swap(類似Window的虛擬記憶體)。以下是當時在檢查問題點時常用到的command,我把他整理起來,免得之後要用又忘掉。注意:有些在mac上可用,有些不行。且有些雖然可用,但options可能會有點出入。

列出檔案大小

指令:du -h

執行後會像這樣列出來

du是硬碟使用統計的指令,-h 是顯示成人類好閱讀的形式。但因為會列出目錄中所有檔案的大小,如果目錄中檔案非常多,會捲到天荒地老看找不到,這時候可以直接指定檔案或目錄:du -h ./my_folder

硬碟空間剩多少

指令:df -h

執行後會像這樣列出來

df (display free disk space) 指令一樣可以加上 -h 來顯示成好閱讀的形式。會列出整個檔案系統的尺寸、已用、可用空間,以及使用百分比。左側看到的tmpfs是系統暫存空間。

列出記憶體使用狀態

指令:free -hw

執行後會像這樣列出來

左欄Mem是指真正的記憶體,Swap是硬碟模擬的記憶體,也就是上面有提到類似Windows虛擬記憶體的東西。

依程序列出記憶體使用狀態

ps axo pid,user,%mem,%cpu,command –sort=%mem

ps (report a snapshot of the current processes) 指令是用來顯示目前執行的所有process。加上 ax 可以顯示所有的process, 加 o 可以自訂所要顯示的資料欄位。我們指定要顯示 pid (process id), user (執行者), %mem (記憶體用量百分比),%cpu (cpu用量百分比), command (執行的指令)。–sort=%mem 將會以記憶體用量來排序,如果想要反序,在%mem前面加上減號,變成 –sort=-%mem 即可。

執行後會像這樣列出來

htop

htop可以更直觀的列出目前執行的process的資源使用狀況,甚至還支援滑鼠操作。

刪除程序

指令:kill {pid} or pkill {process name}

後記

目前在 DigitalOcean 上開的機器已經六年多了,這中間除了 AWS 以外也沒有用過其他家了。不過前陣子遇到介接台灣公部門 API 會回應很慢的問題,不知道是不是因為機房太遠。這時得知 Linode 有東京的機房,於是就開了一台東京機房的 Linode 來實際體驗一下。不管是管理後台的 UI,或是連線速度等等都相當不錯。介接台灣公部門 API 也非常快,順利地解決了問題!

DigitalOcean 的後台 UI 操作起來感覺比較清爽,且 DigitalOcean 的機器在重開的時候非常快,Linode 則需要等蠻久的。但價格上,最便宜的近似規格在 Linode 是5鎂,DigitalOcean 則要6鎂。

如果想試試看,可以用我的推薦連結,立刻領取 DigitalOcean 60天期限的200美元額度,或 Linode 60天期限的100美元額度 來註冊呦。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料