w3wp.exe имеет высокую загрузку процессора при каждом запросе

Я использую сервер Windows 2008 (VPS с 1 ГБ ОЗУ) с установленными SQL Server Express и IIS 7. На нем я размещаю веб-сайт NopCommerce 1.7 с базой данных около 26 000 товаров.

Прямо сейчас я единственный пользователь этого веб-сайта (он находится в разработке), и у меня довольно низкая производительность. Чтобы быть более конкретным, каждый раз, когда я делаю запрос, рабочий процесс на несколько секунд использует 90–100% ЦП. Это я или это много для сайта NopCommerce с одним пользователем? Есть идеи, почему это происходит, и что я могу сделать, чтобы исправить это или продолжить расследование?

PS: рабочий процесс использует от 100 до 400 МБ памяти (частный рабочий набор), а SQL Server с этой базой данных - около 160 МБ. Есть ли у вас какие-либо предложения, кроме очевидного, по увеличению оперативной памяти? Я собираюсь получить еще один ГБ, но боюсь, что это не решит проблему использования процессора.


person Tudor Carean    schedule 26.10.2010    source источник
comment
Я не хочу утверждать очевидное, но, пожалуйста, получите больше оперативной памяти. Как минимум еще 3Гб. Бедный сервер.   -  person Marko    schedule 26.10.2010
comment
прямо сейчас сервер использует 1,6 ГБ памяти (совершено). Это означает, что на диске не менее 600 МБ. Я думал получить 1 ГБ, так как это должно покрыть текущие требования к памяти. Есть ли причина, по которой я мог бы получить дополнительные 3 ГБ? Бюджет не очень большой   -  person Tudor Carean    schedule 26.10.2010
comment
Извините, я новичок в sharepoint, и я обычно подключаюсь к этому процессу для отладки моего портала, спасибо, что у меня была возможность прочитать об этом, и я знаю, что это рабочий процесс IIS. Я проголосовал за удаление своего сообщения, удачи.   -  person A_Nabelsi    schedule 26.10.2010
comment
Какое распределение ЦП у вас есть на VPS?   -  person Greg B    schedule 03.11.2010
comment
Вы это решили? У меня похожие проблемы на некоторых страницах администратора. Список клиентов - один из них, и на данный момент в нем только пользователи !!   -  person Andrew    schedule 10.02.2012


Ответы (1)


Вы уже заявляли, что собираетесь получить больше оперативной памяти, но не удивляйтесь, насколько нехватка оперативной памяти может повлиять на процессор. Если ваша оперативная память не может эффективно удерживать большие объекты из-за нехватки места (и я бы сказал, что использование 40% доступной оперативной памяти соответствует требованиям), то ЦП должен работать усерднее, чтобы загружать и выгружать вещи из виртуальной памяти. 90% - это немного перебор, но с учетом тех характеристик сервера, которые вы даете, это не невозможно.

Скорее всего, проблема в том, что где-то в вашем коде есть дыра. Я предполагаю, что у вас либо бесконечный цикл, либо прямая утечка памяти (ресурсы открываются во время запросов, которые, возможно, не закрыты?). Лучше всего получить инструмент диагностики отладки IIS, установить его и настроить отчеты для узнать, что происходит прямо на сервере.

person Joel Etherton    schedule 26.10.2010
comment
Как использовать инструмент диагностики отладки IIS для получения 3 дампов памяти с интервалом в 10 секунд, когда потребление ЦП превышает пороговое значение в 50% на более чем 10 секунд. (нормальная загрузка ЦП до этой проблемы составляла 5-10%) программно - person Kiquenet; 02.07.2018