Назад | Перейти на главную страницу

Есть ли способ ограничить скорость подключения apachebench к серверу?

Я пытаюсь выполнить стресс-тест конкретного сценария PHP, который заставляет загружать очень большой файл, но особенно когда клиенты с медленным подключением делают запрос. Я также хочу одновременно проверить, как остальная часть сайта работает при такой нагрузке. У меня есть FiOS, поэтому выполнение нескольких десятков одновременных подключений на самом деле не приводит к очень долгой нагрузке на сервер (нас не волнует объем, поскольку мы не ожидаем большого количества одновременных подключений для этого файла, на самом деле всего несколько десятков медленные), и я хочу протестировать его, как если бы у меня было медленное соединение, скажем, 100 кб / сек. Есть ли способ ограничить скорость подключения ApacheBenchmark к сайту? Или есть другой способ временно ограничить мое подключение к этому сайту? Я использую Mac OS X локально, а сервер - это Windows, на которой запущен Apache.

Одна из возможностей - использовать набор функций IPFW OS X. IPFW - это программный брандмауэр OS X, который также поддерживает формирование трафика. Вот как его настроить (при условии, что в качестве IP-адреса веб-сервера используется 1.2.3.4):

  1. Откройте приложение Терминал, чтобы получить командную строку.
  2. Создайте виртуальное сетевое устройство
    sudo ipfw pipe 1 config bw 15Kbyte/s
  3. Создайте два правила, которые будут перенаправлять трафик на / с веб-сервера через виртуальное устройство:
    sudo ipfw add 1 pipe 1 ip from 1.2.3.4 to any sudo ipfw add 2 pipe 1 ip from any to 1.2.3.4

Теперь весь трафик между вашим компьютером OS X и веб-сервером будет ограничен до 15 КБ / с (при необходимости измените это значение).

Чтобы удалить конфигурацию для возврата к неограниченной пропускной способности:
sudo ipfw delete 1
sudo ipfw delete 2
ipfw pipe delete 1

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

Надеюсь это поможет.

Я рад, что ты это делаешь; многие люди не понимают, что их приложения будут вести себя принципиально иначе, как только они выйдут из лаборатории в «настоящий Интернет».

Общая категория того, что вы ищете, - это Эмулятор WAN. Они продают аппаратные устройства (и программное обеспечение), которые делают это, от 2 тысяч долларов и выше, если вы хотите делать это много, и не только изменять полосу пропускания, но и задержку, джиттер и другие факторы. Shunra и Linktropy - два хороших поставщика.

Но есть и много программных решений. Большинство из них работает на Linux, но я полагаю, что некоторых можно уговорить работать на OSX. Ванем хороший бесплатный. нс-2 это бесплатный симулятор, который отличается и, вероятно, более сложен, чем то, что вы хотите, вы создаете фальшивую сеть, и она моделирует это.

Или dummynet, но я добавлю это к хорошему ответу Урголла.