CH-J Server ManagerSSH के ज़रिए सर्वर प्रबंधन
मेनू
सभी मार्गदर्शिकाएँ और लेख →

Linux सर्वर पर RAM, कैश और swap के आँकड़े कैसे पढ़ें

free के कॉलम का अर्थ, अधिक मेमोरी उपयोग अक्सर ठीक क्यों होता है, और कौन से संकेत वास्तव में मेमोरी की कमी बताते हैं।

free के बजाय available देखें

Linux अन्यथा खाली रहने वाली मेमोरी को डिस्क कैश के रूप में उपयोग करता है, इसलिए ठीक चल रहे सर्वर पर कम खाली मेमोरी सामान्य है। available कॉलम कर्नेल का अनुमान है कि नए काम को swap का उपयोग किए बिना कितनी मेमोरी मिल सकती है। इसी आँकड़े पर नज़र रखें। used की सटीक गणना टूल के संस्करण पर निर्भर करती है, इसलिए अलग-अलग सिस्टम के बीच इसकी तुलना न करें।

free -h
grep -E 'MemAvailable|Shmem:|SReclaimable' /proc/meminfo

कैश में से क्या मुक्त हो सकता है और क्या नहीं

ऐप्लिकेशन को मेमोरी चाहिए तो पेज कैश आम तौर पर मुक्त किया जा सकता है। साझा मेमोरी और tmpfs (Shmem) भी cache में दिखते हैं, लेकिन उन्हें सीधे हटाया नहीं जा सकता, क्योंकि उनमें ऐसा डेटा होता है जिसकी डिस्क पर कोई प्रति नहीं है। इसलिए बड़ा कैश और कम उपलब्ध मेमोरी अक्सर बड़े tmpfs या साझा मेमोरी सेगमेंट का संकेत होते हैं।

df -h -t tmpfs
sudo slabtop -o | head -15

swap का उपयोग अपने आप में समस्या नहीं है

सर्वर कम इस्तेमाल होने वाले पेज को हफ्तों तक swap में रख सकता है और इससे कोई हानि नहीं होती। नुकसान लगातार आने-जाने से होता है। vmstat में si और so कॉलम देखें: लगातार शून्य से ऊपर रहने वाले मान बताते हैं कि सिस्टम सक्रिय रूप से पेज को swap में भेज रहा है या वहाँ से ला रहा है, जो वास्तविक कमी का संकेत है।

swapon --show
vmstat 1 5

पता करें कि मेमोरी कौन उपयोग कर रहा है

प्रोसेस को रेज़िडेंट मेमोरी के आधार पर क्रमबद्ध करें। RSS, प्रोसेस के बीच साझा पेज को हर प्रोसेस में गिनता है, इसलिए कई प्रोसेस के मानों को सीधे जोड़ना सही नहीं है। PSS वाले टूल, जैसे smem, इंस्टॉल हों तो अधिक उचित कुल आँकड़ा देते हैं।

ps -eo pid,user,rss,comm --sort=-rss | head -15

वास्तविक कमी पहचानें

संकेत हैं कम उपलब्ध मेमोरी, लगातार swap में पेज का आना-जाना, और out-of-memory killer द्वारा समाप्त किए गए प्रोसेस। कर्नेल लॉग जाँचें। आँकड़े बेहतर दिखाने के लिए drop_caches न चलाएँ: इससे सर्वर को केवल डिस्क से दोबारा पढ़ना पड़ता है और कोई समस्या हल नहीं होती।

sudo journalctl -k --no-pager | grep -iE 'out of memory|oom-kill'

CH-J Server Manager में मेमोरी

System Monitor ये मान SSH के माध्यम से पढ़ता है। Linux पर यह used को MemTotal − MemFree − Buffers − Cached − SReclaimable के रूप में परिभाषित करता है और available के लिए कर्नेल का अनुमान लेता है। साझा मेमोरी Cached का हिस्सा है और मुक्त नहीं की जा सकती; बार की श्रेणियाँ एक-दूसरे पर नहीं चढ़तीं। सूत्र free के कुछ संस्करणों से अलग है, इसलिए आँकड़े बिल्कुल मेल न भी खाएँ। यह swap और उसके उपयोग का इतिहास भी दिखाता है। ZFS ARC को अलग से नहीं गिना जाता, इसलिए ZFS होस्ट पर वह उपयोग की गई मेमोरी में शामिल होता है।

विस्तृत दस्तावेज़

man: free →

man: proc_meminfo →

बायोमेट्रिक अनलॉक और सुरक्षा →