首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有mod_php高内存利用率的Apache

具有mod_php高内存利用率的Apache
EN

Server Fault用户
提问于 2012-05-17 09:41:09
回答 2查看 2.4K关注 0票数 0

我们使用mod_php和mysql在Apache上部署了Magento应用程序。我注意到apache服务器有时会消耗大量内存,这会导致内存交换并导致服务器上的高负载。每当apache服务器上有高负载时,导致高负载的apache进程在mysql端处于休眠模式,而在客户端处于CLOSE_WAIT状态。如有任何帮助来解决这个问题,我们将不胜感激。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2012-06-20 20:21:50

@raj,您可能会发现进程处于S状态,因为它们正在等待另一个受I/O约束的进程(D状态)。让机器停止交换。

因此,关键是解决两个关键问题,标准内存分配和内存承诺。

在运行Magento时,只要将PHP内存限制设置得太高,就很容易对RAM进行大规模提交。在正常情况下,它不会有任何不良影响,但一旦应用程序尝试使用该内存,它几乎会立即进入交换(如果你已经耗尽了内存)。

然后,您可能会发现Apache并不是内存使用的主要关注点,而是MySQL更有可能是罪魁祸首。

您没有提到您的服务器规范或您的商店的任何具体细节,因此不可能准确地提供建议。但是,简单地修改您的Apache和MySQL配置将是一个简单的起点。删除Apache线程、MySQL连接、分配的内存承诺的数量。然后开始用像Munin这样的工具绘制图形,这样就可以将流量、线程、CPU使用和内存使用联系起来。不这样做,你就是盲目工作。

但是,我建议您不要在netstat周围乱搞,因为您还需要很长时间才需要诊断TCP状态;您需要从头开始。

票数 2
EN

Server Fault用户

发布于 2012-05-17 11:45:58

去读一些关于HTTP调优和性能管理的好书(真的--你不太可能在这里得到答案)。

这会导致内存交换

然后您的服务器配置不当-- Then服务器永远不应该开始交换。应用通常的apache调优程序并减少php内存。

每当apache服务器上有高负载时,导致高负载的apache进程在mysql端处于睡眠模式。

嗯?根据定义,休眠过程不会导致加载。什么mhysql端?

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

https://serverfault.com/questions/389956

复制
相关文章

相似问题

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