Ответ 1
BUFFER называется буфером. (буфер 1 человека, возможно, после буфера установки apt-get)
Для командной строки bash формы
commandA | commandB
Я хочу добавить буфер размером ~ 1 МБ, который находится между commandA
и commandB
.
Я ожидал бы, что смогу сделать это с чем-то вроде формы
commandA | BUFFER | commandB
но какая команда используется для BUFFER
?
Примечание. Я хочу сделать это, чтобы разделить две команды, чтобы они лучше распараллеливались. Проблема в том, что commandB
обрабатывает данные в больших кусках, что в настоящее время означает, что commandA
блокирует до commandB
с помощью куска. Итак, все выполняется последовательно: - (
BUFFER называется буфером. (буфер 1 человека, возможно, после буфера установки apt-get)
Вы можете использовать
например.
process1 | mbuffer -m 1024M | process2
использовать буфер 1G
Существует еще один инструмент, pv
- просмотрщик каналов:
process1 | pv -pterbTCB 1G | process2
B
указывает размер буфера, здесь 1 GigibyteC
отключает splice
, что требуется для B
T
показывает уровень буфераpterb
- это переключатели отображения по умолчанию, необходимые из-за наличия T
pv
может быть доступен в системах, где mbuffer/buffer
не находится в официальных репозиториях (например, arch linux
).
альтернативно вы можете использовать именованный канал и запускать их параллельно:
mkfifo myfifo
commandB < myfifo &
commandA > myfifo
rm myfifo