Я хочу написать инструмент Java для мониторинга журнала FIX. Идея состоит в том, чтобы использовать SSH для входа на удаленный сервер, а затем получить вывод команды «tail -f xxx» на свой компьютер, остальное — это некоторая работа по анализу журнала. Когда я тестировал с помощью JSCH, независимо от того, что я читал информацию из bufferReader или непосредственно из InputStream, я обнаружил, что вывод был с задержкой, намного медленнее, чем результат запуска «tail -f xxx» в шпаклевке. Чего-то не хватает в моих кодах? Или это не лучший способ постоянно получать информацию из журнала с помощью JSCH?
Может ли JSCH достаточно быстро получать сообщения с удаленного сервера
Ответы (1)
Я нашел причину, ребята. Я использовал такую команду «tail -f xxx | grep zzz». Поскольку 'grep' использует буферизацию, я получил некоторую задержку вывода. Я перенес фильтрацию на свою локальную сторону, результат тестирования намного лучше.
person
user462872
schedule
15.01.2012
Если ваша версия поддерживает это (GNU grep поддерживает), использование
grep --line-buffered
может избежать этой проблемы (за счет некоторой дополнительной нагрузки на ЦП).
- person Andy Lynch; 17.09.2013