Сайт Sharepoint занимает время, чтобы загрузить первым делом с утра - PullRequest
11 голосов
/ 11 декабря 2008

Наша команда создала сайт, используя Sharepoint и несколько пользовательских веб-частей. Мы заметили, что при первом доступе к сайту утром загрузка сайта занимает некоторое время. Последующие доступы в порядке. Мы подозреваем, что Sharepoint переиндексирует свои списки и т. Д.

Кто-нибудь еще видел эту проблему с Sharepoint? У кого-нибудь есть предложенное исправление?

Ответы [ 6 ]

17 голосов
/ 11 декабря 2008

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

Google для "сценария разминки sharepoint" даст несколько результатов, , включая , что фактически объясняет ту же ситуацию: -)

3 голосов
/ 11 декабря 2008

Я предполагаю, что рабочие процессы пула приложений настроены на перезапуск в определенное время каждую ночь в IIS, что в первую очередь вызывает задержку утром. Щелкните правой кнопкой мыши пул приложений в IIS -> Свойства -> и посмотрите, где написано «Перезапуск рабочих процессов в следующие моменты:», чтобы убедиться в этом.

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

Рекомендации: использование одноразовых объектов Windows SharePoint Services

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

2 голосов
/ 11 декабря 2008

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

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

2 голосов
/ 11 декабря 2008

Нет. Я предполагаю, что скомпилированные компоненты в приложении были выгружены из памяти и должны быть перезагружены в кэш. Это происходит и с моими веб-приложениями ASP.NET. Я особенно обращаю на это внимание на сайтах контроля качества, которые получают не так часто, и поэтому почти всегда удаляются из кэша, когда я обращаюсь к ним.

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

1 голос
/ 19 октября 2009

Если вы работаете с Windows Server 2008 R2, теперь имеется бесплатное расширение для разогрева приложений для IIS 7.5 . На момент написания статьи он в бета-версии.

Это «подогревает» пул приложений, настроенный напрямую из IIS, и может также расширяться с помощью пользовательской логики инициализации.

Расширение Application Warm-Up больше не доступно и будет «перенастроено для следующей версии IIS» в соответствии с Microsoft .

1 голос
/ 11 декабря 2008

Конечно, Бьорн выделит основную причину «проблемы». Пул приложений перерабатывается в течение ночи.

Однако, это должно занять около 30 секунд.

Если это займет около 2 или 3 минут, подумайте о том, чтобы прочитать это . Если у вашего сервера нет доступа к Интернету, это объясняет, почему это так медленно. Просто попробуйте загрузить список отзыва сертификатов с сайта microsoft.com, чтобы узнать, имеет ли это значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...