Это командный шлюз, который можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
шлюз - инструмент для управления потоком данных с заданной скоростью
СИНТАКСИС
водовод [опции]
ОПИСАНИЕ
шлюз считывает ввод и выводит указанную скорость передачи данных. Он имеет различное управление скоростью передачи данных
механизмы, которые при необходимости можно настроить для конкретных случаев использования.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
варианты шлюзов следующие:
-a добавить вывод в файл (используется вместе с параметрами -t 'tee' или -O).
Вместо того, чтобы создавать новый файл или обрезать существующий, этот параметр добавляет
данные в файл.
-c задерживать
обеспечивает постоянное время задержки (в секундах) между записями. Эта опция регулирует
размер выходного буфера, чтобы попытаться сохранить постоянную скорость передачи данных. Размер выходного буфера
в этом режиме изначально устанавливается скорость передачи данных × задержка.
Этот параметр является взаимоисключающим с параметром -i и неявно включает параметр -o
параметры управления буфером overrun и -u underrun для динамического изменения размера
буфер чтения / записи для поддержания постоянной скорости передачи данных. По умолчанию это регулирует
буфер на основе общего объема переданных данных и времени на запись этого
(эквивалент режима поворота -s 0). Однако, если значение сдвига -s больше
чем 0, то новый размер корректируется на предыдущий размер, смещенный вправо на
значение сдвига.
-d отменить данные, не копировать их на стандартный вывод. Это заставляет шлюз действовать как приемник данных.
-D Режим
выберите режим задержки. Существуют различные подходы к тому, когда следует определять скорость передачи данных.
задержки. По умолчанию выполняется чтение, затем запись и, наконец, задержка для
каждая итерация. Однако опция -D позволяет выбрать режим задержки как
следующим образом:
режим задержка стратегия задержка Длительность
0 Чтение, запись, задержка (по умолчанию) 1 × время задержки
1 задержка, чтение, запись 1 × время задержки
2 Чтение, Задержка, Запись 1 × время задержки
3 Задержка, чтение, задержка, запись 2 × 1/2 времени задержки
4 Чтение, Задержка, Запись, Задержка 2 × 1/2 времени задержки
5 Задержка, Чтение, Задержка, Запись, Задержка 3 × 1/3 времени задержки
Обратите внимание, что в режимах 3 и 4 выполняется две задержки, каждая из которых составляет 1/2 времени задержки.
и режим 5 выполняет 3 задержки, каждая из которых составляет 1/3 времени задержки.
Режимы 1, 3, 5 могут рассматриваться как не совсем точные с точки зрения общего пробега.
продолжительность. В этих режимах перед окончательным концом файла возникает посторонняя задержка.
выполняется пустое чтение.
-e игнорировать ошибки чтения. Неудачное чтение заменяется нулями.
-f частота
укажите частоту обновления подробной статистики -v. По умолчанию 1/4
второй. Обратите внимание, что шлюз будет пытаться выпускать обновления, близкие к запрошенной частоте,
однако, если скорость чтения / записи меньше, чем частота, то обновления происходят
только со скоростью чтения / записи.
-h показать помощь
-i размер
укажите размер чтения / записи в байтах. Суффиксы K, M, G, T и P позволяют
укажите размер в килобайтах, мегабайтах, гигабайтах, терабайтах и петабайтах
соответственно. Этот параметр является взаимоисключающим с параметром -c.
В этом режиме задержки между записями используются для управления скоростью передачи данных. К
по умолчанию задержка основана на общем объеме переданных данных и времени
принято писать это. Это эквивалентно режиму настройки -s 0. Однако если
-s значение сдвига больше 0, тогда новая задержка корректируется предыдущей
задержка сдвинута вправо на величину сдвига.
Можно вызвать специальный гибридный режим управления скоростью, также используя -o переполнение и
-u параметры потери значимости, чтобы также включить динамическое изменение размера буфера чтения / записи. К
по умолчанию это настраивает буфер на основе общего объема переданных данных и
время написать это (эквивалент режима поворота -s 0). Однако если -s
значение сдвига больше 0, то новый размер корректируется на предыдущий размер
сдвиг вправо на величину сдвига.
-I файл
читать ввод из файла, а не из стандартного ввода.
-m размер
укажите количество данных для обработки, размер по умолчанию в байтах, но K, M, G, T
суффиксы и P могут указывать размер в килобайтах, мегабайтах, гигабайтах, терабайтах и
Петабайты соответственно. Если этот размер меньше размера записи, то запись
размер усекается до размера -m.
-n нет контроля скорости. Это просто прямая копия данных, очень похожая на кот и все скорости передачи данных.
нельзя использовать элементы управления. В сочетании с параметрами -v и -S можно наблюдать
скорости передачи данных копии.
-o обнаружение переполнения и изменение размера буфера чтения / записи, чтобы попытаться остановить переполнение. Этот
будет сжимать буфер каждый раз при обнаружении последовательных переполнений. Смотрите -s
опция для получения подробной информации о механизме регулировки размера.
-O файл
отправить вывод в файл, эквивалент -dt file
-p включить подробную статистику, показывающую% прогресса и информацию о времени прибытия. Это действительно только
с использованием опции -I или -m и если размер файла не равен нулю. См. Параметр -v для
более подробно.
-P pid-файл
запишите идентификатор процесса шлюза в файл pidfile. Файл удаляется при шлюзе
выходы.
-r скорость
укажите скорость передачи данных в байтах в секунду. Суффиксы K, M, G и T могут указывать
скорость в килобайтах / сек, мегабайтах / сек, гигабайтах / сек и терабайтах / сек
соответственно. Эта опция должна быть предоставлена всегда, кроме случаев, когда опция -n
используемый.
-R не читать из stdin, вместо этого читать случайные данные из / dev / urandom.
-s сдвиг
изменить сдвиг регулировки скорости. Это масштабный коэффициент настройки скорости передачи данных, используемый
параметры -r, -c, -o и -.
Для параметра -r задержка между каждой записью контролируется изменением параметра
предыдущая задержка путем добавления или вычитания предыдущей задержки, сдвинутой вправо на этот
значение сдвига. Чем больше значение сдвига, тем больше времени требуется для регулировки вверх / вниз до
указанная ставка. Чем меньше значение сдвига, тем быстрее достигается
оптимальная задержка, однако, это может привести к сильным колебаниям скорости на
начало, потому что задержка варьируется на большую величину, вызывая большие перерасходы и
проседания. Значение сдвига 3 хорошо подходит для наиболее высоких скоростей.
Для параметров -c, -o и -u размер буфера изменяется путем добавления или
вычитание предыдущего размера, сдвинутого на величину сдвига. Опять же, значение сдвига 3
хорошо работает для самых высоких скоростей.
Если значение сдвига установлено на 0, то механизм настройки регулировки скорости сдвига срабатывает.
явно отключен, и скорость передачи данных регулируется в зависимости от общего объема данных
перенесено и время написать это.
Небольшие значения сдвига 1 и 2 могут вызвать быстрые колебания до скорости передачи данных.
демпфирование полностью вступает в действие. Значение -s 0 (по умолчанию) рекомендуется для
точная низкоскоростная передача данных.
-S распечатать различную статистику производительности и буферизации в stderr, когда конец файла
достиг.
-t файл
вывод тройника в указанный файл. Вывод записывается как в стандартный вывод, так и в названный
файл. По умолчанию файл будет создан, если он не существует, или перезаписан, если он
уже существует. Используйте параметр -a для добавления к существующему файлу.
-T t остановить тест среза через t секунд. Также можно указать единицы времени в секундах,
минуты, часы, дни или годы с суффиксом s, m, h, d или y.
-u обнаружение опустошения и изменение размера буфера чтения / записи, чтобы попытаться остановить опустошение. Этот
будет расширять буфер каждый раз при обнаружении последовательных опустошений. Буфер
не будет расширяться более чем на 4 МБ. См. Параметр -s для получения подробной информации о
механизм регулировки размера.
-v писать подробную статистику в stderr. По умолчанию это будет отображать текущие данные.
скорость, последнее изменение скорости передачи данных ('-' = недогрузка, '+' = переполнение), общее количество байтов
передано, продолжительность и текущий размер буфера.
С параметром -p отображается статистика выполнения. Это отобразит
текущая скорость передачи данных, общее количество переданных байтов, продолжительность, процент выполнения на данный момент
и предполагаемое время до завершения. Обратите внимание, что оценка доступна с использованием
параметры -I и -m, и если размер файла не равен нулю.
-V распечатать информацию о версии до стандартного и успешно выйти.
-w предупреждать, если происходит длительный период непрерывного снижения скорости передачи данных, выдается предупреждение
только раз. Чтобы преодолеть опустошение, увеличьте размер буфера чтения / записи -i или используйте
параметр -u для автоматического расширения буфера чтения / записи. Слишком много недогрузок подразумевает
что слишком маленький буфер или недостаточно ЦП, чтобы не отставать от необходимого
скорость передачи данных.
-z не читать из стандартного ввода, вместо этого генерировать поток нулей (эквивалентно чтению
из / dev / zero).
СИГУСР1 СИГИНФО
Отправка SIGUSR1 (или SIGINFO в системах BSD) переключит режим подробной скорости передачи данных.
вкл выкл.
СИГУСР2
Включение / выключение опций опустошения / переполнения (-u, -o).
ПРИМЕЧАНИЯ
Если не используются параметры -i или -c, то по умолчанию шлюз использует размер буфера записи, равный
1/32 скорости передачи данных и находится в пределах от 1 байта до 64 МБ. Шлюз попробует
чтобы поддерживать постоянную скорость передачи данных, регулируя задержку между записями. Чтобы настроить это, см.
-s вариант.
ПРИМЕРЫ
Чтение / dev / zero и запись размером 4K со скоростью 1 МБ / с в файл example.dat.
cat / dev / zero | шлюз -i 4K -r 1M> example.dat
Прочтите 32 МБ из / dev / zero и напишите со скоростью 64 КБ / сек в стандартный вывод с обратной связью
длительность и ETA на stderr с использованием записи буфера 4K и сдвига настройки 4.
cat / dev / zero | шлюз -r 64K -vp -m 32M -i 4K -s 4
Сгенерируйте поток нулей и напишите со скоростью 1 МБ / с в фифо с именем myfifo с
управление буфером опустошения и переполнения
шлюз -z -u -o -r 1MB -O myfifo
Записывать случайные данные со скоростью 5 МБ в секунду в файл myfile, делая запись каждые 0.1 секунды.
шлюз -R -r 5M -c 0.1> myfile
Запишите нули в файл example-file фрагментами по 64 КБ и измерьте скорость записи как грубую
тест пропускной способности
шлюз -nzSv -f 0.1 -i 64K> файл-пример
Считайте данные с somehost.com через порт 1234 со скоростью 2 МБ в секунду и удалите данные,
например, это приемник данных с постоянной скоростью.
nc somehost.com 1234 | шлюз -d -r 2MB -i 8K
ВЫХОД статус
Шлюз устанавливает статус выхода следующим образом:
Статус Decription
0 Выход успешно.
1 Предоставлен недопустимый или выходящий за пределы допустимый диапазон.
2 Ошибка открытия файла.
3 Ошибка сна.
4 Не удалось узнать время суток.
5 Ошибка настройки обработчика сигнала.
6 Ошибка чтения (файл или стандартный ввод).
7 Ошибка записи (файл или стандартный вывод).
8 Ошибка выделения буфера.
Используйте шлюз онлайн с помощью сервисов onworks.net