测试环境磁盘满的故障排查

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

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

 

 
linux下空间满可能有两种情况

 

可以通过命令
df -h  查看磁盘空间占用,实际上是查看磁盘块占用的文件(block)
 
df -i  查看索引节点的占用(Inodes)
 
磁盘块和索引节点其中之一满,都会导致无法创建文件,提示磁盘空间已满。
所以请注意,查看磁盘还有空间,但是创建文件提示空间满,可能是inodes节点已满
 
列出系统内大于100M的文件:find / -size +100M |xargs ls -lh
 
查看当前目录内: du -h --max-depth=1
查看当前目录内及子目录文件夹的大小 :du -sh * 
 
运行下面的命令分析根目录下每个目录下面有多少个文件,找出高空间的文件:for i in /*; do echo $i; find $i | wc -l; done:
 
 
 
可以两种方式都测试下,有些时候,占用了大量空间的其实是系统日志或业务附件等小文件,
所以根据文件大小去查找不一定能查出正在占用硬盘空间的【目录】或文件,建议使用第二种
 
日志文件较大
web访问日志,建议做定时任务日志切割,以天为单位做压缩备份(可以通过脚本实现),保留一定时间以备查看,有需要可以做日志分析。
 
以一键安装包的环境为例,/alidata/log/ 目录下是是日志文件,可以检查文件大小是否占满磁盘使用,通常,access目录下文件为访问日志,error为错误日志。如磁盘占慢,这些日志又不重要,那么可以做清空处理,
 
方法
1,可以rm 删除掉,
2 echo"" >access.log 
大量小文件引起
由于业务需求,产生大量小文件,需要考虑新增加磁盘或者使用oss存储服务
 
 


服务器宕机了怎么办?

启动机器,看能否登陆,如果能登陆,请检查:

a、是否是应用程序导致内存溢出或者泄露导致:
b、是否是进程过多或者不断创建,耗尽资源导致
c、是否是数据库程序死锁,连接数过多导致
d、是否是应用程序异常导致
e、是否是流量负载过大导致
f、 是否是遭受黑客入侵攻击导致
g、是否是误操作导致
如果无法查看故障现场,则可以查询系统日志查看是否有异常记录。



Linux经常死机、卡住

linux操作系统服务器在出现死机或卡顿情况,可以参考以下项目进行整体排查:

a、检查服务器进程与服务否占用了太多的内存或是没有释放内存,当服务器内存用完后,然后就会很快宕机;
b、看看/var/spool/cron 里面是不是有cron(计划任务、自动任务)在对应时间段内执行;
c、检查web服务器的参数是否超过了服务器的性能,如允许最大连接数过高等;
d、进程数很高,服务瘫痪,机器假死(例如zombie进程是否过多,一直占用资源);
e、cat  /var/log/message查看系统日志是否有异常
f、检查磁盘是否有坏块。(可使用badblocks命令配合参数)
g、内核消耗过大,查看是否有瞬间资源占用过大的进程或服务;
h、ps -ef 查看进程异常否,是否存在攻击
posted @ 2017-07-28 16:37  YaChenYa  阅读(702)  评论(0编辑  收藏  举报