У меня была проблема в последние несколько дней, когда каждые 10-15 минут весь мой сервер перестал отвечать, отключая все TCP-соединения примерно на 3 минуты.
В конце концов я обнаружил, что соединения отключены, потому что все 16 ядер превращаются в надежный, стабильный 100% процессор в течение этих 3 минут.
Я активно пытаюсь выяснить, что приводит к максимальной загрузке ЦП, однако, поскольку все на сервере полностью зависает (даже в консоли), я не могу проверить достаточно быстро, чтобы узнать, что это такое.
Это, очевидно, большая проблема, и мне нужно немедленно решить ее. Есть ли способ зарегистрировать этот всплеск ЦП и отличить его от остального трафика?
Единственный ответ, который я могу сейчас придумать, немного взломан, но он может дать вам ответ. Во-первых, это процесс, вызывающий проблему. Запланируйте запуск чего-то вроде этого каждую минуту в командном окне:
wmic path Win32_PerfFormattedData_PerfProc_Process get Name,PercentProcessorTime
Или вы можете запланировать его и изменить командную строку, чтобы передать его >> в файл.
Это даст вам использование ЦП всеми запущенными процессами. Оттуда вы можете использовать такой инструмент, как ProcDump (http://technet.microsoft.com/en-us/sysinternals/dd996900) для отслеживания проблемного приложения и выгрузки информации о нем, когда процессор достигает определенного процента использования.
Надеюсь, это кому-то поможет.
Кое-что попробовать: в средстве просмотра событий сохраните журналы и откройте их на другом компьютере, чтобы у вас было время их просмотреть. Для этого выберите журнал, который вы хотите сохранить, и выберите действия - сохранить как. Если вы сохраните их как формат файла по умолчанию, вы можете открыть их в средстве просмотра событий на другом компьютере. Думаю даже рабочий стол винды. Вы также можете сохранить их в формате .csv.
Инструкции здесь http://technet.microsoft.com/en-us/library/cc749339.aspx