मेरे पास एक एम्बेडेड लिनक्स सिस्टम है जो एटमेल AT91SAM9260EK बोर्ड पर चल रहा है जिस पर मेरे पास रीयल-टाइम प्राथमिकता पर दो प्रक्रियाएं चल रही हैं। एक प्रबंधक प्रक्रिया समय-समय पर कार्यकर्ता प्रक्रिया के स्वास्थ्य की जांच के लिए POSIX संदेश कतारों का उपयोग करके एक कार्यकर्ता प्रक्रिया "पिंग्स" करती है। आमतौर पर राउंड-ट्रिप पिंग लगभग 1ms लेता है, लेकिन कभी-कभी इसमें अधिक समय लगता है - लगभग 800ms। उच्च प्राथमिकता पर चलने वाली कोई अन्य प्रक्रिया नहीं है।एम्बेडेड लिनक्स सिस्टम में विलंबता समस्याएं (स्टाल) ढूंढना
ऐसा प्रतीत होता है कि स्टाल लॉगिंग (syslog) से संबंधित हो सकता है। अगर मैं लॉगिंग बंद करना बंद कर देता हूं तो समस्या दूर हो जाती है। हालांकि लॉग फ़ाइल जेएफएफएस 2 या एनएफएस पर है तो इससे कोई फर्क नहीं पड़ता। "डिस्क" पर कोई अन्य प्रक्रियाएं लिख रही हैं - बस syslog।
मुझे ये पता लगाने में सहायता के लिए कौन से टूल्स उपलब्ध हैं कि ये स्टॉल क्यों हो रहे हैं? मैं latencytop से अवगत हूं और इसका उपयोग करूँगा। क्या कुछ अन्य उपकरण हैं जो अधिक उपयोगी हो सकते हैं?
कुछ विवरण:
- कर्नेल संस्करण: 2.6.32.8
- libc (syslog कार्यों): uclibc 0.9.30.1
- syslog: बिजीबॉक्स 1.15.2
- कोई स्वैप स्पेस कॉन्फ़िगर किया गया [जोड़ा संपादित करें] में
- जड़ फाइल सिस्टम tmpfs पर है (initramfs से लोड) [संपादित करें में जोड़ा]
एलटीटीएनजी अब एक विकल्प है, जैसा कि यहां बताया गया है: http://lttng.org/blog/2015/02/04/web-request-latency-root-cause/ – camh