操作系统:CentOS 7.2
web环境:2台apache+4台tomcat,apache负载均衡+反向代理。apache前端有array硬件负载均衡设备,与tomcat通过内网通讯
起因:
1、基于政务外网的某网站,连续两日出现网站偶尔访问卡顿,卡顿不是必出,随机出现。卡顿内容表现为网站访问加载时长从10s~100s。最开始直接通过内网设备访问流畅,遂怀疑网络故障。后又发现几个朋友都是好的,接着怀疑政务网络故障,最后经多方核实发现不是。问题无法定位
2、从zabbix监控发现,apache1设备的CPU使用率暴涨,怀疑有关联性,但始终没有定位
3、突然想起前天开始收到报警短信,提示apache1的disk inode可利用率已不足5%、2%直到100%。当时没有仔细查看,以为disk inode是磁盘,当时在设备上使用df -h发现空间正常,以为是误报。于是赶紧google搜索,发现inode查看指令为df -i,顿时查看傻眼——可使用率以为 0%
4、紧急查看前运维留下资料,发现确有inode解决这条,赶紧按照执行,至此,问题解决
汇总:由于inode的磁盘区间占满,导致即使还有空间也无法写入数据(理解为,即使书本后面还有空间可以写故事,但是最初排版的目录已写满,所以后面的故事也会因无法新增目录而无法写了)
关于inode的内容,这里有详解,不再过多转载解释。http://www.ruanyifeng.com/blog/2011/12/inode.html
故障复盘
1、对于zabbix的报警,过于轻视,没有认真查看,否则问题可以提早解决。这点和inode的认知没有任何关系
2、内网访问良好,是因为内网设备绕过apache反向代理,直接访问了tomcat服务,此处说明测试方法不足
3、访问时好时坏也只是看人品,访问的apache1设备,就会卡顿,访问到apache2设备,就会流畅。这也就是为什么有的人会好,有的人有问题
总结:出现问题不可怕,可怕的是不敢面对问题。躺过的坑,记住就好!