Как записать данные на диск

Вопрос:

Как вывести данные (байтовый поток), записанные из приложения в файловую систему? (что-то вроде tcpdump, но для IO/ файла).

В идеале он должен быть в состоянии "прикрепить" и вывести поток во время его написания без специальной настройки приложения.

Контекст:

У меня есть приложение Java, которое развернуто на некоторых серверах. Это приложение использует JCL+Log4j для регистрации всех видов технических вещей.

С некоторыми из них я сталкиваюсь с довольно... необычной проблемой: часто файлы журналов загрязняются двоичными данными.

То же приложение, та же конфигурация, то же оборудование, та же ОС... другое поведение

Все мои журналы находятся здесь: если я обрабатываю файл журнала со "строками", все возвращается в нормальное состояние, но, как и у меня, скажем, 90% двоичного мусора, предварительная обработка файлов занимает огромное количество времени.

Цель:

Будучи в состоянии выяснить, если проблема в приложении Java /JVM или в OS/Hardware

1 ответ

Решение

Используйте strace, например:

strace -p PID -e write -s 1024

это сбросит системные вызовы записи процесса. Максимальный размер строки 1024.

Другие вопросы по тегам