我有一个在 Atmel AT91SAM9260EK 板上运行的嵌入式 Linux 系统,在该板上我有两个以实时优先级运行的进程。管理器进程使用 POSIX 消息队列定期“ping”工作进程以检查工作进程的健康状况。通常往返 ping 需要大约 1 毫秒,但偶尔需要更长的时间 - 大约 800 毫秒。没有其他进程以更高的优先级运行。
看来停顿可能与日志记录(syslog)有关。如果我停止记录,问题似乎就消失了。但是,如果日志文件位于 JFFS2 或 NFS 上,则没有区别。没有其他进程正在写入“磁盘” - 只是 syslog。
我可以使用哪些工具来帮助我找出这些停顿发生的原因?我知道latencytop并将使用它。还有其他一些可能更有用的工具吗?
一些细节:
- 内核版本:2.6.32.8
- libc(系统日志功能):uClibc 0.9.30.1
- 系统日志:busybox 1.15.2
- 未配置交换空间 [在编辑中添加]
- 根文件系统在 tmpfs 上(从 initramfs 加载)[在编辑中添加]