मेरी रैम कहां गई?


15

नोट: इससे पहले कि आप बहुत तेजी से कूदें, हाँ मैं linuxatemyram.com पढ़ता हूँ !

मेरे पास 64GB रैम वाला सर्वर है।

free -m कहते हैं कि मेरी रैम भरी हुई है, और यह डिस्क कैशिंग के कारण नहीं है:

             total       used       free     shared    buffers     cached
Mem:         64458      64117        340        201         67        331
-/+ buffers/cache:      63719        739
Swap:         1532        383       1149

हालाँकि, topमेमोरी उपयोग के लिए 64GB तक का ऑर्डर नहीं दिया गया है:

KiB Mem:  66005116 total, 65652464 used,   352652 free,    67512 buffers
KiB Swap:  1569780 total,   392656 used,  1177124 free.   337464 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 6258 mysql     20   0 38.665g 0.033t   4924 S   1.3 54.3 482:26.21 mysqld
 2293 root      20   0  165896 102116 101964 S   0.0  0.2   0:43.53 systemd-journal
 4909 root      20   0  377548  57840  57548 S   0.0  0.1   0:18.47 rsyslogd
26639 www       20   0  650076  53348  32968 S   0.0  0.1  11:32.27 php-fpm
26640 www       20   0  648344  51912  32984 S   0.0  0.1  11:37.43 php-fpm
26642 www       20   0  648600  51472  32580 S   0.0  0.1  11:37.16 php-fpm
26669 www       20   0  648148  50696  31988 S   0.0  0.1  11:35.24 php-fpm
26643 www       20   0  648452  50616  31628 S   0.0  0.1  11:36.19 php-fpm
26641 www       20   0  648620  50496  31340 S   0.0  0.1  11:36.51 php-fpm
28121 www       20   0  648620  48820  29660 S   0.0  0.1  11:35.75 php-fpm
27231 www       20   0  647508  48804  30760 S   0.0  0.1  11:35.61 php-fpm
28029 www       20   0  648044  48752  30172 S   0.0  0.1  11:37.20 php-fpm
28117 www       20   0  647868  48700  30296 S   0.0  0.1  11:36.45 php-fpm
28122 www       20   0  648340  48568  29676 S   0.0  0.1  11:35.73 php-fpm
 8569 www       20   0  649028  40268  20704 S   0.0  0.1  11:31.50 php-fpm
10126 www       20   0  648432  39420  20700 S   0.0  0.1   9:58.52 php-fpm
22386 www       20   0  647996  39400  20868 S   0.0  0.1  11:25.00 php-fpm
 9643 www       20   0  647976  39220  20704 S   0.0  0.1  11:29.23 php-fpm
23077 www       20   0  647852  39084  20692 S   0.0  0.1  11:11.80 php-fpm
10139 www       20   0  647580  38808  20692 S   0.0  0.1   9:59.94 php-fpm
 6326 www       20   0  647368  38396  20696 S   0.7  0.1   8:32.34 php-fpm
 4727 www       20   0  646128  37304  20692 S   0.0  0.1   8:30.20 php-fpm
 5459 www       20   0  645988  37156  20688 S   0.0  0.1   7:15.13 php-fpm
 2173 www       20   0  645240  36408  20684 S   0.0  0.1   4:39.13 php-fpm
20752 www       20   0  644536  35428  20680 S   0.0  0.1   4:29.78 php-fpm
 5396 www       20   0  644468  35324  20692 S   0.0  0.1   4:14.65 php-fpm
17558 www       20   0  642668  33816  20740 S   0.0  0.1   1:28.34 php-fpm
28133 www       20   0  642780  33636  20704 S   0.0  0.1   0:49.88 php-fpm
10925 www       20   0  479584  29264  11212 S   3.0  0.0   0:00.09 php
26632 root      20   0  552136  26072  19468 S   0.0  0.0   0:37.74 php-fpm
 4946 named     20   0  697996  18748   2104 S   0.0  0.0   3:46.96 named
15609 apache    20   0 2137056   8120   1592 S   0.0  0.0   0:56.18 httpd
 8584 root      20   0  133432   4864   3700 S   0.0  0.0   0:00.08 sshd

MySQL अकेले 54.3% का उपयोग करता है, यह पूरी तरह से सामान्य है क्योंकि इसमें ए innodb_buffer_pool_sizeहै 32G। अन्य प्रक्रियाओं का मेमोरी उपयोग लगभग 2.8% है, जो कि कुल 57.1% है।

32% शेष कहाँ हैं?


संपादित करें: की सामग्री /proc/meminfo:

MemTotal:       66005116 kB
MemFree:          353272 kB
Buffers:           66328 kB
Cached:           736620 kB
SwapCached:        11348 kB
Active:         34396680 kB
Inactive:        2651132 kB
Active(anon):   34223240 kB
Inactive(anon):  2228020 kB
Active(file):     173440 kB
Inactive(file):   423112 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       1569780 kB
SwapFree:        1177448 kB
Dirty:               328 kB
Writeback:             0 kB
AnonPages:      36234364 kB
Mapped:           125208 kB
Shmem:            206396 kB
Slab:           28058904 kB
SReclaimable:   28010224 kB
SUnreclaim:        48680 kB
KernelStack:        2760 kB
PageTables:        94780 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    34572336 kB
Committed_AS:   38572348 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      382304 kB
VmallocChunk:   34359353572 kB
HardwareCorrupted:     0 kB
DirectMap4k:        9000 kB
DirectMap2M:     2054144 kB
DirectMap1G:    67108864 kB

का आउटपुट slabtop:

 Active / Total Objects (% used)    : 147380425 / 147413026 (100.0%)
 Active / Total Slabs (% used)      : 7005839 / 7005839 (100.0%)
 Active / Total Caches (% used)     : 71 / 144 (49.3%)
 Active / Total Size (% used)       : 27615020.12K / 27627490.91K (100.0%)
 Minimum / Average / Maximum Object : 0.01K / 0.19K / 16.12K

  OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME
146851887 146851887  12%    0.19K 6992947       21  27971788K dentry
124936 124936 100%    0.07K   2231       56      8924K Acpi-ParseExt
105144 105144 100%    0.10K   2696       39     10784K buffer_head
 49920  49172  98%    0.06K    780       64      3120K kmalloc-64
 29916  29916 100%    0.11K    831       36      3324K sysfs_dir_cache
 29856  29661  99%    0.12K    933       32      3732K kmalloc-128
 21450  21128  98%    0.18K    975       22      3900K vm_area_struct
 19328  19328 100%    0.03K    151      128       604K kmalloc-32
 18258  13383  73%    0.93K    537       34     17184K ext4_inode_cache
 17952  11651  64%    0.04K    176      102       704K ext4_extent_status
 16828   6513  38%    0.55K    601       28      9616K radix_tree_node
 14400  13996  97%    0.06K    225       64       900K anon_vma
 11645   7903  67%    0.05K    137       85       548K shared_policy_node
 10710   7006  65%    0.19K    510       21      2040K kmalloc-192
 10608  10608 100%    0.04K    104      102       416K Acpi-Namespace
  9728   9728 100%    0.01K     19      512        76K kmalloc-8
...

3
फिर से पढ़ें linuxatemyram.com फिर kernel.org/doc/gorman/html/understand
सिम्बियन

मैं इसे फिर से पढ़ता हूं, और यह सुझाव के साथ समाप्त होता है कि वास्तव में स्मृति उपयोग प्राप्त free -mकरने के लिए जाने का तरीका है । इसके अलावा, यह तथ्य कि स्वैप उपयोग 0 नहीं है, मुझे थोड़ा संदिग्ध बना दिया है। मैंने आपके लिंक की जाँच कर ली है, लेकिन यह पढ़ने के लिए इतना डेटा है कि मैं अभी इस सब से नहीं निपट पा रहा हूँ जिससे मैं डरता हूँ।
बेंजामिन

क्या यह एक भौतिक सर्वर है?
11

@Optichip यह एक भौतिक सर्वर है।
बेंजामिन

5
@AndrewSchulman मुझे नहीं लगता कि यह एक प्रश्न उस विशेष प्रश्न का डुप्लिकेट है। यह सवाल स्लैब के लिए इस्तेमाल की जाने वाली मेमोरी के बारे में है। दूसरे प्रश्न में स्लैब का जिक्र नहीं है।
कास्परड

जवाबों:


23
  OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME
146851887 146851887  12%    0.19K 6992947       21  27971788K dentry

आप कहते हैं कि यह डिस्क कैशिंग के कारण नहीं है, लेकिन स्पष्ट रूप से यह है।

मेरी शर्त यह है कि आपके पास कोड है जो फ़ाइलों के लिए बहुत सारे भ्रूण बनाता है जो मौजूद नहीं हैं और आपको नकारात्मक कैशिंग का एक टन मिलता है। यदि स्मृति दबाव में है तो लिनक्स इन प्रविष्टियों को हटा देगा, इसलिए इसे चिंता करने की कोई बात नहीं हो सकती है। उदाहरण के लिए, इस NSS मुद्दे की तरह


5
आह, कि समझा सकता है। कृपया मेरी अज्ञानता को क्षमा करें, मैंने सोचा था कि free -mडिस्क कैशिंग के कारण मेमोरी खाने पर अकेले संकेत देगा। मुझे "नकारात्मक कैशिंग" के बारे में भी नहीं पता था, यह समझना वास्तव में दिलचस्प होगा कि फाइलों को खोजने की कोशिश क्या है जो मौजूद नहीं है। किसी भी विचार मैं जिज्ञासा से बाहर यह कैसे जांच सकता है? यह सिर्फ डेटाबेस + वेब एप्लिकेशन के साथ हाल ही में स्थापित है, इसलिए मैं इस व्यवहार को देखकर वास्तव में आश्चर्यचकित हूं।
बेंजामिन

@Benjamin यह कैसे हो सकता है के एक उदाहरण के लिए मेरे लिंक का पालन करें। इसके अलावा, यह देखें कि वास्तव में वेब एप्लिकेशन क्या कर रहा है।
डेविड श्वार्ट्ज

10
वास्तव में, मैं libcurl का उपयोग बहुत अधिक करता हूं, अधिक सटीक रूप से इसके PHP बाइंडिंग। मेरा वेब सर्वर कई छवियों को डाउनलोड और संसाधित करता है: वे मेमोरी में डाउनलोड किए जाते हैं, संसाधित होते हैं, फिर S3 पर अपलोड किए जाते हैं, कभी भी फाइल सिस्टम को नहीं मारते हैं। इसलिए मुझे यह स्वीकार करना होगा कि मैंने आपके लिंक को अनदेखा कर दिया है, यह देखते हुए कि मुझे प्रभावित करने के लिए पहली नज़र में यह बहुत स्थानीय है, लेकिन यह बहुत अच्छी तरह से यह सटीक मुद्दा हो सकता है: मैंने strace curlउस आदमी को वैसे ही दौड़ाया , और पाया कि उसने ENOENT (No such file or directory)एकल के लिए 7421 उत्पन्न किया क्वेरी! वह तो होना ही चाहिए। तो बहुत बहुत धन्यवाद!
बेंजामिन

2
आप linux-mm.org/Drop_Caches देख सकते हैं और डेंट्री और इनोडecho 2 > /proc/sys/vm/drop_caches कैश को गैर-विनाशकारी रूप से करना चाहते हैं , और देखें कि आपकी RAM वापस आती है या नहीं। स्पष्ट रूप से सबसे अच्छा एक शांत समय पर किया जाता है।
अब्ली

1
एक अतिरिक्त पुष्टि कि लिनक्स उन प्रविष्टियों को छोड़ देगा यदि दबाव इस तथ्य से आता है कि सक्रिय स्लैब ( Slabइन /proc/meminfo) के थोक के तहत है SReclaimable(जैसा कि नाम बताता है, आवश्यकतानुसार पुन: प्राप्त किया जा सकता है)।
मार्को लेओग्रांडे

4

यह कुछ आंतरिक कर्नेल संरचनाएं और फाइलसिस्टम / निर्देशिका संबंधित सामान हो सकता है, फिर भी। यह भ्रामक होते हुए भी पूरी तरह से सामान्य है; से उत्पादन होता है क्या देखने की कोशिश slabtopऔर cat /proc/meminfo


मैंने इन कमांड के आउटपुट को अपने प्रश्न में जोड़ा, क्या आप कृपया देख सकते हैं?
बेंजामिन

1
खैर, आपकी RAM के लगभग 27 गीगाबाइट कर्नेल द्वारा खपत किए गए लगते हैं, और इनमें से अधिकांश dentryनिर्देशिका प्रविष्टियों में जाता है । मुझे लगता है कि आपके पास आपके फाइल सिस्टम में बहुत सारी और बहुत सारी फाइलें हैं। वे व्यावहारिक रूप से सिर्फ कैश्ड सामान हैं, अगर कुछ प्रक्रियाओं में वास्तव में मेमोरी की आवश्यकता होती है, तो यह उसी तरह से जारी किया जाएगा जैसे सामान्य बफर / कैश के साथ आप शीर्ष आउटपुट में देखते हैं।
जने पिकरकेन

यह जानना अच्छा है, धन्यवाद। मैं आश्चर्यचकित हूं, क्योंकि मेरे पास फ़ाइल सिस्टम पर आसपास कई फाइलें नहीं हैं: find / | wc -lरिटर्न 134578, लाखों नहीं जैसा dentryकि सुझाव दे सकता है। क्या आपके पास कोई विचार है जो यह कर सकता है?
बेंजामिन

संभवतः यह पाया गया कि ये जंक डायरेक्टरी एंट्रीज उत्पन्न कर रहा है, इसके लिए डेविड श्वार्ट्ज के उत्तर के लिए धन्यवाद । फिर भी आपकी सहायता के लिए धन्यवाद!
बेंजामिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.