Назад | Перейти на главную страницу

Веб-сервер Apache исчерпал себя из-за зависания процессов в состоянии D

У меня есть веб-сервер Apache 2.2.3, работающий на 8-ядерной виртуальной машине с 8G Ram.

Во время нагрузочного теста веб-сервер перестал отвечать, и средняя нагрузка выросла до 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, но как мне продолжить устранение неполадок отсюда?