下载中心 | 网站地图 | 站内搜索 | 加入收藏

安恒公司 / 技术文章 / 安恒公司网管员手记 / apache2内存占用过高

2011-01-15 刘世伟  阅:    下页:
apache2内存占用过高
web服务器遇到一个奇怪的问题,在运行的诸多apache2进程中, 会有某个进程, 慢慢占满全部内存, 然后机器就象死了一样,
写了一个自动检查脚本,检查并杀死出问题的apache2进程,问题得到缓解,但是没有解决, 因为慢慢占满内存 ,会使linux释放掉所以的硬盘cache
并且周期性的有性能下降。用RLimitMEM参数限制内存,也不奏效,bw_mod限制流量也不奏效

今天修改了一下脚本, 在杀死出问题的进程之前,先记录此进程连接的外部的ip和端口,  并且修改apache的日志格式,增加进程号字段。
查阅出问题的进程号的access.log日志,没发现啥特异的url访问,

出问题的进程所连接的外部ip,是2个ip,这2个ip的agent字段声明它们是来自sogou,是sogou的机器人。
用tcpdump对这2个ip进行抓包(tcpdump host 220.181.94.213  -s0 -w /home/sogou.cap) ,用wireshark看抓包的内容,流量很小,也没啥特殊的东西。


监控记录脚本:
#!/bin/sh
while [ 1 ]
do
ps  -U www-data -u www-data -U root -u root u |grep apache2  |while read user pid cpu mem other
do
if [ ${mem%\.*} -gt 15 ]
then
ip=$( netstat -npa |grep $pid|tr  ':' ' '|awk '{printf $6}' )
echo `date +%Y-%m-%d:%H:%M:%S` kill pid:$pid cpu:$cpu mem:$mem ip:$ip >>/var/log/apache2/autokill.log
kill -9 $pid
fi
done
sleep 30
done


下页:   

相关文章
vsftpd[500 OOPS: cap_set_proc]错误 --安恒网管员手记 - 05-02-24 - 阅读: 212724
apache2 mod-gzip --安恒网管员手记 - 05-01-01 - 阅读: 161285

Email给朋友 打印本文
版权所有·安恒公司 Copyright © 2004   gentoo.anheng.com.cn   All Rights Reserved    
北京市海淀区首体南路9号 主语国际商务中心4号楼8层 (邮编100048) 电话:010-88018877