Tente agrupar seu comando tail, strace
se tiver:
strace -Tt -o /tmp/tail.trace tail -f /var/log/messages
Então, apenas para chutes recursivos malucos, você pode ajustar a saída do strace (não importa se isso quebra porque está saindo para um arquivo):
tail -f /tmp/tail.trace
O meu se parece com:
8:39:00 write(1, "ng SMAC\n", 8) = 8 <0.000026>
18:39:00 read(3, "", 0) = 0 <0.000019>
18:39:00 fstat64(3, {st_mode=S_IFREG|0640, st_size=92990, ...}) = 0 <0.000019>
18:39:00 fstatfs64(3, 84, {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=4807069, f_bfree=1924458, f_bavail=1680271, f_files=1221600, f_ffree=820806, f_fsid={-1331083162, -1313908385}, f_namelen=255, f_frsize=4096}) = 0 <0.000021>
18:39:00 inotify_init() = 4 <0.000033>
18:39:00 inotify_add_watch(4, "/var/log/messages", IN_MODIFY|IN_ATTRIB|IN_DELETE_SELF|IN_MOVE_SELF) = 1 <0.000041>
18:39:00 fstat64(3, {st_mode=S_IFREG|0640, st_size=92990, ...}) = 0 <0.000019>
18:39:00 read(4,
-T ativa o tempo e -T ativa o tempo gasto nas chamadas.
Pressione retorno 4 ou 5 vezes para criar um pouco de espaço vertical e aguarde até que ele pare de seguir. Espero que haja algumas pistas na saída.