Действительно ли нам нужно перезапустить пул приложений IIS 7?Применяется ли та же практика к другим веб-серверам?

StackOverflow https://stackoverflow.com/questions/2043031

Вопрос

Мне просто интересно, почему перезапуск пула приложений IIS 7 считается хорошей практикой?Я знаю, что он очистит потерянные ресурсы, такие как потоки или состояние сеанса, но как другой веб-сервер справляется с подобными проблемами?Должен ли разработчик/администратор Java время от времени перезапускать weblogic/websphere/apache/tomcat, чтобы очистить память от мусора?

Это было полезно?

Решение

Обычно он используется для компенсации плохого программирования.Иногда ваши, иногда сторонние, в зависимости от библиотек, которые вы используете.

И, как и в случае со всеми рекомендациями, перед тем, как делать это, лучше всего посмотреть на вашу конкретную среду и убедиться, действительно ли это необходимо.

Начните с профилирования приложения.Простой способ — просто дать ему поработать некоторое время под нагрузкой.Посмотрите, стабилизируется ли использование памяти или оно постоянно растет?

Если он продолжает расти, вам нужно будет настроить IIS на периодическую переработку и исправить свое приложение.Если он вырастет до определенной точки, а затем успокоится, то все будет в порядке.Обязательно тестируйте даже крайние случаи вашего приложения.

Другие советы

С помощью IIS можно иметь неуправляемый код (лучший пример — COM-объект), который ведет себя не очень хорошо.В результате вы можете настроить IIS на периодическую переработку процессов, чтобы исключить утечку памяти, которая может возникнуть при использовании такого кода.

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

Если эта идея не существует на других серверах, возможно, это связано с тем, что другие серверы допускают только управляемый код.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top