查找我的 LAMP Web 服务器的瓶颈的最佳方法是什么?

查找我的 LAMP Web 服务器的瓶颈的最佳方法是什么?

你能帮我找到我服务器的瓶颈吗?在之前我在 SF 上问的问题中,他们告诉我内存没有问题,而且内存充足。

我对 CPU 很感兴趣,也许还有 HD...如果我的用户数增加了,什么能阻止我提供双倍的点击量呢?

我是否需要对 httpd.conf 或 php.ini 进行某种优化?

服务器:16 GB DDR3-RAM ECC HDD RAID1、2x 250 GB SATA II-HDD 7.200 rpm 2 个额外的 80 GB SSD CPU 2x Intel Xeon E5520 四核

软件:php 5.3.6 mysql 5.5 apache 2.2.3 centos 5.5, 2.6.18-238.12.1.el5 #1 SMP 2011 年 5 月 31 日星期二 13:22:04 EDT x86_64 x86_64 x86_64 GNU/Linux

当前非高峰时段顶部:

top - 16:46:17 up 2 days, 14:57,  4 users,  load average: 4.22, 3.53, 3.19
Tasks: 305 total,   4 running, 300 sleeping,   0 stopped,   1 zombie
Cpu(s): 19.1%us, 11.1%sy,  0.0%ni, 69.6%id,  0.1%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:  16427200k total, 16280100k used,   147100k free,  3131684k buffers
Swap:  2104496k total,      268k used,  2104228k free,  6221860k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                                            
20157 apache    15   0  387m  67m 4088 S 57.5  0.4   0:21.00 httpd                                                                                                                                                                                              
 4106 apache    20   0  389m  67m 5164 R 40.9  0.4   0:59.57 httpd                                                                                                                                                                                              
20156 apache    15   0  357m  35m 5072 S 33.9  0.2   0:24.82 httpd                                                                                                                                                                                              
20148 apache    18   0  357m  35m 5052 R 31.2  0.2   0:25.00 httpd                                                                                                                                                                                              
 1759 apache    15   0  391m  69m 5188 S 29.9  0.4   4:37.24 httpd                                                                                                                                                                                              
16194 apache    18   0  358m  36m 5192 S 28.9  0.2   3:44.69 httpd                                                                                                                                                                                              
20147 apache    16   0  357m  35m 5148 S 23.6  0.2   0:26.73 httpd                                                                                                                                                                                              
17329 apache    15   0  370m  48m 5188 S 15.0  0.3   2:13.67 httpd                                                                                                                                                                                              
20140 apache    15   0  359m  37m 5136 S  8.0  0.2   0:20.53 httpd                                                                                                                                                                                              
28473 apache    15   0  358m  36m 5172 S  4.0  0.2   1:20.78 httpd                                                                                                                                                                                              
20158 apache    15   0  357m  35m 5112 S  3.7  0.2   0:22.96 httpd                                                                                                                                                                                              
26922 apache    15   0  357m  36m 5840 R  2.3  0.2   2:22.49 httpd                                                                                                                                                                                              
26925 apache    15   0  358m  36m 5188 S  2.3  0.2   1:28.63 httpd                                                                                                                                                                                              
12642 apache    15   0  357m  35m 5076 S  1.7  0.2   0:40.92 httpd                                                                                                                                                                                              
17963 apache    15   0  357m  35m 5152 S  1.7  0.2   0:27.35 httpd                                                                                                                                                                                              
 2687 apache    15   0  358m  36m 5192 S  1.0  0.2   4:28.17 httpd                                                                                                                                                                                              
 4419 mysql     15   0  668m 175m 7204 S  1.0  1.1   4:07.99 mysqld                                                                                                                                                                                             
20155 apache    16   0  368m  46m 5144 S  1.0  0.3   0:16.67 httpd                                                                                                                                                                                              
26923 apache    17   0  387m  66m 5168 S  1.0  0.4   1:42.18 httpd                                                                                                                                                                                              
 1277 apache    15   0  355m  34m 3988 S  0.7  0.2   0:11.11 httpd                                                                                                                                                                                              
 3571 root      16   0 13400 1792  848 S  0.3  0.0   3:03.17 top                                                                                                                                                                                                
32204 root      15   0 90156 3404 2648 S  0.3  0.0   0:00.19 sshd                                                                                                                                                                                               
    1 root      15   0 10372  680  572 S  0.0  0.0   0:02.04 init       

答案1

我在这份顶部打印输出上看不出任何瓶颈:

  • 您有 8 个 CPU 核心(带超线程的有 16 个?),此时有 4 个进程需要 CPU 时间(负载)
  • 你有 16GB RAM,但实际上只使用了 6GB
  • 没有等待,所以当然没有IO 等待

如果您的网站速度很慢,您可以看看:

  • 过期标头(静态内容是否缓存在客户端?)
  • 你的数据库负载
  • 使用反向代理

答案2

您的输出看起来一切正常。现在页面加载时间是多少?您是否针对服务器运行过 Apache Bench 或其他程序来查看其如何处理负载?您是否有任何 SAR 输出?

您可以轻松地进入 HipHop 和 Flashcache 等高端技术而不会看到任何好处。

如果您怀疑代码本身速度慢得不必要,您可以在开发箱中使用类似 XDebug 的工具来获取分析信息。我过去曾使用这种方法来优化某个非常复杂的经济应用程序的一些核心逻辑中的关键功能。输出结果可能非常大,因此请计划额外 300GB 的空间。WinCacheGrind 等软件将允许您解释结果。

相关内容