Apache性能分析

我的networking服务器真的很困难。 我一直在根据networking上的build议调整一些东西,但没有find具体的东西。

当我做了htop时,我的Apache进程在虚拟内存列下占用了450MB。 我在互联网上search和人们说,安装eaccelerator系统将变得更快,更高效,会吃更less的内存和CPU。 不幸的是,结果比以前更糟糕。 现在我的apache进程在虚拟内存列下显示1488MB内存。

  1. 虽然每个进程显示1488MB的内存,但我可以看到,当4GB已被Varnish Cache(我正在使用它作为反向代理)带走时,总内存消耗也只有7GB。

  2. 我不确定是否应该担心虚拟内存列。

  3. 安装eaccelerator后,我的服务器还没有closures,因为消耗了18GB的完整RAM和2GB的SWAP空间。 这曾经发生过。 但是,自从我安装了eaccelerator以来,这只是一天,所以可能会有一两天的问题。

  4. 请不要build议我使用APC …它不安装在我的服务器上。

  5. 我检查了我的服务器的phpinfo页面,发现Eaccelerator正在caching脚本。 到目前为止,它已经用完了大约80MB的内存(由我分配的1Gb),并caching了大约900个脚本。

  6. 截至目前我的prefork设置是 –

    StartServers 8
    MinSpareServers 5
    MaxSpareServers 20
    ServerLimit 256
    MaxClients 256
    MaxRequestsPerChild 100

请在htop的屏幕截图下面find。

仅供参考 – 它是一个专用服务器,拥有8个核心CPU。
直到我的服务器正常运行,我的网站性能非常好。 它第一次加载大约8秒,第二个视图是2.5秒。 该网站的形象是一个电子商务网站。

在这里输入图像说明

Unix系统如何使用内存是一个非常漫长而复杂的故事。 将每个进程的虚拟大小相加并不能准确显示发生了什么事情。 一个更好的方法是跟踪由“free”报告的httpd进程数和可用内存(较less缓冲区/caching)。 然后将这些图表绘制在一张图上,并得到一个更现实的测量。

而在你的情况,这是有点复杂的运行清漆仍然会给你一个很好的迹象表明需求如何影响记忆。

您尚未提供有关如何configurationKeepAlive的信息,这些信息对内存使用情况和性能有重大影响。 你也没有提供关于服务器上的活动模式的任何信息 – 在整个循环中,httpd进程的数量是如何变化的? 不知道这是不可能评论你提供的configuration细节是多么合适。 然而,你的MaxRequestsPerChild是非常低的,除非你怀疑你的代码有一个大问题。

也不知道更多关于内容types的相对数量,要说什么会有帮助是很棘手的,例如,如果您提供了大量的静态CSS,JS和HTML,那么使用压缩将会带来很多好处。

8核和18Gb? Big Iron是构build可伸缩Web服务器体系结构的错误方法。

我的网站performance非常好。 它第一次加载大约8秒,第二个视图是2.5秒

我认为我们对“优秀”这个词有不同的解释,

虽然我怀疑有很多调优和重构需要在这里完成(特别是根据你没有提供的所有信息来判断),但最终你只需要添加更多的硬件。 在此期间,你可能想买一些帮助。

如果你想减less内存使用,你真的不应该使用prefork,而是使用工作线程。 顾名思义, prefork实际上每次都会启动一个新的进程,拥有自己的内存空间以及什么不是。

所以,改变你的Apache,而不是使用工人MPM 。 这应该有所帮助。

这就是说,如果你有18GB的内存,使用7GB的apache有什么问题? 其他的事情你还有很多。

也许你可以进一步解释,你试图达到什么目的。

虚拟内存就是它所说的。 看RES列真正的内存使用情况。

有关详细信息,请参阅man top ,具体DESCRIPTIONS of Fields部分。