हमारे पास बिना स्वैप के लिनक्स सिस्टम है।
जब हम स्मृति उपयोग% एक थ्रेशोल्ड से अधिक हो जाता है, तो निश्चित रूप से हमें अलार्म उठाना चाहिए। और जब मेमोरी उपयोग% एक (उच्चतर) सीमा से अधिक बढ़ जाता है तो रिबूट करें।
हम ऐसा क्यों करना चाहते हैं: यदि कुछ प्रोग्राम लीक होते हैं, तो हम सुरक्षा रिबूट कर सकते हैं, इससे पहले कि कर्नेल हमारी प्रक्रियाओं को मारना शुरू कर दें (जिससे डेटा भ्रष्टाचार या अनुपलब्धता हो सकती है)।
लेकिन हमें एक समस्या है:
स्मृति उपयोग की गणना कैसे करें-% जो हमारे उद्देश्य के लिए उपयोग की जा सकती है?
हमने / proc / meminfo के मानों का उपयोग करके मेमोरी उपयोग को गिनने की कोशिश की:
/ # cat /proc/meminfo
MemTotal: 126744 kB
MemFree: 58256 kB
Buffers: 16740 kB
Cached: 31308 kB
SwapCached: 0 kB
Active: 37580 kB
Inactive: 24000 kB
बिना सफलता के:
(MemTotal - MemFree)
प्रयोग करने योग्य नहीं है, क्योंकि इसमें उदाहरण के लिए कैश हैं।
(MemTotal - MemFree - Buffers - Cached)
के प्रभाव को अनदेखा किया Inactive
। तो यह बहुत बड़ा मेमोरी उपयोग मान भी देता है।
(MemTotal - MemFree - Buffers - Cached - Inactive)
अनुपयोगी है, क्योंकि परिणाम नकारात्मक हो सकता है।