云服务器 ECS Linux 磁盘空间满(含 innode 满)问题排查方法
问题描述
在云服务器 ECS Linux 系统内创建文件时,出现类似如下空间不足提示:
No space left on device …
问题原因
导致该问题的可能原因包括:
- 磁盘分区空间使用率达到百分之百。
- 磁盘分区 inode 使用率达到百分之百。
- 僵尸文件:已删除文件因句柄被占用未释放导致相应空间未释放。
处理办法
要解决该问题,建议通过如下方式处理:
分区容量满
登陆 SSH,使用 df -h 查看使用率,mounted on 指的是挂载的目录:
循环执行如下指令,看下哪个目录大,进入该目录:
cd /
du -sh *
直到找到最精确的的文件或目录,然后结合业务情况等判断对相关文件或目录进行删除。或者购买更大的数据盘来分担处理。
inode 容量满
登录 SSH,运行下面的命令分析根目录下每个目录下面有多少个文件:
for i in /*; do echo $i; find $i | wc -l; done
然后,逐层进入 inode 占用最高的目录,继续执行上述指令,逐步定位占用过高空间的文件或目录,最后进行相应清理。
修改 inode 数量
ECS Linux 的 inode节点中,记录了文件的类型、大小、权限、所有者、文件连接的数目、创建时间与更新时间等重要的信息,还有一个比较重要的内容就是指向数据块的指针。一般情况不需要特殊配置,如果存放文件很多,需要配置。有时磁盘空间有剩余但是不能存放文件,可能是由于 inode 耗尽所致。df -i 可以查询 inode 的使用情况:
可以参阅如下步骤调整 inode 节点数量:
注:inode 的调整需要重新格式化磁盘,请确保数据已经得到有效备份后再进行下述操作。
1、卸载系统文件。比如:
umount /home
2、重新建立文件系统,指定 inode 节点数:
mkfs.ext3 /dev/xvdb -N 1638400
3、修改 fstab 文件:
vim /etc/fstab
4、查看修改后的 inode 节点数:
dumpe2fs -h /dev/xvdb | grep node
僵尸文件分析删除
如果磁盘和 inode 都没有问题,则需要查看是否存在未被清除句柄的僵死文件。这些文件实际上已经被删除,但是有服务程序在使用这些文件,导致这些文件一直被占用,无法释放磁盘空间,使用如下命令可以查看死文件占用情况:
lsof |grep delete | more
如果这些文件过多,会占用很大的磁盘空间。可以通过如下方法来释放句柄,以清除僵尸文件:
- 重启服务器。
- 正常停止或杀掉占用这些文件的服务进程。
云服务器 ECS Linux 磁盘空间满(含 innode 满)问题排查方法的更多相关文章
- 云服务器 ECS Linux 系统 CPU 占用率较高问题排查思路
https://help.aliyun.com/knowledge_detail/41225.html?spm=5176.7841174.2.2.ifP9Sc 注意:本文相关配置及说明已在 CentO ...
- 云服务器 ECS Linux 系统盘数据转移方法
转自:https://help.aliyun.com/knowledge_detail/41400.html 问题描述 购买云服务器 ECS Linux 服务器时,未购买数据盘,使用一段时间后,随着业 ...
- 云服务器 ECS Linux 误删除文件恢复方法介绍
云服务器 ECS Linux 下,rm -rf 意味着一旦删除的文件是无法挽回的.但如果在没有文件覆盖操作的前提下,可以先尝试相关方式进行文件恢复. 本文对此进行简要说明. https://help ...
- 云服务器 ECS Linux 系统中常见的日志文件介绍
云服务器 ECS Linux 系统中,日志文件是非常重要的文件,它们记录了很多系统中重要的事.Linux 系统中常见日志文件概述如下: /var/log/cron可以在 cron 文件中检查 cron ...
- 云服务器 ECS Linux 系统添加“回收站”
删除是危险系数很高的操作,一旦误删可能会造成难以估计的损失.在云服务器 ECS Linux 系统中这种危险尤为明显.比如,一条简单的语句:rm –rf /* 就会把整个系统全部删除,而 Linux 并 ...
- 云服务器 ECS Linux 服务器修改时区的两种方式
在云服务器 ECS Linux 系统中,以 Centos6.5 为例,可以通过如下两种方式,修改系统时区: 可以使用命令 tzselect,修改时区.操作示例: [root@localhost ~]# ...
- 云服务器 ECS Linux 修改编码格式
https://help.aliyun.com/knowledge_detail/41424.html?spm=5176.7841174.2.19.Le8kvy 通常情况下,云服务器 ECS Linu ...
- 云服务器 ECS Linux 系统安装图形化桌面 (centos7 ubuntu14)
基于性能及通用性等因素,默认情况下,阿里云官方公共 Linux 系统镜像不会安装图形化桌面组件.本文简述了常用操作系统图形化桌面安装说明,您可以根据需求进行配置系统. 注意:图形化桌面可能会 显著降低 ...
- 云服务器 ECS Linux Ubuntu 主机修改主机名
云服务器 ECS Linux 主机修改主机名 修改云服务器 ECS Linux 主机名常见的有两种方式,本文对此进行概要说明. 临时生效修改 使用命令行修改 hostname 主机名(可自定义),重新 ...
随机推荐
- servicestack操作redis
tatic void Main(string[] args) { );//redis服务IP和端口 #region =insert= var storeMembers = new List<st ...
- chrome 浏览器 开发者工具 性能检测 参数解释
Sending is time spent uploading the data/request to the server. It occurs between blocking and waiti ...
- Failed to read artifact descriptor--maven问题总结(能力工场)
在开发的过程中,作为新手,经常遇到Maven下载依赖的时候,"Failed to read artifact descriptor for xxx:jar"的错误 对于这种非业务相 ...
- INTEL XDK 真机调试
需要安装 1.google服务框架 2.google play 3.app preview
- LINQ标准查询操作符(三)——Aggregate、Average、Distinct、Except、Intersect、Union、Empty、DefaultIfEmpty、Range、Repeat
七.聚合操作符 聚合函数将在序列上执行特定的计算,并返回单个值,如计算给定序列平均值.最大值等.共有7种LINQ聚合查询操作符:Aggregate.Average.Count.LongCount.Ma ...
- 转】MyEclipse使用总结——使用MyEclipse打包带源码的jar包
原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4136303.html 感谢! 平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不 ...
- LC串联谐振回路
- mv命令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目 ...
- Python基础 条件、循环
1.条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. if if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的 ...
- POJ3630Phone List(字典树)
经典的字典树的题目了,这次完全是按照自己的风格来写的,没有参考其他人的代码风格来写. 分析:如果采用常规的暴力枚举,那么复杂度就是O(n*n*str.length) = O(10^9),这明显是会超时 ...