0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳談Linux系統(tǒng)下的inodes資源耗盡

如意 ? 來源:Linux云計(jì)算網(wǎng)絡(luò) ? 作者:Linux云計(jì)算網(wǎng)絡(luò) ? 2021-01-05 17:32 ? 次閱讀

1. inodes介紹

Linux系統(tǒng)下文件數(shù)據(jù)儲存在“塊”中,文件的元信息,例如文件的創(chuàng)建者、文件的創(chuàng)建日期、文件的大小等。這種儲存文件元信息的區(qū)域就叫做inode,中文譯名為“索引節(jié)點(diǎn)”。

inode也占用硬盤空間,硬盤格式化的時(shí)候,操作系統(tǒng)自動(dòng)將硬盤分成兩個(gè)區(qū)域。一個(gè)是數(shù)據(jù)區(qū),存放文件數(shù)據(jù);另一個(gè)是inode區(qū)(inode table),存放inode所包含的信息。

每個(gè)inode節(jié)點(diǎn)的大小,一般是128字節(jié)或256字節(jié)。inode節(jié)點(diǎn)的總數(shù),在格式化時(shí)就給定,一般是每1KB或每2KB就設(shè)置一個(gè)inode。假定在一塊1GB的硬盤中,每個(gè)inode節(jié)點(diǎn)的大小為128字節(jié),每1KB就設(shè)置一個(gè)inode,那么inode table的大小就會達(dá)到128MB,占整塊硬盤的12.8%。

2. inodes資源耗盡

inodes使用完與存儲空間使用完相似,都是創(chuàng)建不了文件或無法正常執(zhí)行一些命令。inodes使用完,存儲空間可能還有,這種情況一般是生成了大量的小文件,把inode table占滿。

一般情況下存儲空間使用完,inodes往往才使用百分之幾,所以容易忽視對inodes使用情況的監(jiān)控。

借用網(wǎng)圖來說明inodes用盡,而磁盤空間還未用完的情況:查看磁盤空間使用情況,使用df命令

查看inodess使用情況,使用df -i命令:

上述兩個(gè)命令可以使用-h參數(shù),命令為df -h和df -hi。從圖中看見磁盤空間使用71%,但是inodes使用100%。

3. inodes耗盡解決

inodes的大小在磁盤格式化分區(qū)時(shí)確定,跟分區(qū)的大小相關(guān),分區(qū)越大,inodes越大,反之亦然。

linux操作系統(tǒng)根目錄一般分區(qū)比較小,如果有定時(shí)性的小文件產(chǎn)生而又未及時(shí)清理,則很容易造成inodes占滿。

inodes占滿解決步驟:

(1)查看文件最多的目錄

for i in /*; do echo $i; find $i | wc -l; done

如果確定目錄范圍,把/*寫的具體點(diǎn)

最終發(fā)現(xiàn)是/var/spool/postfix/maildrop目錄下小文件過多,原因如下:由于linux在執(zhí)行cron時(shí),會將cron執(zhí)行腳本中的output和warning信息,都會以郵件的形式發(fā)送給cron所有者。由于客戶環(huán)境中的sendmail和postfix沒有正常運(yùn)行,郵件發(fā)送不成功,導(dǎo)致全部小文件都堆積在maildrop目錄下,另由于缺乏自動(dòng)清理的機(jī)制,故此目錄下堆積了大量的文件。

經(jīng)過排查root用戶下發(fā)現(xiàn)有個(gè)每分鐘進(jìn)行一次時(shí)鐘同步的定時(shí)任務(wù),該定時(shí)任務(wù)每分鐘產(chǎn)生一個(gè)小文件。

(2) 刪除大量文件

ls | xargs -n 1000 rm -rf 需要使用xargs命令,不然會刪除失敗。

4. 總結(jié)

(1)設(shè)置方面在crontab -e 第一行增加MAILTO=“” ,就沒有文件產(chǎn)生啦

(2)重定向?qū)Χ〞r(shí)任務(wù)設(shè)置定向輸出文件,不需要日志輸出的定時(shí)任務(wù)可以將日志重定向到/dev/null,如下:

*/10 * * * * /tmp/test.sh 》/dev/null 2》&1

(3) 定時(shí)清理文件

find 目錄 -type f -mtime +30 | xargs -n 1000 rm -f**

(4) 監(jiān)控inodes的使用

備注:應(yīng)注意crontab的寫法和產(chǎn)生的文件的定時(shí)清理
責(zé)編AJX

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6715

    瀏覽量

    88308
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207908
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6545

    瀏覽量

    122743
收藏 人收藏

    評論

    相關(guān)推薦

    Linux系統(tǒng)進(jìn)程的幾種狀態(tài)介紹

    文章對 Linux 系統(tǒng)進(jìn)程的幾種狀態(tài)進(jìn)行介紹,并對系統(tǒng)出現(xiàn)大量僵尸進(jìn)程和不可中斷進(jìn)程的場景進(jìn)行分析,使用常用的幾種工具進(jìn)行問題分析定位。
    發(fā)表于 11-24 16:15 ?1.2w次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>下</b>進(jìn)程的幾種狀態(tài)介紹

    Linux內(nèi)核編譯詳談

    Linux內(nèi)核編譯詳談
    發(fā)表于 08-04 00:36

    Linux中共享Windows系統(tǒng)資源

    Linux中共享Windows系統(tǒng)資源 在一部電腦上裝有Linux和Windows的用戶,可能需要在Linux中用到包括軟盤、光盤以及Windows分區(qū)中的文件,如當(dāng)你在Windo
    發(fā)表于 01-18 12:57 ?570次閱讀

    linuxsamba服務(wù)器搭建配置

    linuxsamba服務(wù)器搭建配置是使用linux開發(fā)系統(tǒng)時(shí)經(jīng)常要配置的一步,只有這頻配置好,不系操作系統(tǒng)間才能
    發(fā)表于 03-19 18:59 ?13次下載

    基于Linux操作系統(tǒng)C語言編程入門

    基于Linux操作系統(tǒng)C語言編程入門
    發(fā)表于 10-27 15:36 ?11次下載
    基于<b class='flag-5'>Linux</b>操作<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>下</b>C語言編程入門

    Linux內(nèi)核編譯詳談

    Linux內(nèi)核編譯詳談
    發(fā)表于 10-30 09:51 ?7次下載
    <b class='flag-5'>Linux</b>內(nèi)核編譯<b class='flag-5'>詳談</b>

    監(jiān)視Linux系統(tǒng)資源的使用情況

    雖然說Linux操作系統(tǒng)要比Windows操作系統(tǒng)穩(wěn)定的多。但是這個(gè)穩(wěn)定是相對而言的。也就是說,Linux操作系統(tǒng)也會有鬧脾氣的時(shí)候。在某些
    發(fā)表于 11-03 12:39 ?0次下載

    Linux系統(tǒng)軟硬鏈接原理

    Linux系統(tǒng)軟硬鏈接原理
    發(fā)表于 11-23 08:49 ?1次下載

    Linux操作系統(tǒng)C語言編程入門.pdf

    Linux操作系統(tǒng)C語言編程入門
    發(fā)表于 05-17 10:08 ?95次下載

    Linux操作系統(tǒng)實(shí)用教程之如何進(jìn)行Linux系統(tǒng)的編程管理

    本文檔的主要內(nèi)容詳細(xì)介紹的是Linux操作系統(tǒng)實(shí)用教程之如何進(jìn)行Linux系統(tǒng)的編程管理主要內(nèi)容包括了:1.inux編程環(huán)境及工具2
    發(fā)表于 11-01 10:51 ?5次下載
    <b class='flag-5'>Linux</b>操作<b class='flag-5'>系統(tǒng)</b>實(shí)用教程之如何進(jìn)行<b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>下</b>的編程管理

    LINUX系統(tǒng)教程之如何在Linux系統(tǒng)進(jìn)行編程

    本文檔的主要內(nèi)容詳細(xì)介紹的是LINUX系統(tǒng)教程之如何在Linux系統(tǒng)進(jìn)行編程主要內(nèi)容包括了:程序開發(fā)過程 ,
    發(fā)表于 12-18 19:09 ?9次下載

    詳談Linux的find命令

    find 是 Linux 最有用的命令之一,熟練的使用它對于提高工作效率很有幫助。下面介紹它的一些用法
    的頭像 發(fā)表于 06-23 09:43 ?3002次閱讀
    <b class='flag-5'>詳談</b><b class='flag-5'>Linux</b>的find命令

    詳談Linux操作系統(tǒng)編程的互斥量mutex

    前文提到,系統(tǒng)中如果存在資源共享,線程間存在競爭,并且沒有合理的同步機(jī)制的話,會出現(xiàn)數(shù)據(jù)混亂的現(xiàn)象。為了實(shí)現(xiàn)同步機(jī)制,Linux中提供了多種方式,其中一種方式為互斥鎖mutex(也稱之為互斥量)。
    的頭像 發(fā)表于 09-28 15:09 ?2411次閱讀
    <b class='flag-5'>詳談</b><b class='flag-5'>Linux</b>操作<b class='flag-5'>系統(tǒng)</b>編程的互斥量mutex

    如何在Linux系統(tǒng)開啟wifi

    大家好,我是ST。今天主要和大家聊一聊如何在Linux系統(tǒng)開啟wifi。
    的頭像 發(fā)表于 10-08 09:21 ?4326次閱讀

    如何在Linux使用wc命令統(tǒng)計(jì)目錄文件

    盡管不是很經(jīng)常需要知道,但有時(shí)您需要找出指定目錄中有多少個(gè)文件。例如,Linux系統(tǒng)inodes用完,則需要查找哪個(gè)目錄包含成千上萬個(gè)文件。
    的頭像 發(fā)表于 12-09 16:48 ?1695次閱讀