35

Я заметил, что iTunes, кажется, высасывает всю мою пропускную способность и не очень хорошо работает с другими приложениями, которые используют Интернет при загрузке. На самом деле, он даже не обеспечивает достаточную пропускную способность при просмотре iTunes Store при загрузке большого или большого количества файлов (подкасты, телешоу, большие приложения и т.д.).

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

Есть ли приложение или инструмент через Терминал для ограничения пропускной способности загрузки, которую получает iTunes, не мешая при этом веб-браузерам или другим приложениям?

ПО FOSS/GPL предпочтительнее, но платное программное обеспечение также может быть приемлемым.

10 ответов10

8

GUI:

CLI (фильтрация не зависит от порта, но может быть адаптирована):

Эти инструменты полагаются на порты или диапазоны портов в качестве критерия фильтра. Если вы не знаете, какие порты использует ваше приложение, вы можете проверить его документацию или использовать lsof во время работы приложения, чтобы узнать номера портов.

sudo lsof -i -P

Большинство или все инструменты используют ipfw, который официально устарел в пользу pf, поэтому не уверен, что эти решения будут работать на OS X 10.9 и выше.

5

Старый вопрос, но я попал в самую гущу подобной проблемы, поэтому решил ответить.

Проблема, вероятно, на самом деле из-за формирования трафика у вашего интернет-провайдера. Они настойчиво отдают приоритет трафику для известных поставщиков контента, стремясь предоставить клиентам более качественную потоковую передачу. Я бы сказал, что в некоторых случаях они зашли слишком далеко - я только что диагностировал аналогичную проблему, когда загрузка фоновых фотографий iCloud вызывала время пинга, превышающее 45000 мс.

Чтобы решить эту проблему, вы можете просто уменьшить общую пропускную способность, которую ваш компьютер будет использовать, чтобы не дать трафику интернет-провайдера полностью лишить пропускную способность всех других приложений. По иронии судьбы, это улучшит производительность просмотра на вашем компьютере, в дополнение к очевидному повышению производительности других компьютеров в вашей сети. Если, например, у вас есть ограничение 15 Мбит / с в нисходящем направлении, вы можете ограничить ваш компьютер только 12 Мбит / с, и алгоритм ISP больше не будет видеть необходимость агрессивно формировать ваш трафик:

sudo ipfw pipe 1 config bw 12Mbits/s
sudo ipfw add 1 pipe 1 tcp from any to me

В моем случае ограничивающим фактором была пропускная способность восходящего канала (ограниченная 1 Мбит / с моим провайдером), поэтому я выполнил следующее, что решило мою проблему:

sudo ipfw pipe 1 config bw 768Kbits/s
sudo ipfw add 1 pipe 1 tcp from me to any

Обратите внимание, что эти команды будут эффективны только до перезапуска, но чтобы отменить правило, просто сделайте следующее:

ipfw delete 1
4

Используйте IceFloor на [Mountain] Lion

4

Как насчет крыши? Это простой интерфейс для IPFW. (И с открытым исходным кодом.)

2

Что касается текущих разработок для OS X 10.10 , исполняемый файл ipfw обычно ссылаются, больше не доступен. Однако существует исполняемый файл pf , который может обрабатывать аналогичные конфигурации брандмауэра.

Существует графический интерфейс под названием "Murus" (http://www.murusfirewall.com), который вы можете использовать для настройки pf . Насколько я понимаю, он также активно поддерживает ограничение пропускной способности (из пользовательского интерфейса).

[РЕДАКТИРОВАТЬ]

Если кто-то не может обойтись без ipfw , вы можете попробовать скомпилировать его самостоятельно. Исходный код (из FreeBSD) доступен здесь:http://www.freebsd.org/cgi/cvsweb.cgi/src/sbin/ipfw/

Apple также публикует исходный код открытых проектов, которые она использует (d). ipfw можно найти здесь: http://www.opensource.apple.com/source/network_cmds/network_cmds-329.2.2/

2

Это действительно извращенная мысль, но вы можете использовать встроенные в Mac OS X ipfw и dummynet для написания правил для этого. Смотрите справочные страницы для этих инструментов.

1

http://github.com/zquestz/throttled это может быть то, что вы ищете, если вы еще не нашли его.

1

струйка это то, что вы после.

Единственные проблемы заключаются в том, что он не поддерживает исполняемые файлы, использующие kqueue, и не поддерживает статически связанные исполняемые файлы. iTunes должен быть в порядке.

0

Недавно я нашел (и до сих пор испытания того) Валлум , чтобы иметь контроль над своими приложениями:

Это MacOS Application Firewall, который позволяет вам ограничивать доступ приложений к Интернету. Пока это очень удобно, я только что создал профиль по умолчанию, который позволяет получить доступ ко всему, что я хочу, и профиль мобильной точки доступа, который ограничивает доступ к большему количеству приложений, когда я в пути.


Обновление: мне не удалось "уменьшить" пропускную способность для приложений, использующих Vallum, я только настраивал разные профили, где я ограничиваю большее / меньшее количество приложений.

-1

Наилучшим способом регулирования пропускной способности в macOS является использование Dummynet, который встроен в ядро macOS и работает с фильтром пакетов pf. По моему мнению, единственный способ эффективно настроить пропускную способность для каждого процесса - это определить, какие локальные порты связаны процессом, а затем создать соответствующие правила pf dummynet. Насколько я знаю, единственным приложением macOS, которое предлагает эту опцию, является Scudo (я разработчик Scudo, Vallum и Murus). Scudo 1.0 beta 3 в настоящее время доступна бесплатно, более подробную информацию о настройке пропускной способности для каждого процесса можно найти здесь: http://www.murusfirewall.com/forum/viewtopic.php?f=2&t=1919&p=3281#p3281

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .