磁盤空間空間不足的緣由及表現與解決辦法


磁盤空間不足最典型的表現就是:   No space left on devicenode


建立測試環境
dd if=/dev/zero  of=/tmp/sdc  bs=1k count=75
mkfs.ext4  /tmp/sdc       (不必定都是ext4硬盤,注意)    
mkdir -p /app/logs
mount  -o loop /tmp/sdc   /app/logs 
運行以上命令後,檢查硬盤狀況:
[root@chenleilei ~]# df -i /app/logs/ 
Filesystem Inodes IUsed IFree IUse% Mounted on 
/tmp/sdc      16         10         6     63%      /app/logs 

[root@chenleilei ~]# df -h /app/logs/ 
Filesystem Size Used Avail Use% Mounted on 
/tmp/sdc     65K  2.0K 60K    4%     /app/logs 


模擬inode耗盡

touch /app/logs/{1..20}.txt  (不管文件多少都必需要佔用一個inode和block)
linux


[root@chenleilei ~]# df -happ

Filesystem       Size      Used     Avail    Use%      Mounted onide

/dev/sda3       18G       1.5G      16G       9%            /  oop

tmpfs            491M            0     491M      0%         /dev/shm測試

/dev/sda1     190M       35M     146M     19%         /bootspa

/tmp/sdc         65K       3.0K       59K       5%         /app/logs日誌

......................................................................................略orm

能夠看到餘下容量59k  而後爲了驗證 inode不足也沒法建立文件的真理blog

咱們嘗試建立一個文件:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

(有時候出現一個問題 在出現這個報錯的時候仍舊能建立文件,而不能建立文件夾

我想不明白,最後我想到一個 有多是 目錄佔用的block爲4K的緣由吧?? 是否是我也不知道)


以上就是inode耗盡的問題出現.解決辦法就是:  刪除裏面多餘的小文件,在linux系統中

不管文件大小都至少會佔用一個block. 刪除小文件後會大大釋放inode數量. 



block耗盡實驗
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=


查看磁盤剩餘容量:

[root@chenleilei logs]# df -h

Filesystem   Size    Used     Avail     Use%   Mounted on

/dev/sda3   18G     1.5G     16G        9%        /

tmpfs        491M       0        491M      0%     /dev/shm

/dev/sda1 190M     35M    146M       19%    /boot

/tmp/sdc    65K       65K       0         100%    /app/logs



查看剩餘的inode數量:

[root@chenleilei logs]# df -i

Filesystem      Inodes        IUsed     IFree        IUse%     Mounted on

/dev/sda3       1201872     55746     1146126      5%       /

tmpfs             125514               1     125513         1%       /dev/shm

/dev/sda1       51200              38       51162         1%       /boot

/tmp/sdc                16              16             0      100%       /app/logs


inode滿了解決辦法:   inode滿了多數因爲小文件過多致使,經過find來查找小文件便可,另外日誌文件

是inode滿了的 罪魁禍首,因此通常要多留意 log目錄 使用find 命令來查找小文件並刪除.




磁盤一滿了就會報錯 

[root@chenleilei logs]# cp /usr/share/autoconf/m4sugar/m4sh.m4 /app/logs/

cp: writing `/app/logs/m4sh.m4': No space left on device


解決辦法: 清除大文件 便可

查找大文件: ------這個命令是把大文件列出來 讓咱們能一眼看出大文件是哪些,從而採起措施刪除.

[root@chenleilei app]# du -h /app/logs/* | sort -h      

9.0K     /app/logs/m4sh.m4

55K      /app/logs/m4sh.m4f

相關文章
相關標籤/搜索