bondpuoq
@bondpuoq
Web-программист с недавних пор

Как устранить проблему того, что приложение ASP.NET web forms сильно грузит сервер и тупит?

Добрый день всем!

Исходные данные:

Есть два ресурса (веб-сайта), которые написаны с использованием C#, ASP.NET Web Forms, одно более ранее, другое попозже.
Есть два веб-сервера, вычислительные мощности которых, положим, равны.

Проблема в следующем:
Более старый ресурс периодически начинает очень долго открываться и виснуть, иногда после долгого ожидания все такие открывается, бывает, что времени ожидания ответа от сервера не хватает, чтобы дождаться ответа.
Тех. поддержкой серверов занимается другой отдел, после звонка им выяснилось, что на сервере, при доступе к ресурсу запускается 3 процесса IIS, они грузят процессор сервера на 100%. Но, никаких скриптов особо тяжелых при загрузке портала не запускается. После перезагрузки сервера ресурс открывается.
Проблема в том, что никакой периодичности подвисания нет, обычно портал работает шустро и никаких зависов не наблюдается.

В общем вопрос такой, так как опыта пока не особо хватает, хотелось бы понять в каком направлении копать? Есть подозрение, что остальные два IIS процесса, которые грузят сервер - это два еще более старых ресурса, которые лежат физически на этом же сервере, но которые не используются (по крайней мере явно, но, возможно на них есть ссылки из более нового ресурса, который виснет, проблема в том, что удалить эти ресурсы безболезненно не выйдет, так как про внедрение зависимостей и слабую связность в те времена, когда писали те ресурсы, еще никто не слыхал)

Обновление
Использовали вот этот тул, чтобы посмотреть, что грузит,
https://technet.microsoft.com/en-us/library/cc7325...
указывает на ресурс, где лежит большой gridview, по сути больше там ничего нет, еще удивило, что если посмотреть ссылку ниже, ресурс ХХХ (сорри, корпоративная тайна), запущен в трех процессах, не уверен, что это нормально, хотя может это три домена, в которых запускается .NET приложение? Из скрина видно, что один из процессов использует значительно больше памяти. GridView формируется довольно сложным запросом в базу, но если бы база не откликалась, то был бы превышен интервал ожидания запросов...
  • Вопрос задан
  • 1117 просмотров
Пригласить эксперта
Ответы на вопрос 2
@dmitryKovalskiy
программист средней руки
Заодно убедитесь что проект полностью скомпилирован и собран, а не собирается на лету из открытого кода.
Касательно вашего обновления
Успокойте меня, скажите что сложный запрос для GridView получает минимум необходимых для отрисовки данных, а не фильтрует их внутри себя и пагинирует. это ОЧЕНЬ тяжело и это очень плохая практика для сколь нибудь нагруженых сервисов. БД должна отфильтровывать данные а не гонять здоровенные пакеты туда-сюда и озадачивать приложение доп. логикой фильтрации.
Ответ написан
Neuroware
@Neuroware
Программист в свободное от работы время
согласен с Дмитрий Ковальский, в любом случае нужно либо погасить либо вообще снести те сайты что не используются
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы