Сделать ограничение скорости в загружаемом файле Xsendfile
Есть ли возможность ограничить скорость загрузки в Xsendfile? Я хочу сделать ограничение скорости и ограничение соединения по Xsendfile
Перед загрузкой Xsendfile In Force Download ( fread()) я устанавливаю ограничение скорости следующим кодом:
if ($speed > 0 && ($this->bandwidth > $speed*$packet*1024))
{
sleep(1);
$packet++;
}
но в Xsendfile я не могу управлять скоростью таким образом!
Также я смог активировать или деактивировать резюме по заголовку Accept-Ranges, но я не могу сделать это в xsendfile to!
1 ответ
X-Sendfile разгружает передачу данных в ядро Linux, которое отправляет данные из файла непосредственно в сеть. Это избавляет от необходимости копировать данные файла в память пространства пользователя и, следовательно, использует меньше ЦП. Поскольку данные не проходят через какой-либо процесс в пользовательском пространстве, их невозможно регулировать вручную.
Вы можете ограничить полосу пропускания с помощью формирования трафика, но это вопрос конфигурации системы и, следовательно, здесь не по теме. Есть много вопросов о сбое сервера, например https://serverfault.com/questions/174010/limit-network-bandwith-for-an-ip https://serverfault.com/questions/191560/how-can-i-do-traffic-shaping-in-linux-by-ip, по-ф
Что касается диапазонов файлов, mod_xsendfile предположительно уже позаботился об этом (см. "Преимущества").