Я разрабатываю POS-приложение, которое имеет локальную базу данных на каждом POS-компьютере и взаимодействует с сервером с помощью WCF, размещенного в IIS. Приложение развернуто у нескольких клиентов уже более года.
Около недели назад мы начали получать отчеты от одного из наших клиентов о том, что сервер, на котором размещен IIS, работает очень медленно. Когда я проверил проблему, я увидел, что пул приложений с моим процессом взлетел почти до 100% процессора на сервере с 8 процессорами.
Я проверил монитор активности SQL и сетевой том, и они не показали существенной перегрузки сверх того, что мы обычно видим.
При проверке потоков в Process Explorer я увидел множество потоков, неоднократно вызывающих CreateApplicationContext. Я попытался установить .Net 2.0 SP1, согласно некоторым сообщениям, которые я нашел в сети, но это не решило проблему и заменило вызовы функций на CLRCreateManagedInstance.
Я собираюсь с помощью adplus и windbg сделать дамп процессов IIS и попытаться выяснить, что не так.
Кто-нибудь сталкивался с чем-то подобным или имеет представление, какой каталог я должен проверить?
p.s. Эта же версия приложения развернута в другом заказчике, и там все работает нормально. Я также пробовал откатывать версии (даже очень старые версии), и он все равно ведет себя точно так же.
Изменить: ну, проблема решена, оказывается, у меня был SQL-запрос, который не ограничивал набор результатов, и когда клиент прошел определенное количество строк, он начал тормозить сервер. У меня ушло два дня, чтобы найти его, из-за всего окружающего шума в логах, но я дождался ночи и тогда сделал дамп, который сразу же показал мне запрос.