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