Недавно я настроил на своем компьютере тестовый сервер, работающий на виртуальной машине, чтобы я мог выполнять такие вещи, как интерактивная отладка с помощью XDebug. По большей части это довольно мило, но я столкнулся с проблемой, когда запускаю несколько запросов к серверу одновременно с одного и того же клиента.
Проблема в том, что сетевое соединение гостевого хоста на самом деле не существует как физическое соединение, поэтому оно будет работать так быстро, как позволит компьютерное оборудование. Обычно это не является большой проблемой, но я пытаюсь реализовать мониторинг загрузки файлов APC, и для этого требуется AJAX-запрос, выполняемый параллельно с загрузкой файла, для контроля его производительности. В реальном мире сеть будет вводить задержки и задержки и тому подобное, оставляя достаточно неиспользуемой полосы пропускания для запроса AjAX, выполняемого параллельно с загрузкой файла. Однако на тестовом компьютере запрос AJAX не может извлечь какие-либо данные с сервера, пока загрузка не будет завершена, поскольку для него абсолютно не остается доступной полосы пропускания.
Можно ли настроить какое-либо управление пропускной способностью на виртуальной машине (в Apache, PHP или какой-либо утилите Linux), которое могло бы ограничить пропускную способность, доступную для HTTP-запроса? Например, чтобы каждый запрос был ограничен 1 Мбит / с, но между клиентом и сервером может существовать несколько запросов одновременно? Я надеюсь, что если это можно будет сделать, это позволит AJAX-запросу извлекать свои данные во время загрузки, а не останавливаться до тех пор, пока загрузка фактически не завершится.
Я попробовал утилиту под названием IPRelay, но мне кажется, что я не могу заставить ее работать или, по крайней мере, не так, чтобы это ограничивало количество запросов.