由于进程停留在 D 状态,Apache Web 服务器达到最大负荷

由于进程停留在 D 状态,Apache Web 服务器达到最大负荷

我有一个 Apache 2.2.3 网络服务器,运行在具有 8G Ram 的 8 核 VM 上。

在负载测试期间,Web 服务器停止响应并且平均负载上升到 1000。

当我运行 Top 命令时,我看到大量 httpd 进程卡在“D”状态。我做了一些搜索,似乎“D”状态意味着不可中断的睡眠。

我跟踪了其中一个卡住的进程,下面是输出:

# strace -p 27843
Process 27843 attached - interrupt to quit
fcntl(34, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=1}

然后我执行了 lsof 来检查 fd 34 是什么,下面是输出:

httpd   27843 apache   34u   REG      8,1        0   131756 /tmp/.xcache.0.0.1292616489.lock (deleted)

这似乎可能与 xcache 的锁定问题有关,但我应该如何继续进行故障排除?

相关内容