网站用户登录失败问题的排查
前两天编辑小妹说网站后台登录不上了,自己进到后台登录了一下,看到总提示登录失败;于是进到服务器,想想程序什么都没动,所以初步判断是数据库的问题;于是打算重启mysql数据库,在执行:
service mysqld restart
重启服务器时,提示重启失败,提示硬盘空间不足.赶忙执行命令:
df -h
查看硬盘存储空间,看到硬盘还有60%可用的存储空间,于是接着执行:
df -hi
查看硬盘结点存储空间,好嘛,已用100%.于是赶忙查看是哪些文件占用了大量的结点空间,刚开始用:
ls |wc -l
发现不够直观,然后在网上搜了个shell统计脚本,可列出各目录的名字,以及文件个数
#!/bin/sh find "要统计的目录路径" -maxdepth 1 -type d | while read dir; do count=$(find "$dir" -type f | wc -l) echo "$dir : $count" done
最后定位到了文件夹: /var/lib/php/session/ 发现这个文件夹有300多万个session存储文件.
确定了问题之后,对session存储文件夹进行了清空.再查看结点空间,省掉了60%.回到后台 登录成功.
分析session存储文件过多的原因是程序设计的问题,用户登录后,未设置合理的session清除机制.
由于优化程序需要花费较长的时间,所以用了个临时替代方案:设置定时任务,定时清除session存储文件,具体方法参阅文档:<<linux定时删除session存储文件>>