如何解决 Apache 运行缓慢的问题?

如何解决 Apache 运行缓慢的问题?

我在一台 Ubuntu 的 VPS 上运行 apache2 (2.2),内存为 768MB。不知为何,加载任何页面(甚至是静态 html)都需要几秒钟的时间。我唯一能责怪的组件是 Apache。但是,我不知道它为什么会这样。我甚至安装了 NewRelic,看看它是否能帮助我以更直观、更友好的格式诊断问题。我看到 apache2 使用了大约 400MB 的内存,这似乎很多,但总使用量仍远低于 100%。我仍然不清楚真正的问题是什么,也不知道如何正确诊断它。

根据 top 的内存使用情况(根据回答者的要求):

Mem:    768848k total,   753380k used,    15468k free,    39792k buffers
Swap:   262140k total,    92696k used,   169444k free,   432888k cached

“free -m” 的搜索结果:

             total       used       free     shared    buffers     cached
Mem:           750        733         17          0         35        414
-/+ buffers/cache:        282        467
Swap:          255         90        165

答案1

  1. /server_status安装 mod_status 并授予您 IP 的URL 访问权限- 这样您就可以看到 Apache 到底在做什么 - 也许有人正在用请求攻击您的服务器
  2. 查看 pstree 以确保 apache 进程总数低于 250 - 250 是一个神奇的限制
  3. 审查error.logaccess.log
  4. 使用top并输入“C”或“M”来详细了解系统正在做什么

答案2

可能是你的 apache 导致了交换 - 查看它使用了多少内存。

如果你只提供静态内容 - 跳过诊断 Apache 问题并将其替换为nginx数学或者lighttpd. 它们会以更小的内存占用为您提供更好的性能。

如果您同时提供静态和动态内容 - 您仍然可以在其他 IP 或其他端口上运行 apache,并使用 nginx 作为动态部分的反向代理,同时直接从 nginx 提供静态资产。

相关内容