No Space Left on Device 磁盘空间不足
1.1.1磁盘空间不足可能三种情况
a)inode满了
b)block满了
c)block(文件没有彻底删除)
1.BLOCK不足
1)原因
a)磁盘block用光
2)排查流程
命令df -h,查看磁盘整体情况
命令du -sh,一层一层查找,排查到具体的文件或目录
确认之后再进行删除
命令du,查看目录占用的空间
参数-s,使du命令显示总共有多大,如果不加-s参数,显示目录下所有目录
参数-h,使du命令以人类可读形式显示大小
命令sort,将文件进行排序
参数-r,逆序,倒序
参数-n,按照数字顺序排序
参数-h,一般多与du -sh连用,数字+单位,按大小排序
参数-k,指定列,后加数字,k1,第一列
2.INODE不足
1)原因
a)磁盘inode用光了
2)排查流程
a)df -h 没有满,df -i 整体哪里满了
b)找出系统中目录大于1MB的
c)确认之后删除下面的小文件
命令ll -hd,查看目录的block的大小,目录block里面存放的是文件
3.BLOCK不足(文件没有被彻底删除)
1)原因
a)Linux彻底删除一个文件的条件
i.没有入口(rm删除 硬链接为0)
ii.没有人使用这个文件 (进程调用数为0)
1.命令lsof 显示系统中所有被打开的文件,被谁占用(使用)
(默认不安装,需要安装)
2)排查过程
a)df -h 满了, du -sh 没有满
b)命令lsof |grep delete过滤
c)重启对应服务
4.linux下删除大量小文件
a)linux下命令不支持文件名字过多
b)可以使用find + |xargs 进行删除处理
1.2java故障案例
1.原因
a)Java大量占用内存,占用swap
2.排查
a)增加swap容量
i.创建指定大小文件 500m
1.命令dd if=/dev/zero of=/tmp/500m bs=5M count=100
ii.swap格式化
1.命令mkswap /tmp/500m
iii.激活(挂载)
1.swapon /tmp/500m
a)命令会有提示swapon: /tmp/500m: insecure permissions 0644, 0600 suggested.
b)提示权限最好是600
c)命令chmod 600 /tmp/500m
iv.永久挂载
1.写入/etc/rc.loacl(Centos 7推荐)
2.写入/etc/fstab(Centos 7中通过dd命令,增加swap分区无法使用,其他系统正常使用)
1.3文件系统
1.3.1文件系统
1.文件系统:文件在磁盘中如何存放 存放的规则
- 默认文件系统
a)Centos 7 默认文件系统 xfs
b)Centos 6 默认文件系统 ext4
c)Centos 5 默认文件系统 ext3
d)swap 交换分区
e)tmpfs 内存文件系统 存放数据是存放在内存中
f)SUSE 文件系统 reiserFS
3.应用场景
a)reiserfs大量小文件业务首选reiserfs(100K以内), 单独安装。
b)xfs有的门户的数据库MySQL业务会选择xfs。
c)ext4 视频下载,流媒体,数据库,小文件业务也OK,可以用默认的。
d)ext2 没有日志,蓝汛、网宿的cache业务,CDN 网站加速服务的。
e)swap 交换分区 内存不足临时充当内存
f)tmpfs 用于加速或存放缓存
网友评论