linux debian 装的 Vestacp 面板, apache2 好占内存~~求高手优化?

2015-02-02 22:37:41 +08:00
 GreenJoson

以下是top 出来的情况~~

3875 mysql 20 0 846m 116m 10m S 61.9 5.9 112:09.24 mysqld
32335 www-data 20 0 281m 30m 12m S 2.0 1.5 0:03.57 apache2
30813 www-data 20 0 280m 29m 12m S 5.7 1.5 0:16.30 apache2
30814 admin 20 0 279m 28m 12m R 3.7 1.4 0:16.19 apache2
30812 www-data 20 0 278m 27m 12m S 0.7 1.4 0:12.92 apache2
30811 www-data 20 0 277m 26m 12m S 0.3 1.3 0:12.31 apache2
30810 www-data 20 0 277m 26m 12m S 0.3 1.3 0:16.30 apache2
30817 www-data 20 0 277m 26m 12m S 3.7 1.3 0:11.75 apache2
31013 www-data 20 0 277m 26m 12m S 0.0 1.3 0:10.66 apache2
30815 www-data 20 0 277m 26m 12m S 4.7 1.3 0:13.26 apache2
30816 admin 20 0 276m 25m 12m S 0.3 1.3 0:15.71 apache2
31144 www-data 20 0 275m 24m 12m S 0.0 1.3 0:10.75 apache2
30789 root 20 0 268m 24m 16m S 0.0 1.2 0:00.10 apache2
3420 bind 20 0 177m 23m 5360 S 0.0 1.2 0:00.13 named
32595 www-data 20 0 274m 22m 12m S 0.0 1.1 0:00.81 apache2
3570 admin 20 0 46848 9152 6164 S 0.0 0.4 0:00.13 vesta-php
3571 admin 20 0 46596 9052 6204 S 0.0 0.4 0:00.17 vesta-php
30797 www-data 20 0 148m 6152 2076 S 0.0 0.3 0:00.02 apache2
473 www-data 20 0 53208 6020 3760 S 0.0 0.3 0:35.29 nginx
475 www-data 20 0 53076 5972 3720 S 0.3 0.3 0:42.98 nginx
14599 root 20 0 71308 5348 4568 S 0.0 0.3 0:00.04 sshd
11841 root 20 0 71456 5308 4492 S 0.0 0.3 0:00.38 sshd
3412 admin 20 0 41716 4996 3912 S 0.0 0.2 0:00.19 vesta-nginx
32401 root 20 0 51292 4916 4300 S 0.0 0.2 0:00.00 sshd
3566 root 20 0 44444 4812 2768 S 0.0 0.2 0:00.98 vesta-php
11865 root 20 0 20432 4572 3060 S 0.0 0.2 0:00.08 bash
661 dovenull 20 0 24008 4452 3852 S 0.0 0.2 0:00.00 pop3-login
4208 ntp 20 0 39084 4388 3776 S 0.0 0.2 0:01.94 ntpd
4606 Debian-e 20 0 97168 4080 2940 S 0.0 0.2 0:00.01 exim4
4338 root 20 0 22896 3524 2064 S 0.0 0.2 0:00.44 config
476 www-data 20 0 52452 3376 2032 S 0.0 0.2 0:01.21 nginx
32403 sshd 20 0 51292 3036 2404 S 0.0 0.1 0:00.00 sshd
3436 root 20 0 49948 2788 2640 S 0.0 0.1 0:01.16 sshd
30835 root 20 0 23340 2636 2216 R 0.3 0.1 0:00.66 top
470 root 20 0 52448 2572 1440 S 0.0 0.1 0:00.00 nginx
3242 root 20 0 119m 2532 2344 S 0.0 0.1 0:02.08 rsyslogd
16049 dovecot 20 0 17684 2368 2048 S 0.0 0.1 0:00.77 auth

apache2 配置文件,求帮忙优化~~

LockFile ${APACHE_LOCK_DIR}/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 30
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 10

<IfModule mpm_prefork_module>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 200
MaxRequestsPerChild 1000
</IfModule>

<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 200
MaxRequestsPerChild 1000
</IfModule>

<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 200
MaxRequestsPerChild 1000
</IfModule>

硬盘使用状况 总空间 46.692 G, 已用 26.579 G, 空闲 20.113 G, 使用率 56.92%

内存使用状况 物理内存:共 1.948 G , 已用 1.79 G , 空闲 0.158 G , 使用率 91.89%

Cache化内存为 0.83 G , 使用率 42.6 % | Buffers缓冲为 0.343 G

真实内存使用 0.617 G , 真实内存空闲 1.331 G , 使用率 31.67 %

SWAP区:共 2.48 G , 已使用 0.006 G , 空闲 2.474 G , 使用率 0.25 %

系统平均负载:0.73 0.88 0.86 1/134

V2ex 好像不能上传图片???

4098 次点击
所在节点    Apache
11 条回复
lightryanking
2015-02-02 23:00:03 +08:00
apache本来就占内存。。。nginx版的vestacp跳票了大半年了,建议你放弃吧
GreenJoson
2015-02-02 23:24:41 +08:00
@lightryanking 那。。。我岂不是又得重装了。。。。。好坑~~
extreme
2015-02-02 23:25:08 +08:00
都说Apache占内存……
事实上我强烈反对这个结论!!!
我可以肯定您贴上来的Apache的进程是Apache以mod_php模式运行时为处理PHP而FORK的进程。
你们用Nginx,不见Nginx那么多进程,是因为Nginx以线程模式运行,事实上FastCGI Server还是会fork一堆PHP进程。

不同方式运行PHP,资源占用也是不同的,其中mod_php模式最占资源(我猜一个进程不仅要给Apache自身占用一些资源,还要给Apache处理PHP占用一些资源),其触发的OOM可以让你系统Down掉。

你可以让Apache以线程模式运行(没记错的话应该是work模式),以CGI模式处理PHP。这样就仅需Fork PHP的进程,但多起来一样死,只是没mod_php那么惨烈。

PHP的进程模式注定配置不好的服务器大访问量要死。既然如此,那我们就不要让他Fork进程,从PHP自身动手,对于我来说是不可能事件,因此仅能从外部,缓存乃最佳选择。

选择1. Varnish
说说我的体验,我的WordPress,使用17CE进行GET测试,mod_php模式下,内存可瞬间被多占用1-2 Gbytes,可看见Fork了一大堆进程,在启用Varnish后,同样方式测试仅有数十Mbytes的内存占用变化。

选择2. FastCGI Cache
这个效果也是挺明显的,但我未进行具体测试,目前使用中。

选择3. Nginx Proxy Cache
这个效果比较差,17CE测试,内存占用变化还是较明显。

选择4. 各种PHP缓存
例如WordPress的WP Super Cache,效果挺好,不过效率没HTTP Server高。
GreenJoson
2015-02-02 23:26:08 +08:00
debian 上的 apache 怎么 将prefork模式切换为worker模式

听说worker模式会好点~??~
GreenJoson
2015-02-02 23:32:51 +08:00
@extreme vestacp nginx模式有个caching模式,但感觉差不多了~~
我现在想切换为worker模式 ,估计会好点~~我试过装memcache,php memcache ,但感觉没啥用处~~
extreme
2015-02-02 23:39:17 +08:00
@GreenJoson 使用前你应该了解那是缓存什么,如果根本不是缓存你想要缓存的东西,那肯定不会达到你预期的效果。
extreme
2015-02-02 23:49:38 +08:00
@GreenJoson 如果你从更新源安装的,卸载apache2-mpm-prefork,安装apache2-mpm-worke。
如果自己编译的,是编译为多种运行模式,那就改配置文件,改模块,否则,那就重新configure再编译。
GreenJoson
2015-02-03 00:17:40 +08:00
@extreme 装的就是vestacp ,自带的apache 模式是prefork,但是配置文件又有worke的模式配置。就不知道怎么切换了~~唉~~
Eleutherios
2015-02-03 09:35:37 +08:00
试试HHVM?
ryd994
2015-02-03 10:18:51 +08:00
@extreme nonono,nginx不是靠线程,而是靠事件,靠线程是不能搞定c10k的
CGI跑php也是要死人的。fcgi才对
nginx反代作缓存这个配置其实还是要点麻烦的,对动态内容基本没效果。不过可以把静态内容抢下来,这个效果还是很好的。
GreenJoson
2015-02-03 13:42:41 +08:00
@Eleutherios 这玩意,估计折腾不起来。反倒把自己搞死。。还是算了~~~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/167721

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX