Уверен, что вы обновили свой вопрос, поскольку это, безусловно, делает мой первоначальный ответ (TFM, ниже) устаревшим.
Я сомневаюсь, что то, о чем вы просите, возможно в curl, так как я предполагаю, что каждый экземпляр curl работает независимо друг от друга.
Вы могли бы написать сценарий, который порождает экземпляры curl и устанавливает ограничение для каждого отдельного задания на основе общего количества заданий, но это не будет динамическим. Вы можете имитировать глобальную скорость, заставляя все свои команды curl работать через определенный порт или сетевой интерфейс, а затем использовать QOS для его регулирования.
Однако вам, вероятно, следует просто найти утилиту загрузки, которая обрабатывает очереди заданий и способна самостоятельно ограничивать скорость.
от TFM (man curl
)
--limit скорости
Укажите максимальную скорость передачи, которую вы хотите использовать curl. это
Функция полезна, если у вас ограниченная труба, и вы хотите, чтобы ваш
не использовать всю полосу пропускания.
The given speed is measured in bytes/second, unless a suffix is
appended. Appending 'k' or 'K' will count the number as kilo-
bytes, 'm' or M' makes it megabytes, while 'g' or 'G' makes it
gigabytes. Examples: 200K, 3m and 1G.
The given rate is the average speed counted during the entire
transfer. It means that curl might use higher transfer speeds in
short bursts, but over time it uses no more than the given rate.
If you also use the -Y/--speed-limit option, that option will
take precedence and might cripple the rate-limiting slightly, to
help keeping the speed-limit logic working.
If this option is used several times, the last one will be used.