免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7053 | 回复: 2
打印 上一主题 下一主题

[Web] apache 里面烦人的 defunct [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-11-23 21:38 |只看该作者 |倒序浏览
可能又是一个老生常谈的问题了,以前流量不大的时候显现不出来,现在流量上去了,总是会出现页面突然打不开或者只打开一半的问题。现在把问题简单的阐述一下。

系统: Redhat 9.0 + Apache 2.0.52 + PHP 4.3.9 + Vsftpd 2.0.1

模块:
# apachectl -l
Compiled in modules:
  core.c
  mod_access.c
  mod_auth.c
  mod_include.c
  mod_log_config.c
  mod_env.c
  mod_setenvif.c
  mod_ssl.c
  worker.c
  http_core.c
  mod_mime.c
  mod_status.c
  mod_autoindex.c
  mod_asis.c
  mod_cgid.c
  mod_negotiation.c
  mod_dir.c
  mod_imap.c
  mod_actions.c
  mod_speling.c
  mod_userdir.c
  mod_alias.c
  mod_rewrite.c
  mod_so.c


PHP 的 configure 行中已经把 --with-mpm 编入: --with-mpm=worker

流量:

  1.            参观人次    网页数     文件数      
  2. 平均数 3379.52    30662.35   30768.43  
复制代码


httpd.conf 的相关配置已经解释

Timeout 300
KeepAlive On
MaxKeepAliveRequests 600
KeepAliveTimeout 15

<IfModule worker.c>;

# These two lines must be written before any other configurations.
ThreadLimit 200
ServerLimit 16

StartServers 3
MinSpareThreads 75
MaxSpareThreads 350

# Problem:
# WARNING: ThreadsPerChild of 75 exceeds ThreadLimit value of 64
# threads, lowering ThreadsPerChild to 64. To increase, please see the
# ThreadLimit directive.
#
# The default value for ThreadLimit is 1920 when used with mpm_winnt
# and 64 when used with the others.

ThreadsPerChild 100
MaxClients 600

# MaxClients <= ServerLimit * ThreadsPerChild  350 < 16*100 = 1600

MaxRequestsPerChild  10000
</IfModule>;


硬件:
Dell poweredge 2650  Xeon 2.0 * 4 + 1G memory
我朋友说内存小了点....  但是..

# top
213 processes: 212 sleeping, 1 running, 0 zombie, 0 stopped
CPU0 states:   0.0% user   6.0% system    0.0% nice   0.0% iowait  93.0% idle
CPU1 states:   1.0% user   0.0% system    0.0% nice   0.0% iowait  98.0% idle
CPU2 states:  25.0% user   0.1% system    0.0% nice   0.0% iowait  73.0% idle
CPU3 states:  10.0% user   2.0% system    0.0% nice   0.0% iowait  86.0% idle
Mem:  1032044k av, 1015332k used,   16712k free,       0k shrd,   13544k buff
       416956k active,             541048k inactive
Swap: 2048248k av,   12924k used, 2035324k free                  723204k cached

真正 active 的内存才一半左右, swap 几乎没有用。

# ps -ax | grep httpd | wc -l
      5

# ps -ax | grep vsftpd | wc -l
      108  有点高.....

vsftpd 的配置: virtual user  +  脱离xinted的独立形式.

-----------------------------------
好了,烦了这么多了,看看头痛的现象吧。 以下是 #top -d 1 | grep httpd 的记录:


  1. [root@dalouis root]# top -d 1 | grep httpd
  2. 14774 root      16   0  5744 5744  5568 S    99.9  0.5   0:00   1 httpd
  3. 14774 root      16   0  5744 5744  5540 S    19.1  0.5   0:00   0 httpd
  4. 14774 root      16   0  5744 5744  4860 S    99.9  0.5   0:00   0 httpd
  5. 15212 apache    16   0     0    0     0 Z    33.3  0.0   0:00   0 httpd <defunct>;
  6. 14774 root      16   0  5744 5744  5540 S    37.1  0.5   0:00   1 httpd
  7. 14774 root      16   0  5744 5744  5584 S    29.7  0.5   0:01   1 httpd
  8. 14774 root      16   0  5744 5744  5568 S    14.1  0.5   0:01   1 httpd
  9. 14774 root      16   0  5744 5744  4860 S    99.9  0.5   0:00   3 httpd
  10. 15444 apache    17   0     0    0     0 Z    76.4  0.0   0:00   1 httpd <defunct>;
  11. 15559 apache    17   0     0    0     0 Z    34.3  0.0   0:00   1 httpd <defunct>;
  12. 15555 apache    16   0     0    0     0 Z    16.2  0.0   0:00   1 httpd <defunct>;
  13. 14774 root      16   0  5744 5744  5532 S    93.2  0.5   0:01   1 httpd
  14. 14774 root      16   0  5744 5744  5532 S     1.9  0.5   0:01   1 httpd
  15. 14774 root      16   0  5744 5744  5532 S     8.5  0.5   0:01   1 httpd
  16. 14774 root      16   0  5744 5744  5532 S    26.4  0.5   0:01   0 httpd
  17. 14774 root      16   0  5744 5744  4860 S    99.9  0.5   0:00   1 httpd
  18. 14774 root      16   0  5744 5744  5540 S    17.0  0.5   0:00   0 httpd
  19. 14774 root      16   0  5744 5744  5540 S    41.8  0.5   0:00   0 httpd
  20. 14774 root      16   0  5744 5744  5540 S     1.9  0.5   0:00   0 httpd
  21. 14774 root      16   0  5744 5744  5540 S    69.5  0.5   0:01   1 httpd
  22. 14774 root      16   0  5744 5744  4860 S    99.9  0.5   0:00   1 httpd
  23. 14774 root      16   0  5744 5744  5540 S    48.4  0.5   0:00   0 httpd
  24. 14774 root      16   0  5744 5744  5540 S     5.7  0.5   0:00   0 httpd
  25. 14774 root      16   0  5744 5744  4860 S    99.9  0.5   0:00   0 httpd
  26. 16049 apache    17   0     0    0     0 Z    65.8  0.0   0:00   2 httpd <defunct>;
  27. 14774 root      16   0  5744 5744  5540 S    32.2  0.5   0:00   0 httpd
  28. 14774 root      16   0  5744 5744  5540 S    23.8  0.5   0:00   1 httpd
  29. 14774 root      16   0  5744 5744  5540 S    21.5  0.5   0:00   1 httpd
  30. 14774 root      16   0  5744 5744  5540 S     3.8  0.5   0:01   0 httpd
  31. 14774 root      16   0  5744 5744  5540 S    36.4  0.5   0:01   0 httpd
  32. 14774 root      16   0  5744 5744  5568 S    19.0  0.5   0:01   3 httpd
  33. 14774 root      16   0  5744 5744  4860 S    99.9  0.5   0:00   2 httpd
  34. 16177 apache    17   0     0    0     0 Z    99.9  0.0   0:01   0 httpd <defunct>;
  35. 16303 apache    17   0     0    0     0 Z    31.4  0.0   0:00   0 httpd <defunct>;
  36. 16429 apache    17   0     0    0     0 Z    16.1  0.0   0:00   0 httpd <defunct>;
  37. 14774 root      16   0  5744 5744  5540 S    56.0  0.5   0:00   1 httpd
  38. 14774 root      16   0  5744 5744  5588 S    40.8  0.5   0:01   0 httpd
  39. 14774 root      16   0  5744 5744  5568 S    32.3  0.5   0:01   0 httpd
  40. 14774 root      16   0  5744 5744  5540 S    30.5  0.5   0:01   0 httpd
  41. 14774 root      16   0  5744 5744  5540 S     2.8  0.5   0:02   3 httpd
  42. 14774 root      16   0  5744 5744  4860 S    99.9  0.5   0:00   3 httpd
  43. 14774 root      16   0  5744 5744  5540 S    12.3  0.5   0:00   3 httpd
  44. 14774 root      16   0  5744 5744  5540 S    28.6  0.5   0:00   3 httpd

复制代码


所以怎么样才能真正杜绝这个头痛的 <defunct>; 呢? 请各位不吝赐教! 谢谢!  

论坛徽章:
0
2 [报告]
发表于 2004-11-23 21:45 |只看该作者

apache 里面烦人的 defunct

我把在最近配置过程中参考的文章总结了一下,有兴趣的朋友可以看看,里面有一些我的看法和参考文献。以上的配置也是从这些文章中理解来的。请大家不吝赐教。

Running a High-Performance Web Server
http://weblog.dalouis.com/archives/2004/11/running_a_highp.html

Apache 2.0性能优化—MPM的选择与配置
http://weblog.dalouis.com/archives/2004/11/apache_20eaeamp.html

论坛徽章:
0
3 [报告]
发表于 2009-12-11 18:11 |只看该作者
这么多年,解决了么? 我现在也有这问题,头疼。

但是我是用prefork mpm
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP