У меня встроенная система Linux, работающая на плате Atmel AT91SAM9260EK, на которой у меня есть два процесса, работающих в режиме реального времени. Процесс диспетчера периодически «пинги» рабочего процесса, используя очереди сообщений POSIX, проверяет работоспособность рабочего процесса. Обычно пинг «туда и обратно» занимает около 1 мс, но очень редко он занимает гораздо больше времени - около 800 мс. Нет других процессов, которые работают с более высоким приоритетом.Поиск проблем с задержкой (в стойлах) во встроенных системах Linux
Похоже, что стойло может быть связано с протоколированием (syslog). Если я перестаю регистрировать проблему, похоже, уйдет. Однако не имеет значения, находится ли файл журнала на JFFS2 или NFS. Никакие другие процессы не записывают на «диск» - просто syslog.
Какие инструменты доступны мне, чтобы помочь мне отследить, почему эти киоски происходят? Я знаю о latencytop и буду использовать это. Есть ли другие инструменты, которые могут быть более полезными?
Некоторые детали:
- версия ядра: 2.6.32.8
- Libc (Syslog функции): uClibc 0.9.30.1
- системный журнал: BusyBox 1.15.2
- Нет подкачки сконфигурировано [добавлено в править]
- корневая файловая система находится на TMPFS [добавлено в редактировать] (загружается из initramfs)
LTTng - это вариант, как описано здесь: http://lttng.org/blog/2015/02/04/web-request-latency-root-cause/ – camh