请教apache假死问题

64 views
Skip to first unread message

狗尾草

unread,
Sep 13, 2011, 2:04:47 AM9/13/11
to sh...@googlegroups.com
早上6点左右,同事反馈网站无法打开,重启服务器。从监控数据看,apache并发连接数达到500后已无法获取apache状态信息,怀疑是apache进程死掉。此时服务器内存中应用程序使用内存大约20G。

中午12点左右,网站再次出现问题,提示连不上数据库。此时查询数据库连接数为500个,已达到配置中最大连接数设置。apache内存占用大约13G左右。重启apache,内存得以释放,连接数也立马正常。

根据情况,我判断,是网站程序有某种问题(网站使用的是magento),但无法排除是DDOS攻击。
下一步准备如下处理:
1.配置mod_limitipconn,限制单IP连接数。
2.检查magento以及插件是否有问题。

请问是否还有其它方法解决?
chart (1).jpeg
chart (1).jpeg
chart (3).jpeg
chart (2).jpeg

dreamice

unread,
Sep 13, 2011, 2:33:10 AM9/13/11
to sh...@googlegroups.com
你apache用的什么mpm,内存怎么会占用如此之大?
chart (2).jpeg
chart (1).jpeg
chart (3).jpeg

Yiling Cao (c2h2)

unread,
Sep 13, 2011, 2:53:21 AM9/13/11
to sh...@googlegroups.com
假死是不是木有内存了?


在不变机器硬件配置,和php软件代码时, http server建议:
  1. 你把apache2 connection limit 设下, 应该不会死机.
  2. 然后mysql也要优化, limit connection. 
connection limit = 95% * Total RAM / (Per Request Max Memory Usage)

例如一个 conn 用128MB php, 12MB mysql, 4MB 其他,  机器一共16GB RAM
95% * 16 * 1024 /(128+12+4)  ~= 113 connection, 那么 apache2 设108 max connection. mysql = 120


ok, 其实如果可以的话 , 在不增加硬件下
建议使用lighttpd, nginx 来serve static content, jpg, png, avi .... apache2 fork太可怕, 效率极低....

或者用haproxy regex 把 static 的导向 监听不同端口的nginx, 或 lighttpd


还有, 有用php优化吗? eAccelator之类的?  可以大幅提高php效率, 从而降低 http request queue


总而言之, 不改代码优化的话,以前我做到10倍的性能提升过.


2011/9/13 dreamice <dreamic...@gmail.com>
chart (2).jpeg
chart (3).jpeg
chart (1).jpeg

Shen Chenjun

unread,
Sep 13, 2011, 3:01:57 AM9/13/11
to sh...@googlegroups.com
Apache最近紧急出了一个新版本2.2.20,之前的2.2.X版本无一幸免,都有潜在遭遇DOS攻击的风险。

2011/9/13 狗尾草 <guo...@gmail.com>
chart (1).jpeg
chart (2).jpeg
chart (3).jpeg

Rise

unread,
Sep 13, 2011, 4:11:27 AM9/13/11
to sh...@googlegroups.com
Magento似乎都有这样的问题。我单位里的mangeto和我朋友的magento,都出现过挂掉的情况。有时候还是出现在访问量极少的半夜。
chart (1).jpeg
chart (3).jpeg
chart (2).jpeg

狗尾草

unread,
Sep 13, 2011, 6:43:47 AM9/13/11
to sh...@googlegroups.com
使用的是默认配置
<IfModule prefork.c>
ServerLimit     10000
StartServers 8
MinSpareServers 5
MaxSpareServers 20
MaxClients       512
MaxRequestsPerChild 4000
</IfModule>





2011/9/13 dreamice <dreamic...@gmail.com>
chart (3).jpeg
chart (1).jpeg
chart (2).jpeg

狗尾草

unread,
Sep 13, 2011, 6:46:04 AM9/13/11
to sh...@googlegroups.com
我用的是Server version: Apache/2.2.3
去看看,是否有漏洞。





2011/9/13 Shen Chenjun <chenju...@gmail.com>
chart (1).jpeg
chart (2).jpeg
chart (3).jpeg

狗尾草

unread,
Sep 13, 2011, 6:56:10 AM9/13/11
to sh...@googlegroups.com
mysql的运行还稳定,目前连接数设为500,都被http请求用光了,但服务依然坚挺。
主要问题是apache顶不住了。
magento系统,我不熟,下一步准备与开发人员沟通下,看能否把图片等静态文件分离,确实静态文件请求很多。

中午暂时做了两步,gzip压缩,限制单IP连接数。
php优化这就研究研究。

我现在最后担心的是DDOS问题。




2011/9/13 Yiling Cao (c2h2) <yilin...@gmail.com>
chart (3).jpeg
chart (1).jpeg
chart (2).jpeg

dreamice

unread,
Sep 13, 2011, 8:37:03 AM9/13/11
to sh...@googlegroups.com
建议升级到2.2.21,另外,用worker模式吧,prefork太吃内存了。
chart (2).jpeg
chart (3).jpeg
chart (1).jpeg
Reply all
Reply to author
Forward
0 new messages