Передача больших данных в миграции данных - PullRequest
1 голос
/ 30 марта 2011

У нас есть набор приложений, которые передают данные из одной системы в другую в пределах одной сети.Они используют WCF C # и делают что-то вроде одновременной передачи 1000 объектов.(после получения данных приложение-получатель уведомляет отправителя о необходимости отправки дополнительных данных)

Я хочу оптимизировать процесс, передавая больше данных за определенный промежуток времени, и думаю, какой из следующих двух вариантов лучше:

  1. Значительно увеличьте количество переноса.Чем больше, тем лучше, сделайте это как 50000 объектов.Это сократит время, затрачиваемое на данные при перемещении из пространства пользовательских процессов на сетевую карту, делая это массово

  2. Сделайте количество передачи равным чуть менее 1460, что является MTU нашего сетевого пути.Например, если размер объекта составляет 100 байт, передайте 12 объектов, оставив некоторое количество http и мыльных заголовков.это позволит избежать повторной сборки сегментов TCP и ускорить получение.(это позволит избежать проблем с чрезмерным использованием ОЗУ)

Подскажите, пожалуйста, какой вариант лучше, или я могу попробовать другую идею для ускорения передачи?

1 Ответ

1 голос
/ 30 марта 2011

Не думаю, что ваша проблема в скорости передачи на сетевую карту.

Расскажите, пожалуйста, подробнее об этой миграции данных. Это происходит из простого файла?- Вы вообще меняете данные?- Какой тип данных вам нужен на другом конце?

Я предполагаю - но я ожидаю, что вы, должно быть, меняете данные.Если вам просто нужно переместить данные, есть много быстрых способов переместить большой файл (например, ftp или другой стандарт).

Если вы меняете данные, вероятно, этот процесс замедляет вас -запустить профилировщик в своей программе и оптимизировать его.

...