近一段时间,某台服务器的磁盘空间使用不太正常,与其他的服务器相比,严重超出磁盘空间使用

使用df与du相关命令查看,具体结果如下:

du -h
Filesystem       Size  Used Avail Use% Mounted on
/dev/vda1         50G   42G  5.5G  89% /
devtmpfs         1.9G     0  1.9G   0% /dev
tmpfs            1.9G   48K  1.9G   1% /dev/shm
tmpfs            1.9G  613M  1.3G  33% /run
tmpfs            1.9G     0  1.9G   0% /sys/fs/cgroup
tmpfs            380M     0  380M   0% /run/user/1003
tmpfs            380M     0  380M   0% /run/user/0

du --max-depth=1 -h
0       ./proc
0       ./sys
12K     ./opt
34M     ./etc
16K     ./lost+found
611M    ./run
4.0K    ./media
1.9G    ./data
4.0K    ./mnt
532M    ./var
5.7G    ./usr
200K    ./home
4.0K    ./srv
792K    ./tmp
16M     ./root
0       ./dev
216M    ./boot
8.9G    .

把比较大的日志文件删除或者清空后仍不见好转

后来,在网上查找相关原因,得到的结论如下:

在Linux中,当我们使用rm在linux上删除了大文件,但是如果有进程打开了这个大文件,却没有关闭这个文件的句柄,那么linux内核还是不会释放这个文件的磁盘空间,最后造成磁盘空间占用100%,整个系统无法正常运行。这种情况下,通过df和du命令查找的磁盘空间,两者是无法匹配的,可能df显示磁盘100%,而du查找目录的磁盘容量占用却很小。

于是使用如下命令:lsof -n | grep deleted ,找出那些文件已经被删除,但是还有进程在访问这些文件的进程,经过查询可知,是mysql的锅,果断重启mysql服务。

重启mysql的过程心惊胆战的,总担心起不来,因为之前遇到过mysql服务重启起不来的情况,不过幸好,服务重启竟然起来了。

然后就是服务器卡的要死,通过使用top命令查看,发现磁盘负载很高,细心观察,负载在逐渐下降,这个就应该是重启mysql服务后,服务器在真实的删除这个早就删除的文件吧。

等磁盘负载下降到正常水平,再通过上述命令查看,磁盘使用情况总算正常了,特留此文章已被纪念缅怀。。。

df与du查看磁盘空间使用不一致的解决方法的更多相关文章

  1. 为什么Linux 实例执行 df 和 du 查看磁盘时结果不一致

    问题现象 执行 df -h 查看 ECS Linux 实例文件系统使用率,可以看到 /dev/xvdb1 磁盘占用了约27G,挂载目录为 /opt . 进入到 /opt 目录执行 du -sh ,显示 ...

  2. 使用df -h命令查看磁盘空间使用率不算高,还有很多空余空间,但是创建文件或写入数据时一直报错磁盘写满

    关于磁盘空间中索引节点爆满的问题还是挺多的,借此跟大家分享一下: 一.发现问题 在公司一台配置较低的Linux服务器(内存.硬盘比较小)的/data分区内创建文件时,系统提示磁盘空间不足,用df -h ...

  3. linux中df和du查看磁盘大小不一致解决方法

    挂了一块50G到/data目录下#  df -h Filesystem Size Used Avail Use% Mounted on /dev/xvdb1 50G 46G 1.2G 98% /dat ...

  4. 向磁盘写入数据提示:No spac left on device通过df -h查看磁盘空间,发现没满,解决方法

    初步判断应该有两种情况:一种是block满了,另一种情况就是inode耗尽了. 首先df -i 查看一下是否耗尽inode/block数量. 虚拟一块磁盘并格式化: dd if=/dev/zero o ...

  5. 41、解决du与df统计不一致的解决方法

    41.1.案例说明: 通过df -hT和du -sh /.du -h --max-depth=1 /命令 发现磁盘的使用不量不一致,使用'df -hT'命令查看磁盘的使用量要 比使用'du -sh / ...

  6. Linux 查看磁盘空间大小

    (1)查看文件大小 1. 查看当前文件夹下所有文件大小(包括子文件夹)    du -sh   2.查看var目录下文件大小   du -sh var   3.查看指定文件夹下所有文件大小(包括子文件 ...

  7. linux命令----查看磁盘空间

    今天用“web发布平台”发布测试的服务,两个节点中发现有一个节点没有发布成功,压测TPS始终上不去,排查后发现只有一个节点在打日志,另一个节点的服务进程都没有在运行,由此断定应该是没有发布成功,有点坑 ...

  8. linux -- 查看磁盘空间的大小

    Ubuntu 查看磁盘空间大小命令 df -h Df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息, 命令格式: df -hl  显示格式为:  文件系统 容量 已 ...

  9. Linux查看磁盘空间大小命令

    Linux查看磁盘空间大小命令df -hldf -hl 查看磁盘剩余空间df -h 查看每个根路径的分区大小du -sh [目录名] 返回该目录的大小du -sm [文件夹] 返回该文件夹总M数du ...

随机推荐

  1. 使用canvas保存网页为pdf文件支持跨域

    前言 之前上一篇随笔说了Canvas截图网页为图片,下来个新需求,把网页截图后保存为PDF文件供用户下载. 前文 Canvas截图网页为图片:https://www.cnblogs.com/bubub ...

  2. jq实现瀑布流

    静态html代码: <!DOCTYPE html><html> <head> <meta charset="utf-8"> < ...

  3. [bzoj 2726] 任务安排 (斜率优化 线性dp)

    3月14日第三题!!!(虽然是15号发的qwq) Description 机器上有N个需要处理的任务,它们构成了一个序列.这些任务被标号为1到N,因此序列的排列为1,2,3-N.这N个任务被分成若干批 ...

  4. docker 下载镜像 ( 以 mysql为例 )

    一.官方镜像仓库 https://hub.docker.com/explore/ 二.常用操作 三.使用命令查看 mysql [root@localhost fw]# docker search my ...

  5. Java开源框架 iBase4J 搭建笔记

    项目地址:https://gitee.com/iBase4J/iBase4J 搭建步骤:     1.git 代码     2.安装 Zookeeper     3.打包部署 Dubbo Admin ...

  6. snmp--CentOS安装Net-SNMP小计

    http://blog.csdn.net/tmpbook/article/details/39620549

  7. [SharePoint][SharePoint Designer 入门经典]Chapter13 客户端Silverlight编程

    1.使用Silverlight,CAML和Linq取得数据 2.编程性创建更新删除列表数据项 3.修饰列表和库的配置 4.管理文件和文件夹 5.修改快速启动和顶部导航条 [使用Silverlight, ...

  8. Inside ARC — to see the code inserted by the compiler

    前言 这是我在我们技术团队所做的一次分享,稍作改动放到博客上来. 我们技术团队会不定期(一般一个月1~2次)做技术分享,对我们团队有兴趣的能够私信我. 下面是正文. 这里的主题是"Insid ...

  9. query.setFirstResult解析

    转自:https://blog.csdn.net/thinkingcao/article/details/78053622

  10. Redis学习笔记(八) 基本命令:SortedSet操作

    原文链接:http://doc.redisfans.com/sorted_set/index.html SortedSet的数据结构类似于Set,不同的是Sorted中的每个成员都分配了一个值(Sco ...