2008年2月24日星期日

服务器状况--内存泄露导致服务不可用

好一个星期天,中午的收到手机短信报警。闷闷不乐的打开电脑,想连上服务器看看到底发生了什么。
状况:
1.服务器可以ping通,无任何异常现象
2.服务器任何端口都连接不上
解决过程:
1.尝试从各个地方连接服务端口,都没有响应。
2.联系机房重启服务器(怀疑服务器被攻击)
3.重启服务器,重启后正常。
4.查看日志(正常),查看重启前负载,内存使用等基本信息(负载200以上,内存吃光)
5.查找攻击迹象或者程序内存泄漏的迹象
6.发现crontab中某程序狂吃内存,以每秒10M的速度吃内存.
7.暂时在crontab中注释掉该程序
后续
1.分析该程序,内存泄漏的根本原因
2.不管是写程序和维护都应该对自己负责,对别人负责,毕竟是一个团队,和不喜欢负责任的人一起工作实在是太累了:)
总结
整个过程使服务暂停10分钟,这样的一个小问题,导致的用户不爽,太那个了.
希望一切一切都可以慢慢的向好的方面发展.
遐想:
1.似乎需要有程序对内存使用以固定的频率进行检查.
2.服务器是centos4,其他的unix os是不是对内存使用的监控和分配更加可控和合理?

没有评论: