linux运维之磁盘利用率100%教你做人

在这里插入图片描述

磁盘空间满的情况都有哪些???

第一种情况: 是磁盘空间block剩余量不够了(df -h)

第二种情况: 是磁盘空间inode剩余量不够了(df -i)

显示磁盘空间不足(no space left on device)
block空间满了 ,存储的数量过大
inode空间满了 ,产生了大量小文件

一、索引节点信息—inode与blockde

inode与blockde的区别:

1、inode与blockde干什么用?

inode:(index node)索引节点信息   用于存储数据的---文件或目录的一些属性 (文件的权限 所属用户 所属组)
block:             块           用于存储数据的---文件的真实数据信息

2、inode与blockde他们是如何出现的?

只有在磁盘做好格式化之后,产生了文件系统,才会有inode和block(收纳袋)
创建一个文件至少占用占用一个inode和一个block

3、inode与blockde如何查询到相应信息

inode信息查看方法:
[root@VM-0-3-centos ~]# df -i
Filesystem      Inodes IUsed   IFree IUse% Mounted on
devtmpfs        232347   329  232018    1% /dev
tmpfs           235251     7  235244    1% /dev/shm
tmpfs           235251   422  234829    1% /run
tmpfs           235251    16  235235    1% /sys/fs/cgroup
/dev/vda1      3276800 81268 3195532    3% /
tmpfs           235251     1  235250    1% /run/user/0
block信息查看方法:
[root@VM-0-3-centos ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        908M     0  908M   0% /dev
tmpfs           919M   24K  919M   1% /dev/shm
tmpfs           919M  476K  919M   1% /run
tmpfs           919M     0  919M   0% /sys/fs/cgroup
/dev/vda1        50G  3.5G   44G   8% /
tmpfs           184M     0  184M   0% /run/user/0

4、为什么df -h 和df -i都是显示磁盘使用情况,而两者有这么大的区别呢?

df -h   是去删除比较大无用的文件   --- 大文件占用大量的磁盘容量。
df -i   则去删除数量过多的小文件   --- 过多的文件占用了大量的inode号。
PS:如果df查看磁盘空间任何一个满了,都需要删除文件内的文件,清理空间

二、磁盘空间block剩余量不够了(df -h)

通过df- h命令查看磁盘容量,发现/dev/vda1的容量比较大

[root@VM-0-3-centos /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        908M     0  908M   0% /dev
tmpfs           919M   24K  919M   1% /dev/shm
tmpfs           919M  468K  919M   1% /run
tmpfs           919M     0  919M   0% /sys/fs/cgroup
/dev/vda1        50G  3.5G   44G   8% /
tmpfs           184M     0  184M   0% /run/user/0

进入/(根)目录下,利用du -sh *查看/(根)目录下所有目录的容量大小

[root@VM-0-3-centos ~]# cd /
[root@VM-0-3-centos /]# du -sh *
0       bin
123M    boot
4.0K    data
0       dev
37M     etc
4.0K    home
0       lib
0       lib64
16K     lost+found
4.0K    media
4.0K    mnt
127M    opt
0       proc
72K     root
476K    run
0       sbin
4.0K    srv
0       sys
19M     tmp
2.7G    usr
408M    var

发现usr目录占用容量较大,进入usr目录内继续du -sh *排查

[root@VM-0-3-centos /]# cd /usr
[root@VM-0-3-centos usr]# du -sh *
277M    bin
4.0K    etc
8.0K    ftp
4.0K    games
33M     include
774M    lib
345M    lib64
98M     libexec
504M    local
79M     mpi
55M     sbin
394M    share
184M    src
0       tmp

继续进入占用容量较大的目录src下查看容量

[root@VM-0-3-centos usr]# cd src
[root@VM-0-3-centos src]# du -sh *
8.8M    debug
77M     kernels
8.0K    mlnx-ofa_kernel
4.0K    mulu
62M     ofa_kernel
37M     ofa_kernel-5.1
4.0K    wenjian

PS:此操作是模拟目录或文件已经很大需要清理的情况下
此时已经可以排查到是哪些文件占用较大的内存,我们以我自己模拟创建的mulu(目录)和wenjian(文件)作为测试对象.
1.清理/usr/src/mulu目录下的文件。

[root@VM-0-3-centos src]# rm -r /usr/src/mulu/*
rm: remove directory ‘/usr/src/mulu/fu’? y

2.清理/usr/src/wenjian的src目录下wenjian文件
利用重定向的命令清空文件内的内容(还有其他方式清空文件内的内容就不一一演示)

[root@VM-0-3-centos src]# echo " " >> /usr/src/wenjian

三、磁盘空间inode剩余量不够了(df -ih)

加上h是因为它可以直接输出人们可以直接看出容量的单位

通过df -ih 查看了下inode,发现根目录下的inode值使用率为100%了

[root@VM-0-3-centos ~]# df -ih
Filesystem     Inodes IUsed IFree IUse% Mounted on
devtmpfs         227K   329  227K    1% /dev
tmpfs            230K     7  230K    1% /dev/shm
tmpfs            230K   420  230K    1% /run
tmpfs            230K    16  230K    1% /sys/fs/cgroup
/dev/vda1        3.2M   3.2M  0      100% /
tmpfs            230K     1  230K    1% /run/user/0

解决方法:通过下列命令查看较大的目录

[root@VM-0-3-centos ~]# find / -xdev -printf '%hn' | sort | uniq -c | sort -k 1 -n

发现哪个目录内小文件较多,进入到小文件较多的目录中,进行删除小文件;如下命令:cd到/xx/xx/xx目录下进行目录下文件筛选后删除

[root@VM-0-3-centos ~]# cd /xx/xx/xx && find -type f |xargs rm -f

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>