Linux inode 占用100 的解決辦法

2021-08-20 08:42:27 字數 1511 閱讀 4565

當你的 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 這種由多個扇區組...