排查linux服务器磁盘占用大的方法

日常生活中会出现服务器的磁盘爆满,服务器负载过大的情况,有一种情况就是因为磁盘容量不够导致的。

du : disk usage,是通过搜索文件来计算每个文件的大小然后累加;
     du搜索到的文件只是一些当前存在的,没有被删除的,他计算的大小就是当前他认为存在的所有文件大小的累加和
     
df,disk free,通过文件系统来快速获取空间大小的信息;
    当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了;
    当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件;
    
df 记录的是通过文件系统获取到的文件的大小,df 可以看到被删除还未释放的文件;
df 计算大小的时候,把被删除还未释放的空间也加上了,更精确;

当文件系统也确定删除了该文件后,这时候du与df就一致了
-a:显示全部目录和其次目录下的每个档案所占的磁盘空间
-s:只显示各档案大小的总合
-b:大小用bytes来表示
-x:跳过在不同文件系统上的目录不予统计
-a:递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数

-h是使输出结果更易于人类阅读;
du -s只展示目录的使用总量(不分别展示各个子目录情况);
-m是以MB为单位展示目录的大小(-k/-g就是KB/GB了)。

du -s    展示目录总量,且以k为单位
du -sh    展示目录总量,自动以可读性高的方式展示大小
du -sh /*  查看根目录下其他文件夹名称和大小
du -h  没有指定文件夹路径,则查询当前路径下的文件夹,以及文件夹下的文件夹大小
du -h --max-depth=1  查询当前路径下的一级文件夹大小
du -h --max-depth=1 | grep 'G'  查询当前路径下的一级文件夹,匹配'G'的文件夹 大小
a:显示全部的档案系统和各分割区的磁盘使用情形
i:显示i -nodes的使用量
k:大小用k来表示 (默认值)
t:显示某一个档案系统的所有分割区磁盘使用量
x:显示不是某一个档案系统的所有分割区磁盘使用量
T:显示每个分割区所属的档案系统名称

df -h    磁盘使用情况(文件系统的使用情况)
df -hT  查询磁盘占用空间


举例:
[root@ecs-8a1c-1109893 data]# df -h
文件系统            容量    已用     可用    已用%    挂载点
Filesystem      Size      Used     Avail     Use%     Mounted on

du和df的区别:

du查看目录大小,df查看磁盘使用情况。
1).查看某个目录的大小:du -hs /home/master/documents
查看目录下所有目录的大小并按大小降序排列:sudo du -sm /etc/* | sort -nr | less
2).查看磁盘使用情况(文件系统的使用情况):sudo df -h
df --block-size=GB
-h是使输出结果更易于人类阅读;du -s只展示目录的使用总量(不分别展示各个子目录情况),-m是以
MB为单位展示目录的大小(当然-k/-g就是KB/GB了)。

3,du使用详细案例
a:显示全部目录和其次目录下的每个档案所占的磁盘空间
s:只显示各档案大小的总合
b:大小用bytes来表示
x:跳过在不同文件系统上的目录不予统计
a:递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数

 

参考该文章

https://www.cnblogs.com/scl1314/p/7534894.html

posted @ 2022-04-29 11:21  不积硅步,无以至千里  阅读(470)  评论(0编辑  收藏  举报