1. अवलोकन
- ZFS फ़ाइलसिस्टम के कैश (ARC) में होने वाली thrashing समस्या की परिभाषा, निदान, प्रतिक्रिया और रोकथाम के उपायों का सार
2. ZFS ARC thrashing की परिभाषा
- अवधारणा: लगातार cache hit विफल होने के कारण cache item का बार-बार replacement (eviction) होना, जिससे सिस्टम प्रदर्शन बेहतर होने के बजाय गिर जाता है
- प्रभाव: हाई-परफॉर्मेंस I/O वातावरण (जैसे database server) में गंभीर सेवा बाधा पैदा हो सकती है
3. प्रमुख निदान लक्षण
- CPU
iowait मान 20% से अधिक लगातार बना रहना
- CPU
system mode उपयोग दर का सामान्य स्तर की तुलना में बढ़ना
- cache hit rate में गिरावट (सामान्य डेटा के साथ तुलना आवश्यक)
- मुख्य लक्षण:
arc_prune, arc_evict kernel thread का CPU उपयोग 90% से अधिक हो तो thrashing निश्चित है
4. आपातकालीन प्रतिक्रिया उपाय
- कार्रवाई: Linux फ़ाइलसिस्टम cache को मैन्युअली हटाना
- कमांड:
echo 3 > /proc/sys/vm/drop_caches
- प्रभाव: page cache और slab object दोनों साथ में हट जाते हैं
- विशेषताएँ:
- डिस्क पर अभी तक नहीं लिखे गए data (dirty item) सुरक्षित रहते हैं, इसलिए data loss नहीं होता (non-destructive)
- कमांड चलाने के तुरंत बाद cache दोबारा भरने तक अस्थायी performance गिरावट हो सकती है
5. मूलभूत रोकथाम
- कारण: सिस्टम workload की तुलना में आवंटित ARC cache आकार का कम होना
- ARC आकार (
zfs_arc_max):
- डिफ़ॉल्ट मान पहले से ही सिस्टम मेमोरी का 1/2 (Linux मानक) होता है, जो काफ़ी बड़ा है
- यह अन्य application के साथ memory contention पैदा कर सकता है, इसलिए इसे बिना सोचे-समझे बढ़ाना कठिन है
- समाधान:
- अगर अन्य application की memory usage अधिक है, तो contention रोकने के लिए
zfs_arc_max मान कम करें
- मूल समस्या के समाधान के लिए physical memory बढ़ाना (Scale-up) सबसे विश्वसनीय तरीका है
अभी कोई टिप्पणी नहीं है.