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

Сервер становится очень медленным и как найти утечку памяти

Встречаюсь с очень серьезной проблемой с сервером. Наши серверы раньше работали очень быстро. Но на этой неделе он становится все медленнее и медленнее. Ежедневно после этого процесс w3wp останавливался, и мы не могли снова подключиться к sharepoint. Когда никто не пользуется сервером sharepoint, мы отслеживаем процесс и обнаруживаем, что использование памяти становится все больше и больше. Затем мы проверяем журнал sharepoint, будет ли утечка памяти. Я хочу знать, как определить причину утечки памяти? И почему сервер становится все медленнее и медленнее?

Наилучшие пожелания,

вы написали свои собственные веб-части, рабочие процессы или события?

Если да, запустите инструмент SPDisposeCheck, который поможет вам проверить сборки, использующие SharePoint API, чтобы память обрабатывалась правильно.

code.msdn.microsoft.com/SPDisposeCheck

Или

Установили ли вы какие-нибудь обновления на этой неделе, проверьте панель управления?

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

Кроме того, проверьте диспетчер задач, чтобы узнать, использует ли процесс csrss.exe высокую загрузку ЦП> 90%. В MS есть задокументированная ошибка, при которой, если учетная запись пользователя повреждена, она будет вращаться. Исправление является своего рода «не исправлением», поскольку оно включает в себя безвозвратное удаление содержимого, резервную копию которого вы, возможно, не сможете должным образом сделать! Ниже приводится ссылка на сайт Microsoft MSDN:

"csrss означает" подсистема времени выполнения клиент / сервер.

Это часть подсистемы Win32, работающая в пользовательском режиме (при этом Win32.sys является частью режима ядра). Csrss - важная подсистема, которая должна работать постоянно. Csrss отвечает за окна консоли, создание и / или удаление потоков, а также за некоторые части 16-разрядной виртуальной среды MS-DOS ».

Ссылка

http://support.microsoft.com/kb/263201

Проверьте размеры памяти пула приложений на предмет каких-либо отклонений, и в частности - количество установленных веб-садов. Я готов поспорить, что у вас есть что-то вроде 10 последних; если это так, уменьшение числа до 1 или 2 мгновенно решит проблему.

Начните с использования счетчиков производительности для проверки памяти, используемой процессами w3wp.exe и owstimer.exe. Только эти процессы должен иметь отношение к SharePoint. (Есть список здесь много счетчиков но их совместное использование вряд ли сильно поможет.)

Убедившись, что проблема в одном из этих процессов, убедитесь, что проблема заключается в утечке памяти в коде .NET. В частности, монитор коллекций # Gen 2 является очень вероятным признаком того, что память не освобождается. Есть хорошее резюме других мониторов здесь.

Наконец, проверьте, для какого пользовательского кода происходит утечка памяти. Как сказал Крис, SPDisposeCheck это очень хороший способ проверить, правильно ли утилизируется память. Вы можете запустить его против конкретной пользовательской библиотеки DLL и очень быстро найти виновника. Имейте в виду, что иногда он дает ложные срабатывания, но никогда - ложноотрицательные.

У вас есть браузер Firefox, который простаивает на сервере? Я обнаружил - довольно последовательно - что, если я забываю закрыть свой браузер Firefox вечером, на следующее утро мой сервер ползет медленно, а если я отпущу его на 24 часа, он не отвечает.

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

Если я закрою браузер ежедневно, он будет работать бесконечно.

Мышь даже не двинется и не забудет обслуживать веб-страницы. Мой конфиг примерно такой:

  • WinXP Home Edition со всеми SP
  • Apache 2.2
  • Tomcat 5.x.x
  • Java / JRE / JSDK в их последней версии.
  • Автоматические обновления Firefox до последней версии
  • Древний «Intel Inside» и всего 512Мб и 60Гб

Я искал утечку ресурсов (дескрипторы, память и т. Д.), И память всегда была на том же уровне ~ 75-80% при умеренном разбиении на страницы. Количество операций ввода-вывода просто смешно и поднимается на 10 КБ за обновление. Потоки и дескрипторы примерно такие же, как когда проблема не возникает.

Я искал в Интернете ответы и сообщения об ошибках, но у меня ничего не выскакивает.

Кроме того, я не знаю, имеют ли другие браузеры такой же эффект.