免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: mysnopy
打印 上一主题 下一主题

apache的某个进程运行时间太长,导致cpu 100%,apache假死掉? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-09-18 14:59 |只看该作者
学习中

论坛徽章:
0
12 [报告]
发表于 2007-09-20 17:02 |只看该作者
原帖由 linux_paly 于 2007-9-18 13:22 发表
top -n 1 -b |grep 'httpd' |awk 'length($9)>=100.0{print "kill", $1}'|sh


解决cpu>=100%时,自动关闭.           我觉得应该看看httpd.conf,配制,虽然很少用httpd,但httpd.conf好想是很好用的.



我服务器有8台做集群的,但有时集群时有时会出现某台负载过高的情况,所以才这样的。谢谢,我测试一下看。

[ 本帖最后由 mysnopy 于 2007-9-20 17:04 编辑 ]

论坛徽章:
0
13 [报告]
发表于 2007-09-20 22:13 |只看该作者
Cpu(s): 36.5%us,  1.0%sy,  0.0%ni, 39.3%id, 22.9%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:   3369668k total,  3242216k used,   127452k free,     8932k buffers
Swap:  4096532k total,   111624k used,  3984908k free,  2934056k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                               
16810 xxxx  18   0  241m 8460 5452 S  201  0.3   2580:28 httpd                                                                  
10215 xxxx   18   0  447m  49m 9184 S    2  1.5   0:40.37 httpd                                                                  
10844 xxxx   18   0  446m  49m 8724 S    2  1.5   0:39.14 httpd

不行呀,我用这个命令:
top -n 1 -b |grep 'httpd' |awk 'length($9)>=100.0{print "kill", $1}'|sh
试了好多次,但都不行,还在,我用root执行的。最后是直接手工kill掉的?

论坛徽章:
0
14 [报告]
发表于 2007-09-21 19:22 |只看该作者
运行.

#top -n 1 -b |grep 'httpd' |awk 'length($9)>=100.0{print "kill", $1}'

输出什么看一下.

论坛徽章:
0
15 [报告]
发表于 2007-09-23 14:56 |只看该作者
原帖由 mysnopy 于 2007-9-20 17:02 发表



我服务器有8台做集群的,但有时集群时有时会出现某台负载过高的情况,所以才这样的。谢谢,我测试一下看。



你的集群是不是用LVS做的?负载过高的机器是固定某一台,还是不固定?Web服务主要是跑些什么应用,会有很大流量?http下载?最好把情况详细说明下。

如果只是一般的php web程序,那就分析一下Apache的配置文件,请程序员和DBA分析应用程序和数据库负载。

[ 本帖最后由 qintel 于 2007-9-23 15:00 编辑 ]

论坛徽章:
0
16 [报告]
发表于 2007-09-23 16:09 |只看该作者
lsof -p $pid 看看这个进程在干吗,实在不行就直接kill调好了。apache里面kill一个没关系。

论坛徽章:
0
17 [报告]
发表于 2007-09-23 19:48 |只看该作者
原帖由 qintel 于 2007-9-23 14:56 发表



你的集群是不是用LVS做的?负载过高的机器是固定某一台,还是不固定?Web服务主要是跑些什么应用,会有很大流量?http下载?最好把情况详细说明下。

如果只是一般的php web程序,那就分析一下Apache的 ...



我的集群是用lvs做的,每天有100多万的PV,是流媒体类的网站,主要跑web应用,用户可以上传视频上来,然后后台转换成flv格式的文件,因为用户量比较大,所以用了集群,但现在的话,我用apache的worker模式跑的,某个进程资源占用会比较高过会apache就死掉了,最可恶的是lvs竟然侦测不到某台已经连不上了,只有apache停掉或这台服务器关机了或死机了才能侦测到,apache假死不能侦测到,所以没办法只能用shell来判断有没有假死之类的。

程序是php的。

论坛徽章:
0
18 [报告]
发表于 2007-09-25 09:19 |只看该作者
原帖由 linux_paly 于 2007-9-21 19:22 发表
运行.

#top -n 1 -b |grep 'httpd' |awk 'length($9)>=100.0{print "kill", $1}'

输出什么看一下.



试了,没用么。 进程时间都很长,CPU占用倒没到100。 可能需要把CPU进程长的或CPU占用大的一起删掉。

[ 本帖最后由 mysnopy 于 2007-9-25 09:21 编辑 ]

未命名.GIF (5.99 KB, 下载次数: 38)

未命名.GIF

论坛徽章:
0
19 [报告]
发表于 2007-09-25 10:45 |只看该作者
试试:
top -n 1 -b |grep 'httpd' |awk 'length($9)>=90.0{print "kill", $1}'|sh && top -n 1 -b |grep 'httpd' |awk 'length($11)>=0.30{print "kill", $1}'|sh



length($9)>=90.0      CPU 占用率       我设为90%

length($11)>=0.30     运行时间          我设为0.30

你自己可以修改

[ 本帖最后由 linux_paly 于 2007-9-25 10:48 编辑 ]

论坛徽章:
0
20 [报告]
发表于 2007-09-25 11:25 |只看该作者
谢谢楼上的,我再试一下,试完回来报告。

两个是不是或的关系,不应该是and的关系?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP