У меня есть виртуальная машина Windows Server 2008 R2 в Amazon EC2, работающая под управлением SQL Server 2008 R2. Каждые три часа, как по часам, загрузка ЦП сервера будет увеличиваться до 100% примерно на 10 минут или около того, до такой степени, что приложения, пытающиеся подключиться к этому экземпляру SQL, получат ошибки тайм-аута при квитировании перед входом в систему. Когда сервер перезагружается, точное время, когда это происходит, меняется, но это всегда каждые три часа, поэтому я подозреваю, что это вызвано тем, что запланировано запускать при запуске, а затем повторяться каждые три часа.
Я использовал Resource Monitor, чтобы попытаться найти проблему, и я заметил, что использование ЦП в это время обычно распределяется относительно равномерно (колеблется в основном в 40-50 секунд) между sqlservr.exe и svchost.exe (netsvcs) процессы. Разбивка служб в мониторе ресурсов обычно показывает общее использование службы с небольшими колебаниями, но всегда высокими (80-90), разделенными между MSSQLSERVER и одной другой службой. Однако то, что представляет собой другая служба, каждый раз меняется, что очень затрудняет определение проблемы. В эти периоды я наблюдал следующие службы, работающие вместе с MSSQLSERVER:
С таким разнообразным списком служб я не совсем уверен, с чего начать, кроме SQL Server, поэтому я попытался использовать некоторые запросы с системными представлениями, чтобы найти запросы с высокой загрузкой ЦП примерно в это время, но те, которые получают текущие запросы, будут блокируется до тех пор, пока не закончится всплеск, а исторические данные, похоже, не показывают ничего значительного. Я также пробовал запустить трассировку в Profiler, но единственные запросы с какой-либо значительной продолжительностью или использованием ЦП в эти периоды являются частью процесса, который выполняется каждые 4 минуты в течение всего дня. Несмотря на то, что этот процесс часто вызывает скачки ЦП, вне этих периодов он длится всего несколько секунд, обычно 5 или меньше, и в это время он не обрабатывает больше данных или делает что-то более интенсивное, поэтому я сомневаюсь, что это корень проблемы.
Единственные события, которые я вижу в журнале событий Windows примерно в это время, достойные какого-либо упоминания или с любой согласованностью, - это ошибки тайм-аута при попытке доступа к экземпляру SQL. Журналы ошибок SQL Server также не показывают ничего примечательного или последовательного в это время. Никакие задания агента или запланированные задачи Windows не выполняются по расписанию, соответствующему проблеме.
Кто-нибудь еще видел подобную проблему? Что еще я могу проверить или сделать для устранения этой проблемы? Заранее спасибо!