问题描述


在云服务器 ECS Linux 系统内创建文件时,出现类似如下空间不足提示:

  1. No space left on device …

问题原因


导致该问题的可能原因包括:

  • 磁盘分区空间使用率达到百分之百。
  • 磁盘分区 inode 使用率达到百分之百。
  • 僵尸文件:已删除文件因句柄被占用未释放导致相应空间未释放。

处理办法


要解决该问题,建议通过如下方式处理:


分区容量满

登陆 SSH,使用 df -h 查看使用率,mounted on 指的是挂载的目录:

循环执行如下指令,看下哪个目录大,进入该目录:

  1. cd /
  2. du -sh *

直到找到最精确的的文件或目录,然后结合业务情况等判断对相关文件或目录进行删除。或者购买更大的数据盘来分担处理。

inode 容量满

登录 SSH,运行下面的命令分析根目录下每个目录下面有多少个文件:

  1. for i in /*; do echo $i; find $i | wc -l; done

然后,逐层进入 inode 占用最高的目录,继续执行上述指令,逐步定位占用过高空间的文件或目录,最后进行相应清理。


修改 inode 数量

ECS Linux 的 inode节点中,记录了文件的类型、大小、权限、所有者、文件连接的数目、创建时间与更新时间等重要的信息,还有一个比较重要的内容就是指向数据块的指针。一般情况不需要特殊配置,如果存放文件很多,需要配置。有时磁盘空间有剩余但是不能存放文件,可能是由于 inode 耗尽所致。df  -i  可以查询 inode 的使用情况:

可以参阅如下步骤调整 inode 节点数量:

注:inode 的调整需要重新格式化磁盘,请确保数据已经得到有效备份后再进行下述操作。

1、卸载系统文件。比如:

  1. umount /home

2、重新建立文件系统,指定 inode 节点数:

  1. mkfs.ext3 /dev/xvdb -N 1638400

3、修改 fstab 文件:

  1. vim /etc/fstab

4、查看修改后的 inode 节点数:

  1. dumpe2fs -h /dev/xvdb | grep node

僵尸文件分析删除

如果磁盘和 inode 都没有问题,则需要查看是否存在未被清除句柄的僵死文件。这些文件实际上已经被删除,但是有服务程序在使用这些文件,导致这些文件一直被占用,无法释放磁盘空间,使用如下命令可以查看死文件占用情况:

  1. lsof |grep delete | more

如果这些文件过多,会占用很大的磁盘空间。可以通过如下方法来释放句柄,以清除僵尸文件:

  • 重启服务器。
  • 正常停止或杀掉占用这些文件的服务进程。

云服务器 ECS Linux 磁盘空间满(含 innode 满)问题排查方法的更多相关文章

  1. 云服务器 ECS Linux 系统 CPU 占用率较高问题排查思路

    https://help.aliyun.com/knowledge_detail/41225.html?spm=5176.7841174.2.2.ifP9Sc 注意:本文相关配置及说明已在 CentO ...

  2. 云服务器 ECS Linux 系统盘数据转移方法

    转自:https://help.aliyun.com/knowledge_detail/41400.html 问题描述 购买云服务器 ECS Linux 服务器时,未购买数据盘,使用一段时间后,随着业 ...

  3. 云服务器 ECS Linux 误删除文件恢复方法介绍

    云服务器 ECS Linux 下,rm -rf  意味着一旦删除的文件是无法挽回的.但如果在没有文件覆盖操作的前提下,可以先尝试相关方式进行文件恢复. 本文对此进行简要说明. https://help ...

  4. 云服务器 ECS Linux 系统中常见的日志文件介绍

    云服务器 ECS Linux 系统中,日志文件是非常重要的文件,它们记录了很多系统中重要的事.Linux 系统中常见日志文件概述如下: /var/log/cron可以在 cron 文件中检查 cron ...

  5. 云服务器 ECS Linux 系统添加“回收站”

    删除是危险系数很高的操作,一旦误删可能会造成难以估计的损失.在云服务器 ECS Linux 系统中这种危险尤为明显.比如,一条简单的语句:rm –rf /* 就会把整个系统全部删除,而 Linux 并 ...

  6. 云服务器 ECS Linux 服务器修改时区的两种方式

    在云服务器 ECS Linux 系统中,以 Centos6.5 为例,可以通过如下两种方式,修改系统时区: 可以使用命令 tzselect,修改时区.操作示例: [root@localhost ~]# ...

  7. 云服务器 ECS Linux 修改编码格式

    https://help.aliyun.com/knowledge_detail/41424.html?spm=5176.7841174.2.19.Le8kvy 通常情况下,云服务器 ECS Linu ...

  8. 云服务器 ECS Linux 系统安装图形化桌面 (centos7 ubuntu14)

    基于性能及通用性等因素,默认情况下,阿里云官方公共 Linux 系统镜像不会安装图形化桌面组件.本文简述了常用操作系统图形化桌面安装说明,您可以根据需求进行配置系统. 注意:图形化桌面可能会 显著降低 ...

  9. 云服务器 ECS Linux Ubuntu 主机修改主机名

    云服务器 ECS Linux 主机修改主机名 修改云服务器 ECS Linux 主机名常见的有两种方式,本文对此进行概要说明. 临时生效修改 使用命令行修改 hostname 主机名(可自定义),重新 ...

随机推荐

  1. 在Ubuntu下ADT识别不出真机的解决办法

    前两天把系统换成Ubuntu 12.04,今天在写代码的时候准备真机调试,结果ADT识别不出真机,我擦.果断网上查找了一下解决办法,经过半个小时左右的折腾,尼玛,终于搞定了.具体解决办法如下: 1.先 ...

  2. Embedded之memory test

    1 main.c #include "led.h" #define BASE_ADDRESS (volatile datum *) 0x10000000 #define NUM_B ...

  3. iOS tableview 优化总结

    根据网络上的优化方法进行了总括.并未仔细进行语言组织.正在这些优化方法进行学习,见另一篇文章 提高app流畅度 1.cell子控件创建写在 initWithStyle:reuseIdentifier ...

  4. 在IIS 中如何配置URL Rewrite,并且利用出站规则保持被重写的Cookie的域

    Url Rewrite配置 xx.aa.com/bb/test1.aspx 会重写到 bb.aa.com/test1.aspx 具体怎么配置入站 出站规则 结果:

  5. 求n个数中的最大或最小k个数

    //求n个数中的最小k个数        public static void TestMin(int k, int n)        {            Random rd = new Ra ...

  6. mysql基础知识(4)--修改

    修改表: 一般概述 通常,创建一个表,能搞定(做到)的事情,修改表也能做到.大体来说,就可以做到: 增删改字段: 增:alter  table  表名  add  [column]  字段名  字段类 ...

  7. SharePoint咨询师之路:设计之前的那些事一:容量

    提示:本系列只是一个学习笔记系列,大部分内容都可以从微软官方网站找到,本人只是按照自己的学习路径来学习和呈现这些知识. 咨询师更多的时候是解决方案提供者,那么他们如何能够提供有效的SharePoint ...

  8. Linux下用arptables防arp攻击

    Linux下网络层防火墙iptables很强大,链路层也有类似的防火墙arptables,可针对arp地址进行限制,防止ARP网关欺骗攻击,再配合静态绑定MAC和向网关报告正确的本机MAC地址,有效解 ...

  9. hdoj 1404 Digital Deletions(博弈论)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1404 一看就是博弈论的题目,但并没有什么思路,看了题解,才明白 就是求六位数的SG函数,暴力一遍,打表 ...

  10. easyui 表单和自定义验证扩展和js自定义返回值

    ================jsp==========================<form  method="post" id="regfrminp&qu ...