首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Wordpress优化Apache/MySQL/PHP

为Wordpress优化Apache/MySQL/PHP
EN

Server Fault用户
提问于 2010-09-10 05:50:58
回答 5查看 1.6K关注 0票数 0

我想弄清楚为什么我的apache进程占用了这么多内存。

我的片规格(1.5GBRAM,CentOS 5,Apache2,PHP5.2,MySQL)

如您所见,我的顶级进程占用了我全部内存的将近一半,当产生更多的进程时,服务器几乎停止运行,经常进入交换和崩溃。

代码语言:javascript
复制
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND   
6817 apache    40   0  296m 103m 3920 S  0.0  6.7   0:03.52 httpd                         
6789 apache    40   0  295m 101m 3932 S  0.0  6.6   0:07.04 httpd                         
6765 apache    40   0  284m  91m 3948 S 55.1  5.9   0:12.45 httpd                         
6798 apache    40   0  284m  90m 3944 S  0.0  5.9   0:05.49 httpd                         
6542 apache    40   0  283m  90m 3956 S  0.0  5.8   0:43.25 httpd                         
6827 apache    40   0  283m  88m 3796 S  0.0  5.7   0:01.83 httpd    

有人知道是什么原因导致apache (和php)消耗了这么多内存吗?

代码语言:javascript
复制
              total       used       free     shared    buffers     cached
Mem:          1545        827        718          0          3        111
-/+ buffers/cache:        713        832
Swap:         3071        103       2968
EN

回答 5

Server Fault用户

发布于 2010-09-12 18:26:26

您几乎肯定是在运行mod_php,这意味着您几乎肯定在mpm_prefork中运行apache。

如果在加载导致您开始交换之前,性能通常是可以的,那么一个快速的解决方法就是开始降低apache的MaxClients。如果允许apache随时分叉工作进程,那么它将在负载下开始交换。请求将排队,直到工人可用,所以事情可能变得缓慢,但没有那么慢的死亡-通过交换。

如果您确实需要更严格地调优,请考虑避开Pre叉apache。这意味着以FastCGI的形式运行PHP。如果要在FastCGI下使用PHP5.3.3,应该考虑升级到PHP5.3.3,它有更好的FastCGI流程管理器(--启用-选项)。

php/worker比老式的mod_php内存效率高得多。然后,您可以对apache进程/线程的数量进行调整,而不依赖于PHP进程的数量。而且,内存过多的PHP进程只用于提供php驱动的内容,而不是浪费在处理静态文件上。

票数 2
EN

Server Fault用户

发布于 2010-09-10 06:40:18

代码语言:javascript
复制
PID  USER   PR NI VIRT RES  SHR  S %CPU %MEM TIME+   COMMAND
6817 apache 40 0  296m 103m 3920 S 0.0  6.7  0:03.52 httpd
6789 apache 40 0  295m 101m 3932 S 0.0  6.6  0:07.04 httpd
6765 apache 40 0  284m 91m  3948 S 55.1 5.9  0:12.45 httpd
6798 apache 40 0  284m 90m  3944 S 0.0  5.9  0:05.49 httpd
6542 apache 40 0  283m 90m  3956 S 0.0  5.8  0:43.25 httpd
6827 apache 40 0  283m 88m  3796 S 0.0  5.7  0:01.83 httpd

wordpress是apache上唯一运行的东西吗?我对PID 6765的cpu使用率很高很好奇。不知道它在做什么。就mem%s而言,对于webapp的设置来说,这是非常正常的,因为每个线程实际上运行的都是多个工作线程。

您正在为apache使用什么MPM,以及如何配置它?

此外,如果你张贴终端转储,请开始每一行四个空格。它允许保留格式。

票数 1
EN

Server Fault用户

发布于 2010-09-10 07:40:30

我的水晶球有点脏,但我想您正在使用memcached及其PHP扩展。如果是这样的话,试着禁用它,除非你真的需要它。

另一种可能是,您已经安装了一些操作代码缓存,比如XCache,并将其配置为使用了大量内存。

你可以试试

代码语言:javascript
复制
pmap -x `pidof apache`

看看是什么在消耗记忆。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/179785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档