當你的 linux 系統無法建立新檔案時,有可能是你的磁碟滿了,還有可能是你的磁碟的 inode 用光了,我們今天要說的就是後一種情況,要解決這個問題,只能是刪除一些檔案,但是一般情況下,其實是你的系統中的某個地方產生了大量的你並不需要的檔案,你要做的就是找到他們並刪除就可以了,我並不是讓你刪除你有用的檔案,因為你一般不會有那麼多有用的檔案來把系統的 inode 用光。
什麼是 inode ?
檔案儲存在硬碟上,硬碟的最小儲存單位叫做」扇區」(sector)。每個扇區儲存512位元組(相當於0.5kb)。
作業系統讀取硬碟的時候,不會乙個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取乙個」塊」(block)。這種由多個扇區組成的」塊」,是檔案訪問的最小單位。」塊」的大小,最常見的是4kb,即連續八個 sector組成乙個 block。
檔案資料都儲存在」塊」中,那麼很顯然,我們還必須找到乙個地方儲存檔案的元資訊,比如檔案的建立者、檔案的建立日期、檔案的大小等等。這種儲存檔案元資訊的區域就叫做inode,中文譯名為」索引節點」。
每乙個檔案都有對應的inode,裡面包含了與該檔案有關的一些資訊。
如何檢視系統的 innode 占用情況
df-ih
如何查詢那個目錄下檔案最多
首先切到根目錄 /cd
/然後執行
fori
in/*; do echo
$i; find
$i| wc -l; done
或者for
i in
`ls -
1a | grep -v
"\.\./"
| grep -v
"\./"
`; do
echo
"`find
$i| sort -u | wc -l` $i"
; done
| sort -rn | head -
10這樣會依次返回
/目錄下檔案最多的目錄,進入這個目錄,再執行上述命令,就這樣層層深入最終確定是那個目錄檔案最多
如何刪除那個目錄的的所有檔案
一般情況下,如果這個目錄下應該會有數以百萬的檔案,如果你直接用
rm -rf 目錄名
的話效率會很低,可以用下面方法
find
目錄 -
type
f-name
'*'-print0 | xargs -0rm
時間可能會比較久,所以你最好開乙個 screen 來處理
有可能是你遇到了下面的情況
/var/spool/postfix/maildrop 下面有很多檔案
為了避免,可以執行
crontab -e
在最開頭新增
mailto='"'
儲存,然後
server crond restart
重啟 crond
jstack分析cpu占用100
背景 執行測試程式後,top命令發現某個程序 pid 占用cpu達到100 檢視哪個執行緒占用最多資源 ps mp pid o thread,tid,命令檢視這個程序下面的所有執行緒占用情況。發現執行緒324占用最多。使用jstack進行跟蹤 jstack pid 進行檢視輸出到臨時檔案 jstac...
Linux inode資訊詳解
要理解inode,就先要理解檔案的儲存方式。我們都知道,檔案是儲存在硬碟上的。硬碟的最小單位是扇區,每個扇區的大小為512位元組。如果系統在讀取硬碟資料的時候按扇區乙個乙個來讀取,那效率就太低了,而是一次連續性讀取多個扇區,所以設計者又將多個扇區整合成乙個塊 block 所以,塊就是檔案訪問的最小單...
linux inode節點詳解
一 inode是什麼?理解inode,要從檔案儲存說起。檔案儲存在硬碟上,硬碟的最小儲存單位叫做 扇區 sector 每個扇區儲存512位元組 相當於0.5kb 作業系統讀取硬碟的時候,不會乙個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取乙個 塊 block 這種由多個扇區組...