Как записать данные на диск
Вопрос:
Как вывести данные (байтовый поток), записанные из приложения в файловую систему? (что-то вроде tcpdump, но для IO/ файла).
В идеале он должен быть в состоянии "прикрепить" и вывести поток во время его написания без специальной настройки приложения.
Контекст:
У меня есть приложение Java, которое развернуто на некоторых серверах. Это приложение использует JCL+Log4j для регистрации всех видов технических вещей.
С некоторыми из них я сталкиваюсь с довольно... необычной проблемой: часто файлы журналов загрязняются двоичными данными.
То же приложение, та же конфигурация, то же оборудование, та же ОС... другое поведение
Все мои журналы находятся здесь: если я обрабатываю файл журнала со "строками", все возвращается в нормальное состояние, но, как и у меня, скажем, 90% двоичного мусора, предварительная обработка файлов занимает огромное количество времени.
Цель:
Будучи в состоянии выяснить, если проблема в приложении Java /JVM или в OS/Hardware
1 ответ
Используйте strace, например:
strace -p PID -e write -s 1024
это сбросит системные вызовы записи процесса. Максимальный размер строки 1024.