Chinaunix

标题: 【解决】apache 内存占用特别多都几百MB 的!请高手给搭搭脉 [打印本页]

作者: 矛盾无奈    时间: 2007-04-29 17:33
标题: 【解决】apache 内存占用特别多都几百MB 的!请高手给搭搭脉
top图

俺已经搞了好几天了。从原来的192MB 到现在的115MB 哎哟还是不行啊我到底那里出问题了?我现在 apache 和 php 都升级到最新版 而且也没怎么优化过。奇怪了

  1. last pid: 53761;  load averages:  0.00,  0.00,  0.00    up 1+06:14:14  17:30:38
  2. 38 processes:  1 running, 37 sleeping
  3. CPU states:  0.3% user,  0.0% nice,  0.0% system,  0.0% interrupt, 99.7% idle
  4. Mem: 89M Active, 539M Inact, 208M Wired, 780K Cache, 214M Buf, 989M Free
  5. Swap: 4096M Total, 4096M Free

  6.   PID USERNAME  THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
  7.   684 mysql       4  20    0   192M 35240K kserel 0   0:13  0.00% mysqld
  8.   690 mrtg        1   8    0 29264K 17732K nanslp 0   0:04  0.00% perl
  9.   596 root        1  96    0 24168K  7116K select 0   0:02  0.00% snmpd
  10. 50381 root        1   8    0   115M 15192K nanslp 0   0:01  0.00% httpd
  11. 51420 nobody      1   4    0   115M 17292K accept 0   0:01  0.00% httpd
  12. 50382 nobody      1   4    0   115M 17076K accept 0   0:01  0.00% httpd
  13. 50384 nobody      1   4    0   118M 19876K accept 0   0:01  0.00% httpd
  14. 50388 nobody      1   4    0   115M 16980K accept 0   0:01  0.00% httpd
  15. 50390 nobody      1   4    0   115M 17228K accept 0   0:01  0.00% httpd
  16. 50596 nobody      1   4    0   116M 18020K accept 0   0:01  0.00% httpd
  17. 50597 nobody      1   4    0   115M 17268K accept 0   0:01  0.00% httpd
  18. 50598 nobody      1   4    0   116M 18092K accept 0   0:01  0.00% httpd
  19. 50385 nobody      1   4    0   116M 18228K accept 0   0:01  0.00% httpd
  20.   710 root        1   8    0  3692K  1320K nanslp 1   0:00  0.00% cron
  21. 52111 nobody      1   4    0   115M 17020K accept 0   0:00  0.00% httpd
  22.   513 root        1  96    0  3672K  1188K select 0   0:00  0.00% syslogd
复制代码

[ 本帖最后由 矛盾无奈 于 2007-5-3 01:35 编辑 ]
作者: dingcic    时间: 2007-04-29 17:45
没有看日志有什么异常嘛?我想到的办法就是看日志了。
作者: 矛盾无奈    时间: 2007-04-29 17:49
没有人访问的时候httpd 进程占用的内存也是超级多的!看看别人才几百K 最多10几MB 我实在搞不懂我的是怎么回事了。。。
作者: ddok2    时间: 2007-04-29 17:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: 矛盾无奈    时间: 2007-04-29 18:20
我帖个phpinfo吧

phpinfo地址链接:bbs.comicshow.net/phpinfo.php

基本都是默认没怎么改过
作者: 矛盾无奈    时间: 2007-04-29 18:42
还有个问题就是我把 LoadModule php5_module        libexec/apache22/libphp5.so 给注销掉。进程就正常了。


  1. last pid: 54016;  load averages:  0.00,  0.00,  0.00                                                        up 1+07:25:23  18:41:47
  2. 34 processes:  1 running, 33 sleeping
  3. CPU states:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
  4. Mem: 70M Active, 446M Inact, 299M Wired, 780K Cache, 214M Buf, 1010M Free
  5. Swap: 4096M Total, 4096M Free

  6.   PID USERNAME  THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
  7.   684 mysql       4  20    0   192M 35244K kserel 0   0:14  0.00% mysqld
  8.   690 mrtg        1   8    0 29264K 17732K nanslp 1   0:04  0.00% perl
  9.   596 root        1  96    0 24168K  7116K select 0   0:02  0.00% snmpd
  10.   710 root        1   8    0  3692K  1320K nanslp 0   0:00  0.00% cron
  11.   513 root        1  96    0  3672K  1188K select 0   0:00  0.00% syslogd
  12. 53753 tommy       1  96    0 30600K  4208K select 0   0:00  0.00% sshd
  13.   703 root        1  96    0 19680K  3464K select 0   0:00  0.00% sshd
  14. 53758 root        1  20    0 10476K  4536K pause  1   0:00  0.00% csh
  15. 53750 root        1   4    0 30616K  4144K sbwait 0   0:00  0.00% sshd
  16. 53754 tommy       1  20    0  9156K  3452K pause  1   0:00  0.00% tcsh
  17. 54009 root        1   8    0 63864K  4844K nanslp 0   0:00  0.00% httpd
  18.   648 mysql       1   8    0  5192K  1716K wait   0   0:00  0.00% sh
  19. 53757 tommy       1   8    0 18364K  1732K wait   0   0:00  0.00% su
  20. 54016 root        1  96    0  6848K  2096K CPU0   0   0:00  0.00% top
  21.   587 root        1  96    0 13272K  3004K select 0   0:00  0.00% pure-ftpd
  22.   770 root        1   5    0  3636K  1140K ttyin  0   0:00  0.00% getty
  23. 54010 nobody      1  96    0 63904K  4896K select 0   0:00  0.00% httpd
  24.   772 root        1   5    0  3636K  1140K ttyin  0   0:00  0.00% getty
  25.   771 root        1   5    0  3636K  1140K ttyin  0   0:00  0.00% getty
  26.   776 root        1   5    0  3636K  1140K ttyin  1   0:00  0.00% getty
  27.   775 root        1   5    0  3636K  1140K ttyin  0   0:00  0.00% getty
  28.   773 root        1   5    0  3636K  1140K ttyin  1   0:00  0.00% getty
  29.   774 root        1   5    0  3636K  1140K ttyin  1   0:00  0.00% getty
  30.   777 root        1   5    0  3636K  1140K ttyin  1   0:00  0.00% getty
  31. 54011 nobody      1   4    0 63912K  4892K accept 0   0:00  0.00% httpd
  32. 54012 nobody      1   4    0 63864K  4860K accept 0   0:00  0.00% httpd
  33. 54014 nobody      1   4    0 63864K  4860K accept 1   0:00  0.00% httpd
  34.   455 root        1 113    0   652K   460K select 0   0:00  0.00% devd
  35. 54015 nobody      1   4    0 63864K  4880K accept 0   0:00  0.00% httpd
  36. 54013 nobody      1   4    0 63864K  4860K accept 0   0:00  0.00% httpd
  37.   130 root        1  20    0  2512K   904K pause  1   0:00  0.00% adjkerntz
复制代码

[ 本帖最后由 矛盾无奈 于 2007-4-29 18:44 编辑 ]
作者: 矛盾无奈    时间: 2007-05-03 01:35
原来AMD64版本都是这样的。然后去掉不用的组件 现在降到80MB左右
作者: pw东升    时间: 2007-05-05 08:04
去掉的是哪些组件?
作者: 矛盾无奈    时间: 2007-05-05 14:16
谢谢楼上的 又学了一招。感觉prefork 比worker 要好用 速度也要快好多
作者: wangbin    时间: 2007-06-12 01:24
原帖由 矛盾无奈 于 2007-5-5 14:16 发表
谢谢楼上的 又学了一招。感觉prefork 比worker 要好用 速度也要快好多



原来AMD64版本都是这样的。然后去掉不用的组件 现在降到80MB左右


作者: langue    时间: 2007-06-12 07:01
原帖由 wangbin 于 2007-6-12 01:24 发表



原来AMD64版本都是这样的。然后去掉不用的组件 现在降到80MB左右



64 位机的指令通常比 32 位的长,那么一般的规律就是 64 位机上的某程序二进制文件大小会比 32 位机上同样版本的大很多(按比例)。
作者: langue    时间: 2007-06-12 07:10
原帖由 矛盾无奈 于 2007-5-5 14:16 发表
谢谢楼上的 又学了一招。感觉prefork 比worker 要好用 速度也要快好多


我通常的体验是对 Apache HTTPd 来说 worker 比 prefork 更有造成死锁的可能,分析下来一个原因是 mpm_worker.c 比较新,可能不太稳定;另一个原因可能和我目前使用的平台上的线程库有关,worker 使用线程,而 prefork 从名字上就可以知道用的是 fork()。如果某个平台上 worker 比 prefork 稳定,我就可能选择 prefork;如果使用线程效率比 fork() 高,我也有可能选择性能好的那个。当然,这就是具体情况具体分析了。win32 平台 native 版本的 MPM 似乎只用线程,而 worker 既用线程又用进程,prefork 不用线程。
作者: isjfk    时间: 2007-06-12 09:51
原帖由 langue 于 2007-6-12 07:10 发表
我通常的体验是对 Apache HTTPd 来说 worker 比 prefork 更有造成死锁的可能,分析下来一个原因是 mpm_worker.c 比较新,可能不太稳定;另一个原因可能和我目前使用的平台上的线程库有关,worker 使用线程,而 prefork 从名字上就可以知道用的是 fork()。如果某个平台上 worker 比 prefork 稳定,我就可能选择 prefork;如果使用线程效率比 fork() 高,我也有可能选择性能好的那个。当然,这就是具体情况具体分析了。win32 平台 native 版本的 MPM 似乎只用线程,而 worker 既用线程又用进程,prefork 不用线程。

偶看得好晕啊...
作者: hongzjx    时间: 2007-06-12 23:39
Mem: 89M Active, 539M Inact, 208M Wired, 780K Cache, 214M Buf, 989M Free

这吓人吗?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2