情景l(fā)inux--如何解決服務(wù)器日志過多導(dǎo)致的磁盤空間不足代芜?

情景

有天看到有開發(fā)同事A在討論群里說埠褪,一測試環(huán)境中某服務(wù)打印了大量的日志,把磁盤打滿了挤庇。這位同事把日志清理了钞速,并請群里的相關(guān)人員看下是否需要重啟各自的服務(wù)。過一會兒嫡秕,同事B說其中一服務(wù)雖然重新啟動了渴语,但并未正常啟動,因?yàn)閱尤罩局幸廊伙@示著... No space left on device ...昆咽。

前有同事A說磁盤滿并把日志清了驾凶,后有同事說磁盤還是沒有剩余空間。這前后矛盾的現(xiàn)象掷酗,激起了我的興趣调违,于是我登錄到該測試環(huán)境服務(wù)器上一探究竟。

分析

BTW:

上述所說服務(wù)的路徑均在/opt目錄下泻轰,產(chǎn)生的文件也都在/opt目錄的相關(guān)子目錄下技肩。所以,下面示例中關(guān)注/opt路徑的磁盤空間即可浮声。

使用df命令查看:

df -lh
Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/cl-root             92G   12G   80G  13% /
devtmpfs                       7.8G     0  7.8G   0% /dev
tmpfs                          7.8G     0  7.8G   0% /dev/shm
tmpfs                          7.8G   75M  7.7G   1% /run
tmpfs                          7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/sda1                     1014M  138M  877M  14% /boot
/dev/mapper/vg_data2-lv_data2  200G  200G   20K 100% /opt

/opt目錄下使用du命令查看:

sudo du -h --max-depth=1
6.4M    ./blueset
9.7G    ./lanxin
16K ./mysqlback
86M ./logs
9.8G    .

由上可知:
du命令得到/opt目錄只占用了9.8G的空間虚婿,而df命令則顯示200G全部被占滿。為什么會這樣呢泳挥?du和df得到的磁盤占用的數(shù)值不應(yīng)該一致的么雳锋?

原理

經(jīng)過一番搜索,發(fā)現(xiàn)了dfdu的差別:

  1. 正常情況下羡洁,兩者的輸出其實(shí)也并不完全相同玷过,但只是稍有差異;

du命令得到的是將指定文件系統(tǒng)中所有的目錄筑煮、符號鏈接和文件使用的塊數(shù)累加辛蚊,即該文件系統(tǒng)使用的總塊數(shù);
df命令得到的是文件系統(tǒng)磁盤塊分配情況真仲,包括總塊數(shù)袋马、剩余塊數(shù)等。

文件系統(tǒng)分配其中的一些磁盤塊用來記錄它自身的一些數(shù)據(jù)秸应,如inode虑凛,磁盤分布圖碑宴,間接塊,超級塊等桑谍。這些數(shù)據(jù)對大多數(shù)用戶級的程序來說是不可見的延柠,通常稱為Meta Data(元數(shù)據(jù))
du命令是用戶級的程序锣披,它不考慮Meta Data贞间,而df命令則查看文件系統(tǒng)的磁盤分配圖并考慮Meta Data。

因此正常情況下雹仿,df計(jì)算的USED空間會比du計(jì)算的結(jié)果要稍大些增热。

  1. 特殊情況下,兩者輸出的結(jié)果差異很大胧辽;

上述碰到的問題就是這種特殊情況峻仇。

du是以文件名、目錄名等為依據(jù)計(jì)算空間使用的邑商,而df是以硬盤塊使用情況來計(jì)算空間使用的摄咆。

當(dāng)一個應(yīng)用程序正在寫一個大文件的時候,雖然我們可以對這個文件進(jìn)行刪除或挪走奠骄,但應(yīng)用程序依然占有著句柄,并根據(jù)句柄所指磁盤位置直接寫磁盤番刊,而不檢查該文件是否存在含鳞。

對應(yīng)到上面的場景中,服務(wù)在向日志文件中寫入時芹务,因?yàn)榇疟P空間不足蝉绷,所以把日志文件刪除了。但由于服務(wù)并沒有停止枣抱,所以它還占用著句柄熔吗,因而兩者得到的數(shù)據(jù)也不一樣。

解決方案

對于當(dāng)前存在的df和du結(jié)果不一致問題佳晶,可選的解決方案有:
1 重新掛載這個分區(qū)桅狠;
2 將未關(guān)閉的服務(wù)停掉,釋放句柄轿秧;

如果在一開始A同事發(fā)現(xiàn)磁盤空間不足時中跌,應(yīng)該怎么做?
應(yīng)清空日志文件的內(nèi)容(echo ' ' > server.log)菇篡,而不是直接刪除文件漩符。通過這種方法,磁盤空間可以立即釋放驱还,進(jìn)程可以繼續(xù)向文件寫入日志嗜暴,而不必重啟服務(wù)凸克。
如果日志文件內(nèi)容需要保留,可以先復(fù)制一份保存起來闷沥,再清空原文件萎战。

相關(guān)鏈接

http://itindex.net/detail/39369-linux-df-du
http://www.chinaunix.net/old_jh/6/465673.html
該帖中摘要了一篇來自2001年發(fā)布的網(wǎng)文片段,對du和df區(qū)別的介紹很詳細(xì)狐赡,推薦仔細(xì)閱讀撞鹉。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市颖侄,隨后出現(xiàn)的幾起案子鸟雏,更是在濱河造成了極大的恐慌,老刑警劉巖览祖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件孝鹊,死亡現(xiàn)場離奇詭異,居然都是意外死亡展蒂,警方通過查閱死者的電腦和手機(jī)又活,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锰悼,“玉大人柳骄,你說我怎么就攤上這事』悖” “怎么了耐薯?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長丝里。 經(jīng)常有香客問我曲初,道長,這世上最難降的妖魔是什么杯聚? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任臼婆,我火速辦了婚禮,結(jié)果婚禮上幌绍,老公的妹妹穿的比我還像新娘颁褂。我一直安慰自己,他們只是感情好傀广,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布痢虹。 她就那樣靜靜地躺著,像睡著了一般主儡。 火紅的嫁衣襯著肌膚如雪奖唯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天糜值,我揣著相機(jī)與錄音丰捷,去河邊找鬼坯墨。 笑死,一個胖子當(dāng)著我的面吹牛病往,可吹牛的內(nèi)容都是我干的捣染。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼停巷,長吁一口氣:“原來是場噩夢啊……” “哼耍攘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起畔勤,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蕾各,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后庆揪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體式曲,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年缸榛,在試婚紗的時候發(fā)現(xiàn)自己被綠了吝羞。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡内颗,死狀恐怖钧排,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情均澳,我是刑警寧澤恨溜,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站负懦,受9級特大地震影響筒捺,放射性物質(zhì)發(fā)生泄漏柏腻。R本人自食惡果不足惜纸厉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望五嫂。 院中可真熱鬧颗品,春花似錦、人聲如沸沃缘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽槐臀。三九已至锄蹂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間水慨,已是汗流浹背得糜。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工敬扛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人朝抖。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓啥箭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親治宣。 傳聞我的和親對象是個殘疾皇子急侥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容