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

Запуск MSMQ мучительно медленный при перезагрузке

В новой компании, в которой я работал, я заметил, что когда мы перезагружаем наш сервер, запуск службы MSMQ занимает немного времени. Он запускается автоматически и в Запуск государство для Veeery обширный период - мы касаемся часов, а не минут (на данный момент прошло 67 минут, а это еще не сделано)!

Мой опыт работы с MSMQ подобен опыту пингвинов с полетом - видел это, но никогда не делал этого сам, поэтому я не могу судить о целесообразности таких огромных затрат времени. Однако это кажется неправильным, и я чувствую, что за этим стоит что-то подозрительное.

У меня есть объяснение, что "это всегда было так". По этой причине мы все еще должны использовать огонь, а не электричество, чтобы получить свет ... Я не говорю, что ребята здесь неправы. Я просто хочу исследовать, что это" свежая кровь ". Очень нетерпеливая кровь, Могу добавить.

Мой гугл-фу произвел не так много, из чего я мог бы поумнеть (в основном, что делать, если он вообще не работает или работает неудовлетворительно во время оперативной стадии). Журнал событий ничего не говорит, потом вручную запускаются остальные службы (кроме стандартных). Медлительность при запуске кажется постоянной, но не иначе. Очереди опорожняются, и в остальном сервер ведет себя более или менее как нормальный человек. У нас достаточно места на жестком диске.

Итак, вопрос двоякий.

  1. Является ли такой длительный период запуска MSMQ приемлемым и ожидаемым?
  2. Что мне следует изучить поближе, если меня не устраивает такое поведение?

Система следующая.

У вас должно быть МНОГО сообщений. MSMQ требует времени, чтобы отобразить все сообщения в памяти. Возможно, вы проверили, что используемые вами очереди пусты, но проблема не в этих очередях. Обычно журнальные и системные очереди. Быстро проверьте папку system32 \ MSMQ \ storage - она ​​будет содержать МНОГО файлов размером 4 МБ. Вероятно, будет тысяча. Если да, проверьте, с какой буквы они начинаются. J - журнал, P - настойчивый. Затем используйте монитор производительности, чтобы просмотреть ВСЕ объекты MSMQ, а не только очереди, которые вы используете для своего приложения. Посмотрите также на очереди журналов, если у вас есть файлы J * .MQ. В конце концов вы обнаружите очереди, в которых хранятся сообщения. Я могу думать о нет другая причина вашего медленного запуска.

Исследуй. 90 минут для обычного перезапуска сервера - это болезненно. Если вам нужна высокая доступность, это означает, что вы находитесь на одном узле в течение 1,5 часов ТОЛЬКО ДЛЯ ПЕРЕЗАГРУЗКИ (что происходит довольно регулярно во время установки исправлений). Это означает, что вам технически необходимо 3-4 узла для обеспечения высокой доступности. Что-то здесь ОЧЕНЬ странно. Я лично с этим не согласен.

Я мог понять это, когда сервер падает. Если журнал транзакций должен быть откат, это может занять AGES. Но MSMQ обычно не обрабатывает транзакции, порождающие много гигабайт, И - перезапуск здесь не должен приводить к чрезмерным операциям.