Почему пропускная способность iperf выше, чем у dd-›netcat

Я хочу измерить фактическую скорость интерфейса 1Gb Ethernet на моем встроенном устройстве с двухъядерным процессором ARM cortex-A8 600 МГц, подключенном к ПК с другой стороны.

Я попытался проверить это с помощью клиента iperf, установленного на устройстве, и сервера iperf, установленного на ПК. И я получил следующие результаты

Затем я изменил клиент iperf на следующую команду:

$ dd if=/media/sd0p1/Videos/20180221_164356.mp4 bs=1M | nc 192.168.0.2 5001

И в этом случае пропускная способность примерно в 2 раза меньше, чем с iperf: dd-nc-results.

Я также прочитал этот пост, а затем выполнил 2 экземпляра конвейера dd->nc на стороне клиента, который отправляет данные в iperf на стороне ПК и получил этот результат. Также я выяснил, что в случае dd->nc мой процессор загружается почти полностью. У меня два вопроса:

  1. Какой из этих случаев я могу считать более точным способом определения истинной пропускной способности.
  2. Как изменятся эти результаты, когда я начну запускать больше приложений на своем устройстве? Правильно ли я понимаю, что при увеличении числа рабочих процессов пропускная способность должна падать.

person Ilya    schedule 22.03.2018    source источник