IIS 7 - рабочий процесс более одного
Если я установлю рабочий процесс равным 1, мой пул приложений зависнет. если я установлю как минимум 6, все работает нормально.
но каждая статья, которую я читаю, говорит: "Не устанавливайте больше 1"
Итак, в этой практике я ошибаюсь? или кто не прав?
Конечно, я хотел бы использовать меньше памяти, процессор. и еще одна причина, по которой я ненавижу больше рабочих процессов, это сессии. это действительно раздражает меня.
сайт, который работает под пулом приложений, имеет более 20000 посетителей онлайн, я попытался отладить файлы дампа, но ничего интересного не нашел
Пожалуйста, дайте мне совет. благодарю вас.
1 ответ
Скорее всего, число с низким N зависает из-за состояния гонки в вашем коде.
С MaxProcesses=6 вы снижаете уровень параллелизма внутри процесса, отправляя меньше запросов большему количеству рабочих процессов.
Для отладки первоначальной причины:
- Настроить на 1 рабочий процесс
- Дождитесь зависания - возможно, вы захотите включить OrphanWorkerProcess для пула приложений, чтобы оставить зависший w3wp в памяти после его повторного использования.
- по-видимому, он перерабатывается, когда висит, верно? Сбой проверки связи, помеченные как неотвечающие события в журналах событий приложений и системы?
- Захватить дамп памяти процесса, пока он находится в подвешенном состоянии
- Загрузите этот дамп в DebugDiag 1.2 и посмотрите, что он предлагает
Как вы получили дамп памяти? (как правило, вы должны использовать отладчик той же разрядности, что и рабочий процесс, чтобы получить от него полезную информацию).