Замедление HTTP-ответа IIS / SharePoint с течением времени

1

У меня есть однопоточный искатель С#/. NET, который загружает файл с сервера SharePoint (размещенный на виртуальной машине). Сервер имеет около 345 тыс. Файлов и использует аутентификацию NTLM по умолчанию. Для загрузки и обработки целых файлов использовалось около 12 -1 3 часа. Теперь, загадочно, тот же процесс занимает около 21-24 часов. Я регистрирую время загрузки (каждые 100 файлов) в файле журнала и вижу разные времена для каждой партии. См. Ниже:

...
12:04:22.521 Scanned items: 1700, Duration(ms): 15850
12:04:38.028 Scanned items: 1800, Duration(ms): 15506
12:04:54.236 Scanned items: 1900, Duration(ms): 16209
12:05:11.115 Scanned items: 2000, Duration(ms): 16879
...
12:08:02.109 Scanned items: 3000, Duration(ms): 14945
12:08:17.444 Scanned items: 3100, Duration(ms): 15334
...
...
17:10:08.835 Scanned items: 90600, Duration(ms): 33150
17:10:49.208 Scanned items: 90700, Duration(ms): **40373**
17:11:29.363 Scanned items: 90800, Duration(ms): **40155**
17:12:08.098 Scanned items: 90900, Duration(ms): 38735
17:12:46.007 Scanned items: 91000, Duration(ms): 37908
17:13:24.165 Scanned items: 91100, Duration(ms): 38158
17:13:52.292 Scanned items: 91200, Duration(ms): 28127
17:14:17.860 Scanned items: 91300, Duration(ms): 25568
17:14:43.569 Scanned items: 91400, Duration(ms): 25709
...
...
09:36:46.476 Scanned items: 345000, Duration(ms): 18533
09:37:05.680 Scanned items: 345100, Duration(ms): 19203
09:37:23.994 Scanned items: 345200, Duration(ms): 18315
...

Первоначально для загрузки партии из 100 файлов использовалось около 14 -1 6 секунд. Теперь я вижу, что для обработки той же партии иногда требуется до 40-45 секунд. Файлы на сервере SharePoint имеют одинаковый размер (~ 1 МБ каждый, документы MS-слова).

Я уже профилировал приложение, но не смог обнаружить каких-либо ощутимых различий (между теперь и более ранним кодом) на стороне клиента (Crawler). Я использую UnsafeAuthenticatedConnectionSharing = true и уже пробовал разные значения для ServicePoint.ConnectionLeaseTimeout, включая -1 (никогда не тайм-аут) и PreAuthenticate = false (поскольку истина замедляется для NTLM).

Я уже устранил проблемы с локальным дисковым вводом-выводом, записав загруженные файлы в поток System.IO.Null. Поведение GC приложения также хорошо (всегда <1% процессорного времени), отсутствие всплесков.

Я не знаю, что может привести к почти 100-процентной деградации производительности и почему тактизация пакетного процесса будет меняться так сильно (от 14 сек /100 файлов до иногда 45 сек /100 файлов)?

Спасибо заранее, за любые указатели.

-BJ

  • 0
    Можете ли вы опубликовать соответствующий код, который вы используете для загрузки файлов? ВМ делится оперативной памятью / процессором с другими? Сеть в порядке? У вас есть антивирус на вашем компьютере? Брандмауэр ? Сколько у вас есть sharepoint-интерфейсов? Сайт коллекции БД в порядке? Сколько стоит большой?
  • 1
    Судя по тому, что вы описали, проблема, скорее всего, связана с разделением ресурсов. У вас есть возможность наблюдать за тем, что происходит на сервере, когда ваша загрузка замедляется? Я бы проверил пропускную способность сети и потребление ресурсов процессора другими процессами на сервере.
Теги:
performance
sharepoint
httpwebrequest

1 ответ

0

Вывод моего собственного ответа, поскольку он может помочь кому-то.

В нашем случае после устранения каких-либо проблем на стороне клиента (искателя) мы начали расследование сервера SharePoint (SP). БД SP и SQL Server были совместно размещены на виртуальной машине, и со временем мы заметили, что сервер SP будет регистрировать следующую ошибку:

System.ServiceModel.ServiceActivationException: служба '/_vti_bin/client.svc' не может быть активирована из-за исключения во время компиляции. Сообщение об исключении: Ошибка проверки ворот памяти, поскольку свободная память (1041514496 байт) составляет менее 5% от общей памяти. В результате служба не будет доступна для входящих запросов.

Аналогичная проблема также обсуждается в следующей ссылке:

После исправления конфигурации сервера SP производительность была восстановлена на (почти) более раннем уровне.

-BJ

Ещё вопросы

Сообщество Overcoder
Наверх
Меню