ITPub博客

首页 > 数据库 > MySQL > 磁盘空间使用率100%的故障处理

磁盘空间使用率100%的故障处理

原创 MySQL 作者:七_仔 时间:2015-12-02 10:14:29 0 删除 编辑

 

磁盘空间使用率100%的故障处理过程

环境介绍

1.云服务器

2.操作系统 CentOS 5.6 

3.内存8G

 

磁盘与挂载路径的介绍:

mounted on                   size

/                            20G

/usr/local/mysqlslavedb         200G

/usr/local/mysqlslavedb/mysql   100G

/dev/shm                     2G

 

 

事故发生情景

监控软件磁盘使用率100%告警,老大 RTX 通知要进行空间释放解除报警。

 

分析过程:

1.df -h 

[ root@iZ25lJlnb57z local ]# df -h

filesystem           Size     Used    Avail   Use%    Mount on

/dev/xvda1          20G      2.2G     17G   12%    /

tmpfs              1.9G      0        1.9G    0%    /dev/shm

/dev/xvdc1          197G    197G     0      100%   /usr/local/mysqlslavedb

/dev/xvdb1          99G      29G     66G     31%    /usr/local/mysqlslavedb/mysql

 

/usr/local/mysqlslavedb

注释:此路径存放一些MySQL的逻辑备份和计划任务跑的脚本 库的输出 实时查询的主从状态文件。

/usr/local/mysqlslavedb/mysql

注释:这个是存放的MySQL数据库的相关文件

 

2.进入到指定目录下查看文件总共占用空间的大小

[ root@iZ25lJlnb57z mysqlslavedb ]# cd /usr/local/mysqlslavedb

[ root@iZ25lJlnb57z mysqlslavedb ]#pwd

/usr/local/mysqlslavedb

[ root@iZ25lJlnb57z mysqlslavedb ]#du -sh 

32G

 

3.根据以上的 12 分析得出磁盘不是真正的文件占用满的。

4.产看磁盘是否掉了。

fdisk -l 

显示完整的三块磁盘 (因为是内网环境,所以没有办法贴出结果)

忽然想起来,此服务器是在云服务器上面。

 

5.寻找云服务器管理人员,查看磁盘状态。

显示:磁盘状态全部正常

 

6.想到是否删除的文件没能释放磁盘空间

百度查询了以下资料.

When you open a file, you get a pointer.  Subsequent writes to this file 
references this file pointer.  The write call does not check to see if the file 
is there or not.  It just writes to the specified number of characters starting 
at a predetermined location.  Regardless of whether the file exist or not, disk 
blocks are used by the write operation. 

The df command reports the number of disk blocks used while du goes through the 
file structure and and reports the number of blocks used by each directory.  As 
far as du is concerned, the file used by the process does not exist, so it does 
not report blocks used by this phantom file.  But df keeps track of disk blocks 
used, and it reports the blocks used by this phantom file.

 

7.更加确定是磁盘空间未能释放

 

8.利用lsof 命令进行删除查询,看那些进程还在运行未能释放

 


查看相关路径下是存在删除的操作而且没有释放

 

 

 

 

9. ps  -ef 查看所有进程

 


图表  SEQ 图表 \* ARABIC 1

因为有一个进程已经KILL掉,所以不能还原全部进程。(还有一个进程是,ftp 上传到备份机的进程,每次我们要将本机的MySQL逻辑备份打包上传到我们的备份机,上传后我们的脚本里要删除想对应的文件)

此时我怀疑是我们上传备份的时候,网络有问题导致了ftp进程一直存在。然后查看近几天是否有操作。

我询问运维10月30日是否调整网络?

运维回答是调整了防火墙。

总结:看图标1的进程,确实30号还有一个 rar 打包的进程存在,还有一个sh 执行脚本的进程。然后进行 kill 这两个进程


 

10. df  -h

 

 

再次查看磁盘空间,恢复正常!

 

11.再次查看删除进程进程

 

 

 

 

没有显示异常

 

再次查看进程

ps -ef

 


所有进程正常!

以上就是此次问题解决过程!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30176559/viewspace-1851214/,如需转载,请注明出处,否则将追究法律责任。

上一篇: MySQL事务介绍
请登录后发表评论 登录
全部评论

注册时间:2015-03-25

  • 博文量
    47
  • 访问量
    204214