Как говорит Лучано в комментарии, скорее всего, причиной является дисковый ввод-вывод.
Причина получения большего количества процессов в том, что ваш конвейер запускает как минимум 5 процессов. Таким образом, вы должны увидеть как минимум 64 * 5 запущенных процессов. Некоторые из них также могут запускать несколько потоков.
Параллельный дисковый ввод-вывод очень непредсказуем (см. https://oletange.wordpress.com/2015/07/04/parallel-disk-io-is-it-faster/ ) и На практике невозможно сказать, сколько параллельных работ является оптимальным, поскольку это зависит от очень многих факторов.
Итак, чтобы оптимизировать ваш поток, я бы скорректировал количество заданий, пока вы не добьетесь максимальной пропускной способности. Вы можете использовать --joblog, чтобы узнать, как долго выполняется каждое задание.
Современный способ сделать это - использовать команду ip
. Например, в моей системе с активным беспроводным подключением я получаю:
$ ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000 link/ether 00:26:b9:dd:2c:28 brd ff:ff:ff:ff:ff:ff 3: wlp3s0b1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether c4:46:19:5f:dc:f5 brd ff:ff:ff:ff:ff:ff inet 192.168.1.4/24 brd 192.168.1.255 scope global wlp3s0b1 ← valid_lft forever preferred_lft forever inet6 fe80::c646:19ff:fe5f:dcf5/64 scope link valid_lft forever preferred_lft forever 16: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 100 link/none inet 123.167.217.2/24 brd 123.167.217.255 scope global tun0 ← valid_lft forever preferred_lft forever
Активные интерфейсы имеют как запись inet
, так и широковещательный ( brd
) адрес. { {1}} Вы можете отобразить все такие интерфейсы с помощью:
$ ip addr show | awk '/inet.*brd/{print $NF}'
wlp3s0b1
tun0
Если вам нужен только один, вы можете получить первый (только) с помощью:
$ ip addr show | awk '/inet.*brd/{print $NF; exit}'
wlp3s0b1
Оператор exit
сообщает awk
, чтобы остановить поиск
после обнаружения первого совпадения.