2017-01-11 12 views
-1

У нас есть довольно простой веб-сайт asp.net для веб-форм для того, чтобы пользователи могли делать онлайн-платежи/обновлять адресные данные. Проблема состоит в том, что из-за устаревших внутренних систем мы должны использовать некоторые архаичные веб-службы XML, которые после завершения требуют синтаксического анализа (службы возвращают строку XML, даже не правильно отформатированный XML). При входе пользователя в свою учетную запись происходит около 20 вызовов веб-службы. Когда серверы не слишком заняты, это занимает около 10-15 секунд при первой загрузке.Очень высокое использование ЦП в веб-приложении от очень немногих пользователей

У нас есть выделенный выделенный сервер, работающий по быстрому соединению. Это 64-разрядная версия Windows Server 2008 R2 Standard, двухъядерные процессоры Intel Xeon E5-2650 2.67Ghz, оперативная память 24 ГБ.

Если только около 20 участников вносят в него участие, в значительной степени приносит сервер на колени. 100% процессор, использование памяти идет правильно, 503 ошибки, вы называете это. Если бы я мог определенно привязать использование памяти/ЦП к вызовам веб-службы, например, тогда я могу попытаться что-то сделать.

Я не могу найти способ узнать это. Я пробовал debugdiag, но он сбой. Похоже, что Perfmon не оказывает мне никакой помощи.

Если я настроил Max Worker Processes в пуле IIS на что-либо, кроме 1, я просто получаю несколько процессов, конкурирующих друг с другом, чтобы занять 100%!

Я полностью застрял в данный момент и был бы признателен за любые подсказки/подсказки?

+0

Запуск профилировщика или использовать анализ дампа для анализа использования процессора является единственным возможным способом сказать причину. Очень вероятно, что у вас есть ошибка в коде. –

ответ

1

Хорошо, благодаря тем, кто просто отказался, не учитывая, что я провел много исследований и времени, изучая это!

Наша проблема (которая, вероятно, должна была быть замечена несколькими людьми по ключевым словам «XML» и «использование памяти») была с объявлением используемого XMLSerializer. Предыдущие разработчики сделали это таким образом, что его не удаляли, и как только я изменил его на статический класс, он сразу решил все.

Ссылка на то, что я использовал: http://dotnetcodebox.blogspot.co.uk/2013/01/xmlserializer-class-may-result-in.html