У меня проблемы с производительностью на сайте, который мы создали, и я не совсем уверен, как начать его диагностику.
Краткое описание: у нас очень маленький сайт ( http://hearablog.com ) с очень небольшим трафиком, на хреновом выделенном сервере, CPU всегда очень высок, иногда он остается на уровне 100% в течение нескольких минут, и w3wp.exe берет большую часть этого. Типичный сценарий: w3wp.exe занимает 60%, а SQL Server - около 30%. Наша БД тоже довольно маленькая.
Длинное описание и более подробная информация:
Сайт размещен на очень дрянном сервере Cari.Net. С самого начала у нас было ощущение, что сервер работает не совсем корректно, например, некоторые вещи могут занять слишком много времени, так что это может быть проблемой конфигурации с самого начала. Это может быть также , что мы получаем виртуальный сервер , в то время как мы должны иметь специальную один, хотя у нас нет никаких доказательств того, что бы указать на это, за исключением того , что сервер имеет тенденцию быть довольно медленным , за исключение.
Сервер 64-разрядный Windows 2008 Standard, с SQL 2008 Express
Аппаратное обеспечение - Celeron 2,80 ГГц, 1 ГБ ОЗУ
Сайт разработан в ASP.Net MVC с использованием Entity Framework для доступа к данным.
Теперь, это довольно дрянное оборудование, но у меня были другие серверы с этими парнями, с эквивалентным (или хуже) HW, и производительность намного лучше, чем этот. Тем не менее, другие серверы имеют W2003 и SQL2005, и я использую ASP.Net "WebForms" 2.0, без MVC, без LINQ, без EF; так что я не уверен, что переход на 2008 год / другие вещи означает большой спад производительности.
Я регулярно обслуживаю файлы MP3 (5-20 Мб), что является немного необычной загрузкой, может быть, это вызывает какие-то проблемы?
Приведет ли это к тому, что w3wp будет использовать много процессора?Использование диска кажется очень низким. Память обычно составляет около 90%, но использование диска, кажется, указывает на то, что она не сильно страничит.
Я получаю тонны электронных писем каждый день о тайм-аутах SQL, для запросов, занимающих более 30 секунд, хотя все наши запросы довольно просты (или должны быть, но EF может облажаться).
Вот как выглядит монитор ресурсов в одном из этих «спринтов» на 100% ЦП, если там есть что-то полезное.
И снимок некоторых счетчиков производительности:
Теперь, что меня очень смущает, так это то, что загрузка процессора w3wp очень высока. Это не должно делать много на самом деле ... Так что мои вопросы ...
- Есть ли способ узнать "что" он делает? Может быть, даже профиль это?
- Какие счетчики производительности я должен смотреть?
- Можно ли этого ожидать при данной аппаратной / программной конфигурации?
- Это может быть вызвано какой-то ошибкой конфигурации, с чего бы вы начали искать?
Большое спасибо вам.
Даниэль Маглиола