【问题标题】:apache using lots of cpuapache使用大量cpu
【发布时间】:2011-06-24 21:17:49
【问题描述】:

我在使用 apache(灯)时遇到问题。偶尔我有一个进程会用完我的一个 cpu 大约 5-20 秒。

通常这将是 php 的错,但经过​​测试我可以看到 php 脚本已完成。 (在最后的 echo 命令中)但只是 apache 正在等待一些东西。我有一个超快的服务器,有备用内存,硬盘(300+Mb/s)几乎什么都不做,在高流量下CPU利用率不到10%。

下面我有一个来自 dstat 的转储,你可以看到我在 sys 列上有大约 20 秒的大约 12 个 cpu 使用率,当 apache 占用一个 cpu 时会发生这种情况。

usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
  7  12  81   0   0   0|8192B    0 |  16k   96k|   0     0 |1302  3030 
  8  12  80   0   0   0|  16k    0 |  18k   99k|   0     0 |1297  2715 
 10  12  77   0   0   0| 248k 1384k|  24k  206k|   0     0 |1501  3857 
 15  12  73   0   0   0|  40k    0 |  36k  459k|   0     0 |1574  3643 
  9  12  79   1   0   0| 208k 4024k|  42k  427k|   0     0 |1865  3476 
  5  12  83   0   0   0|  56k  920k|  40k  574k|   0     0 |1648  2137 
  5  12  82   1   0   0| 160k    0 |  30k  275k|   0     0 |1556  2776 
  6  12  82   0   0   0|  96k 1776k|  23k  198k|   0     0 |1354  2811 
  3  12  85   0   0   0|  24k    0 |  18k  132k|   0     0 |1418  2200 
  5  12  83   0   0   0|  24k 3288k|  28k  263k|   0     0 |1457  2422 
  7  12  80   1   0   0| 176k 1080k|  29k  310k|   0     0 |1616  4206 
  5  12  83   1   0   0| 312k    0 |  63k  639k|   0     0 |1944  2776 
  4  12  73  10   0   0|  96k 8912k|  33k  366k|   0     0 |2652  2628 
  8  12  80   0   0   0|  56k    0 |  26k  232k|   0     0 |1401  2909 
  4  12  71  14   0   0|  88k    0 |  21k  178k|   0     0 |1492  3041 
  8  12  78   2   0   0| 144k 3984k|  61k  677k|   0     0 |1971  3893 
  5  12  83   0   0   0| 104k    0 |  35k  439k|   0     0 |1650  2878 
  5  12  81   1   0   0| 112k 1352k|  31k  210k|   0     0 |1476  3052 
  5  12  84   0   0   0|8192B 1792k|  15k  102k|   0     0 |1387  2663 
  4  13  81   2   0   0| 936k 4456k|  26k  162k|   0     0 |1491  2644 
  6  12  81   1   0   0| 200k 1336k|  33k  315k|   0     0 |1676  2829 
  7  15  77   1   0   0|  96k  672k|  37k  337k|   0     0 |1549  2758 
  9  13  77   1   0   0| 104k    0 |  51k  399k|   0     0 |1871  3614 
  5  12  82   0   0   0|  72k 2392k|  46k  427k|   0     0 |1685  2803 
  7  11  82   0   0   0|  64k    0 |  21k  214k|   0     0 |1487  2762 
  7   0  93   0   0   0|  32k    0 |  21k  155k|   0     0 |1310  2739 
  5   0  95   0   0   0|  32k    0 |  40k  333k|   0     0 |1675  2829

那么我该如何调试呢?或者可能是什么?

【问题讨论】:

  • apache 日志中的某些内容,可能是 Ddos?
  • 日志中没有任何内容,没有发生 ddos​​,在这个例子中,我们在 nic 上收到了 32-60kb 的数据。
  • 也许会给我们一些关于 apache 配置、此事件的频率、mpm 设置的更多信息……您是否检查了所有现有的 apache 日志,尤其是默认的 error.log 和 access.log?可能是另一个“内部虚拟连接”问题。呵呵,也许 servfault 大师可能是最适合你的人。
  • 你的操作系统是什么发行版,什么 apache 版本?这些可以帮助缩小问题的范围。
  • 我想通了,是文件系统因为我在会话目录中有 500K 文件而发疯了。去图

标签: apache


【解决方案1】:

你的机器有移动网站吗?

根据我的经验,我有同样的问题,因为低带宽设备连接到我们很大的移动网站。因此,apache 必须保持连接,直到客户端收到所有数据,并向服务器发送一个确认信号,表明它可以关闭连接。

您可以尝试使用“netstat -pant”查看 apache 当前等待的连接数。

【讨论】:

    猜你喜欢
    • 2011-04-01
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多