HTTP Получение и запись в сетевой ресурс намного медленнее, чем запись на локальный диск - PullRequest
2 голосов
/ 21 декабря 2011

У меня есть C# app, который переносит данные из website в новую систему наших клиентов. Чтобы получить файлы из существующей системы, мы используем HttpWebRequest, как только мы получим ответ, он записывается на диск, и мы переходим к следующему файлу. Довольно прямо вперед. Пропускная способность, которую мы имеем в среднем, составляет ~ 140 Мбит / с. Используя несколько потоков (от 8 до 12) и от 5 до 7 экземпляров процесса, я могу достичь целевой пропускной способности, но только если я пишу на локальный диск. Если я изменю его на запись в NAS drive, пропускная способность снизится как минимум вдвое.

Я пытался писать на разные устройства NAS, а также тестировал на разных машинах с похожими результатами.

Я пытался запустить приложение на нескольких машинах, записывая данные на один и тот же NAS, и это помогает, но у меня до трех машин, и я до сих пор не соответствовал моей единственной машине, пишу на производительность локального диска.

Я еще не пробовал работать с двумя сетевыми картами (они настраивают тестовую среду для меня, чтобы попробовать это после Рождества) Это единственное, о чем я могу подумать, что это может помочь, хотя я сбит с толку, поскольку сетевая карта на всех машинах гигабитная, так что я бы этого не сделал, хотя я ее максимально увеличивал.

Это среда Windows. «Windows 7, Windows Server 2008».

Существуют ли какие-либо настройки реестра, которые могут помочь? Я изучил NetworkThrottlingIndex , но, похоже, это применимо только к входящим данным и только в том случае, если также работает мультимедийное приложение (медиаплеер, IE и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...