一次服务器磁盘空间不足导致的一系列问题
继昨天服务器上应用 CPU占用过高 后面该应用宕掉了以后 java 一次CPU占用过高问题的排查及解决
今天又出现了更严重的问题 昨天解决完问题 今天早些时候 出现了系统无法登录 查询日志定位应该数数据库的问题
后面发现是磁盘满了 其实还是昨天的出现问题的导致, 死循环刷了特别多的日志,,导致磁盘空间不足 导致数据库读写出问题了,继而导致应用不可用
使用cd / 后 du -sh * 列出各文件夹的占用大小
可以看到主要是usr/ 进入 usr 继续看磁盘占用
/usr/local文件夹依旧还是最大的
继续进入/usr/local
基本可以确定是日志文件太多了
清理掉一些日志 mysql就正常了, 应用也正常了, 故而整理了一下服务器的磁盘, 避免下次再次发生磁盘不足的情况
索性这两次出现的问题都是一些内部的应用, 出现了问题影响范围有限
———————————————————————————–华丽的分割线——————————————————————————————-
在整理linux磁盘的时候 查了一些资料 故而整理一下 ,留给以后需要的时候的使用
df -h 查看磁盘占用情况
du -sh * 进入某个人文件夹后 使用该命令可以看该文件夹下文件的占用情况
但是发现使用rm -rf 文件名 删除文件后 磁盘空间并没有变化
查询资料发现是 通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。
简单的理解 就是rm 删除的是引用 如果引用对应的文件正在被使用,这个文件是不会真正的被删除掉的
lsof | grep deleted
———————————————————————————–华丽的分割线——————————————————————————————-
顺便学习一下 lsof (list opened files)
lsof全名list opened files,也就是列举系统中已经被打开的文件。我们都知道,linux环境中,任何事物都是文件,
设备是文件,目录是文件,甚至sockets也是文件。所以,用好lsof命令,对日常的linux管理非常有帮助。
lsof -i : 端口号 可以用来查询端口时候被占用
lsof -i :8082
lsof 文件 显示开启文件/usr/local/tomcat_backend/logs/catalina.out的进程
lsof /usr/local/tomcat_backend/logs/catalina.out
lsof – p 进程PID
lsof – p 1498
看进程号为1498的进程打开了哪些文件