前續(xù)文章:
情景l(fā)inux--如何解決單日志文件過大導(dǎo)致的磁盤空間不足嗤朴?
情景l(fā)inux--如何解決單日志文件過大導(dǎo)致的磁盤空間不足窄锅?(實踐篇)
情景l(fā)inux--如何快速生成大文件?
情景l(fā)inux--磁盤空間不足的另一種情況
從文章情景l(fā)inux--磁盤空間不足的另一種情況中可知:
磁盤空間不足至少有三種情況:
磁盤block區(qū)用盡了铸磅;
磁盤inode區(qū)用盡了刁赦;
磁盤block區(qū)用盡后隔缀,刪除文件但文件句柄未釋放幔妨;
而情況3其實是情況1的特殊情況鹦赎。
大多數(shù)情況下,磁盤空間不足應(yīng)是情況1误堡。特殊情況下古话,會遇到情況3,這也是文章情景l(fā)inux--如何解決單日志文件過大導(dǎo)致的磁盤空間不足锁施?中提到的場景陪踩。情況2我們在文章情景l(fā)inux--磁盤空間不足的另一種情況中也做了理論介紹杖们,本文則針對情況2進(jìn)行實踐。
在開始之前我們先使用命令查看磁盤情況(注意觀察-i
參數(shù)的統(tǒng)計列)肩狂。
$ df -ihl
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/VolGroup-lv_root 431K 54K 377K 13% /
tmpfs 235K 1 235K 1% /dev/shm
/dev/sda1 126K 39 125K 1% /boot
$ df -hl
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 6.7G 2.0G 4.4G 31% /
tmpfs 939M 0 939M 0% /dev/shm
/dev/sda1 485M 39M 421M 9% /boot
為了使得block區(qū)磁盤空間充足摘完,而inode區(qū)空間不足,可以直接生成大量的空文件傻谁。新開一個終端窗口執(zhí)行如下命令:
$ for i in `seq 1 1000000`;do touch $i.txt;done
在產(chǎn)生大量空文件的過程中描焰,可以不斷用df -ihl
命令了解inode區(qū)的占用情況:
find ./ | wc -l
268738
$ df -ihl
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/VolGroup-lv_root 431K 351K 80K 82% /
tmpfs 235K 1 235K 1% /dev/shm
/dev/sda1 126K 39 125K 1% /boot
$ df -hl
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 6.7G 2.0G 4.4G 31% /
tmpfs 939M 0 939M 0% /dev/shm
/dev/sda1 485M 39M 421M 9% /boot
即,產(chǎn)生了26w多個文件時栅螟,磁盤的inode區(qū)已經(jīng)用掉了82%的空間,因而循環(huán)創(chuàng)建空文件的命令很快就會是inode區(qū)空間耗盡篱竭。
當(dāng)創(chuàng)建了30多萬個文件后力图,循環(huán)開始報錯:
touch: cannot touch `386787.txt': No space left on device
touch: cannot touch `386788.txt': No space left on device
touch: cannot touch `386789.txt': No space left on device
...(省略)...
$ df -ihl
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/VolGroup-lv_root 431K 431K 0 100% /
tmpfs 235K 1 235K 1% /dev/shm
/dev/sda1 126K 39 125K 1% /boot
$ df -hl
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 6.7G 2.0G 4.4G 31% /
tmpfs 939M 0 939M 0% /dev/shm
/dev/sda1 485M 39M 421M 9% /boot
總結(jié)
學(xué)習(xí)了磁盤相關(guān)的知識和這幾篇文章的內(nèi)容后,當(dāng)遇到linux系統(tǒng)磁盤空間不足時掺逼,應(yīng)區(qū)分是哪種情景:
- 使用
df -hl
命令查看磁盤block區(qū)使用情況吃媒,并結(jié)合du
命令進(jìn)一步確認(rèn)是哪些文件占用空間比較大,或者是刪除了文件但空間沒有釋放吕喘; - 使用
df -ihl
命令查看磁盤inode區(qū)使用情況赘那;
相關(guān)文章
情景l(fā)inux--如何解決單日志文件過大導(dǎo)致的磁盤空間不足?
情景l(fā)inux--如何解決單日志文件過大導(dǎo)致的磁盤空間不足氯质?(實踐篇)
情景l(fā)inux--如何快速生成大文件募舟?
情景l(fā)inux--磁盤空間不足的另一種情況