Процессы PHP выполняются по одному, всегда беря 100% одного ядра

По большей части Вы никогда не будете, вероятно, замечать, запрещаете ли Вы Морского древоточца. Вы никогда не будете также, вероятно, замечать, что это включено.

3
задан 25 March 2012 в 16:08
1 ответ

Проблема закончилась тем, что были неправильные разрешения в папке, в которой PHP хранит файлы сеанса (sessions_ ). Либо сборка мусора никогда не работала с тех пор, как мы развернули этот сервер, либо она работала какое-то время, но мы изменили идентификатор пула приложений или что-то еще, чтобы у нового идентификатора не было доступа для удаления файлов. Во всяком случае, в этой временной папке у нас было более 2 миллионов файлов sessions. Это заняло несколько часов, но, в конце концов, команда «del / F / Q sessions_ » была завершена, мы перезапустили сайт, и все снова в порядке (от среднего времени загрузки страницы 60 секунд до гораздо меньше 1 секунды) . Я не знаю, исправило ли это "все объединенные процессы cgi-php.exe никогда не используют более одного ядра вместе" проблема или нет, но для меня было бы разумно, что механизм в реализации PHP для Windows, который создает эти файлы sess_, мог бы быть спроектирован таким образом, чтобы вызвать это явление (например, если он является однопоточным).

В любом случае, мораль этой истории в том, что если вы видите очень медленное и устойчивое увеличение потребления ЦП (которое, возможно, составляет 100% от одного ядра), а время ответа HTTP также увеличивается медленно, проверьте папку, где вы сохраняете свои файлы сеанса php (sess_ *) и смотрите, не вылетает ли проводник Windows при открытии этой папки! :)

(Кстати, это W2k8 (не R2), поэтому я думаю, что это IIS 7, а не 7.5)

Мораль истории в том, что если вы видите очень медленное и устойчивое увеличение потребления ЦП (которое, возможно, выравнивается на 100% от одного ядра), а время ответа HTTP также увеличивается медленно, проверьте папку, в которой вы храните сеанс php files (sess_ *) и посмотрите, не вылетает ли проводник Windows при открытии этой папки! :)

(Кстати, это W2k8 (не R2), поэтому я думаю, что это IIS 7, а не 7.5)

Мораль истории в том, что если вы видите очень медленное и устойчивое увеличение потребления ЦП (которое, возможно, выравнивается на 100% от одного ядра), а время ответа http также увеличивается медленно, проверьте папку, в которой вы храните сеанс php files (sess_ *) и посмотрите, не вылетает ли проводник Windows при открытии этой папки! :)

(Кстати, это W2k8 (не R2), поэтому я думаю, что это IIS 7, а не 7.5)

5
ответ дан 3 December 2019 в 05:47

Теги

Похожие вопросы