उच्च मेमोरी उपयोग लेकिन कोई भी प्रक्रिया इसका उपयोग नहीं कर रही है


17

मैं free -mहाइपर-वी पर चलने वाले डेबियन वीएम पर चलता हूं :

             total       used       free     shared    buffers     cached
Mem:         10017       9475        541        147         34        909
-/+ buffers/cache:       8531       1485
Swap:         1905          0       1905

तो मेरी 10GB मेमोरी में से, 8.5GB उपयोग में है और केवल 1500MB मुफ्त है (कैश को छोड़कर)।

लेकिन मैं यह जानने के लिए संघर्ष करता हूं कि मेमोरी का उपयोग क्या है। ps aux | awk '{sum+=$6} END {print sum / 1024}'आरएसएस के उपयोग को जोड़ने के लिए इसका उत्पादन निम्न है:

1005.2

दूसरे शब्दों में, मेरी प्रक्रियाएं केवल 1GB मेमोरी का उपयोग करती हैं लेकिन सिस्टम संपूर्ण (कैश को छोड़कर) 8.5GB का उपयोग करता है।

अन्य 7.5GB का उपयोग क्या हो सकता है?

पीएस: मेरे पास एक समान कॉन्फ़िगरेशन वाला एक अन्य सर्वर है जो 1200 के मेम (फ्री मेम = 8.8 जीबी) का उपयोग करता है और पीएस में आरएसएस के उपयोग का योग 900 है जो मुझे उम्मीद है कि करीब है ...


संपादित करें

cat /proc/meminfo मशीन 1 (कम मेमोरी) पर:

MemTotal:       10257656 kB
MemFree:          395840 kB
MemAvailable:    1428508 kB
Buffers:          162640 kB
Cached:          1173040 kB
SwapCached:          176 kB
Active:          1810200 kB
Inactive:         476668 kB
Active(anon):     942816 kB
Inactive(anon):   176184 kB
Active(file):     867384 kB
Inactive(file):   300484 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       1951740 kB
SwapFree:        1951528 kB
Dirty:                16 kB
Writeback:             0 kB
AnonPages:        951016 kB
Mapped:           224388 kB
Shmem:            167820 kB
Slab:              86464 kB
SReclaimable:      67488 kB
SUnreclaim:        18976 kB
KernelStack:        6736 kB
PageTables:        13728 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     7080568 kB
Committed_AS:    1893156 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       62284 kB
VmallocChunk:   34359672552 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       67520 kB
DirectMap2M:    10418176 kB

cat /proc/meminfo मशीन 2 पर (सामान्य मेमोरी उपयोग):

MemTotal:       12326128 kB
MemFree:         8895188 kB
MemAvailable:   10947592 kB
Buffers:          191548 kB
Cached:          2188088 kB
SwapCached:            0 kB
Active:          2890128 kB
Inactive:         350360 kB
Active(anon):    1018116 kB
Inactive(anon):    33320 kB
Active(file):    1872012 kB
Inactive(file):   317040 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       3442684 kB
SwapFree:        3442684 kB
Dirty:                44 kB
Writeback:             0 kB
AnonPages:        860880 kB
Mapped:           204680 kB
Shmem:            190588 kB
Slab:              86812 kB
SReclaimable:      64556 kB
SUnreclaim:        22256 kB
KernelStack:       10576 kB
PageTables:        11924 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     9605748 kB
Committed_AS:    1753476 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       62708 kB
VmallocChunk:   34359671804 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       63424 kB
DirectMap2M:    12519424 kB

जवाबों:


15

मैं समझता हूं कि आप हाइपर-वी का उपयोग कर रहे हैं, लेकिन अवधारणाएं समान हैं। शायद यह आपको सही रास्ते पर स्थापित करेगा।

वर्चुअल मेमोरी बैलूनिंग के कारण आपकी समस्या होने की संभावना है, हाइपरवाइजर मेमोरी को ऑप्टिमाइज़ करने के लिए एक तकनीक का उपयोग करता है। विवरण के लिए यह लिंक देखें

मैंने अपने वीएसएफ में अपने वीएम के साथ आपके समान लक्षणों का अवलोकन किया। इस पर कुछ नहीं चलने वाली 4G मशीन कैश द्वारा उपयोग की जाने वाली 30M की सूचना देती है, लेकिन "- / + बफ़र्स" लाइन में 3 जी "से अधिक" का उपयोग करती है।

यहाँ VMWare के सांख्यिकी कमांड से नमूना आउटपुट है। इससे पता चलता है कि मेरी "उपयोग की गई" राशि पर 3G के करीब कैसे व्यवहार किया जा रहा है:

vmware-toolbox-cmd stat balloon
3264 MB

मेरे मामले में, कुछ हद तक, स्पष्ट रूप से, मेरा गुब्बारा चालक ~ 3G का उपयोग कर रहा था

मुझे यकीन नहीं है कि हाइपर-वी में समान कमांड आपके गुब्बारे के आंकड़े प्राप्त करने के लिए है, लेकिन मुझे यकीन है कि आपको इसी तरह के परिणाम मिलेंगे


धन्यवाद - आप निश्चित रूप से कुछ पर हैं। lsmod | grep hv_ कम मेमोरी मशीन पर hv_balloon दिखाता है लेकिन दूसरे पर नहीं - इसलिए गुब्बारा मॉड्यूल एक पर लोड होता है और दूसरा नहीं। और व्यवहार इस विवरण को बहुत पसंद करता है ।
5

यह निश्चित नहीं है कि vmware-toolbox-cmdहाइपर वी पर इसके समकक्ष क्या है।
5

@assylias मुझे पता है, क्षमा करें। मैंने इस उत्तर को लिखते समय खुद को देखा और खाली हाथ आया। हालाँकि, यदि आप एक प्रोग्राम लिखते हैं जो बहुत अधिक मेमोरी आवंटित करता है, तो यह हाइपरवाइज़र को आश्वस्त कर सकता है कि आपके वीएम को संसाधनों की आवश्यकता है। डिस्क कैश बेदखली के परीक्षण के मामले के समान, लेकिन अलग मूल कारण।
मैट

आप इस समस्या को हल करने के लिए हाइपर- V में डायनेमिक रैम सुविधा को परेशान कर सकते हैं।
आशीष नेगी

मैं वास्तव में यहाँ समाधान नहीं देख रहा हूँ मुझे डर लग रहा है।
जेमी हटबर

1

/server/85470/meaning-of-the-buffers-cache-line-in-the-output-of-free

संक्षिप्त उत्तर: कर्नेल विभिन्न कार्यों, जैसे कैशिंग फ़ाइलों के लिए बफ़र्स / कैश मेमोरी का उपयोग करता है। यह मेमोरी अनुप्रयोगों के लिए उपलब्ध है अगर इसकी आवश्यकता है, तो आप यह कहने में सही हैं कि आपने 944 एमबी का उपयोग किया है।


उस लिंक के अनुसार, 944MB कैश की मात्रा है
assylias

2
नहीं, 944MB वास्तव में रैम का उपयोग अनुप्रयोगों द्वारा किया जाता है और अन्य अनुप्रयोगों के लिए उपलब्ध नहीं है। उस पोस्ट को फिर से लिखें: "लिनक्स (अधिकांश आधुनिक ओएस की तरह) हमेशा कैशिंग सामान के लिए मुफ्त रैम का उपयोग करने की कोशिश करेगा, इसलिए मेम: फ्री लगभग हमेशा बहुत कम होगा। इसलिए लाइन - / + बफ़र्स / कैश: दिखाया गया है, क्योंकि यह दिखाता है। कैश को अनदेखा करने पर मेमोरी कितनी खाली रहती है, अगर मेमोरी कम हो जाती है, तो कैश अपने आप फ्री हो जाएगा, इसलिए वे वास्तव में मायने नहीं रखते। "
vik

हाँ और - / + बफ़र्स / कैश 1.5GB मुफ्त मेम दिखाता है ...
assylias 19

कृपया 1485 में निशुल्क समझें - / + बफ़र्स कैश सिस्टम पर अनुप्रयोगों के लिए उपलब्ध स्मृति की मात्रा नहीं है। आपके अनुप्रयोगों के लिए वास्तव में उपलब्ध स्मृति की मात्रा है: (10017 - (9475 - 8531)) = 9073. क्या यह समझ में आता है?
vik

मुझे लगता है कि आप गलत हैं: दूसरी पंक्ति कैश और बफ़र्स को छोड़कर अनुप्रयोगों का वास्तविक मेमोरी उपयोग है (और यही आपके लिंक का कहना है ...)।
अस्वस्थता
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.