Нужна ли файловая система необработанному устройству?

Если вы используете ControlMaster auto, вы уже повторно используете существующее TCP-соединение , но в любом случае TCP-соединение устанавливается очень быстро.

Задержка в 80 мс, вероятно, вызвана комбинацией:

  1. php shell_execзапуск новой оболочки (попробуйте exec?)
  2. дополнительные затраты на настройку нового канала ssh по существующему соединению
  3. Выполнение вашей команды на удаленном сервере через ваш новый канал ssh

Если вам нужны более быстрые ответы, сначала измерьте каждый из них по отдельности, а затем поработайте над уменьшением задержки в той части, которая медленнее. Если вы обнаружите, что #2 замедляет вас, как вы подозреваете, вы можете попробовать отправить свои команды по существующему постоянному каналу ssh, возможно, через именованный канал с вашей удаленной командой в read -while loop(будут применяться предостережения @symcbean ).

Примерно так

mkfifo /tmp/f_in
mkfifo /tmp/f_out
tail -f /tmp/f_in | ssh user@example.com 'bash -c "while read name; do echo hello \$name; done"' > /tmp/f_out &
time response=$(head -n 1 /tmp/f_out & echo dwurf > /tmp/f_in); echo $response

Ничто из этого никогда не будет таким же быстрым, как создание сетевой службы, которую вы можете запрашивать для получения информации. Я также ожидаю, что это будет довольно ненадежно.

0
13.01.2020, 16:31
1 ответ

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

Но есть много уровней кэширования/буферизации. Файловая система - это только один из них, система будет иметь свой собственный набор, и дисковое оборудование тоже. Если вы хотите еще приблизиться к устройству, вам потребуется доступ к другим интерфейсам.

Возможно, вам лучше использовать существующий инструмент, скажем, ddи hdparm. «Проверка производительности ввода-вывода диска с помощью dd» или «Тест скорости диска (Чтение/запись ):Производительность HDD, SSD в Linux» .

1
28.01.2020, 02:38

Теги

Похожие вопросы