Tôi có một hệ thống Linux nhúng chạy trên bo mạch Atmel AT91SAM9260EK mà tôi có hai quy trình chạy ở mức ưu tiên thời gian thực. Một quy trình quản lý định kỳ "ping" một quy trình công nhân sử dụng hàng đợi thông điệp POSIX để kiểm tra sức khỏe của quy trình công nhân. Thông thường, vòng lặp ping mất khoảng 1ms, nhưng đôi khi phải mất nhiều thời gian hơn - khoảng 800ms. Không có quy trình nào khác chạy ở mức ưu tiên cao hơn.Tìm các vấn đề về độ trễ (các quầy hàng) trong các hệ thống Linux nhúng
Dường như gian hàng có thể liên quan đến ghi nhật ký (syslog). Nếu tôi ngừng đăng nhập thì vấn đề dường như biến mất. Tuy nhiên nó không tạo ra sự khác biệt nếu tệp nhật ký nằm trên JFFS2 hoặc NFS. Không có quá trình nào khác đang ghi vào "đĩa" - chỉ cần syslog.
Công cụ nào có sẵn cho tôi để giúp tôi theo dõi lý do tại sao các quầy hàng này đang xảy ra? Tôi biết về độ trễ và sẽ sử dụng nó. Có một số công cụ khác có thể hữu ích hơn không?
Một số chi tiết:
- Kernel phiên bản: 2.6.32.8
- libc (chức năng syslog): uClibc 0.9.30.1
- syslog: busybox 1.15.2
- Không gian hoán đổi cấu hình [thêm chỉnh sửa]
- hệ thống tệp gốc nằm trên tmpfs (được tải từ initramfs) [được chỉnh sửa]
LTTng là một tùy chọn ngay bây giờ, như được giải thích tại đây: http://lttng.org/blog/2015/02/04/web-request-latency-root-cause/ – camh