लिनक्स सर्वर केवल 60% मेमोरी का उपयोग कर रहा है, फिर स्वैपिंग कर रहा है


12

मुझे एक Linux सर्वर मिला है जो हमारे Bacula बैकअप सिस्टम को चला रहा है। मशीन पागल की तरह पीस रही है क्योंकि यह स्वैप करने के लिए भारी जा रही है। समस्या यह है, यह केवल 60% अपनी भौतिक स्मृति का उपयोग कर रहा है!

यहाँ से उत्पादन है free -m:

free -m
             total       used       free     shared    buffers     cached
Mem:          3949       2356       1593          0          0          1
-/+ buffers/cache:       2354       1595
Swap:         7629       1804       5824

और से कुछ नमूना उत्पादन vmstat 1:

procs -----------memory---------- ---swap-- -----io---- -system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  2 1843536 1634512      0   4188   54   13  2524   666    2    1  1  1 89  9  0
 1 11 1845916 1640724      0    388 2700 4816 221880  4879 14409 170721  4  3 63 30  0
 0  9 1846096 1643952      0      0 4956  756 174832   804 12357 159306  3  4 63 30  0
 0 11 1846104 1643532      0      0 4916  540 174320   580 10609 139960  3  4 64 29  0
 0  4 1846084 1640272      0   2336 4080  524 140408   548 9331 118287  3  4 63 30  0
 0  8 1846104 1642096      0   1488 2940  432 102516   457 7023 82230  2  4 65 29  0
 0  5 1846104 1642268      0   1276 3704  452 126520   452 9494 119612  3  5 65 27  0
 3 12 1846104 1641528      0    328 6092  608 187776   636 8269 113059  4  3 64 29  0
 2  2 1846084 1640960      0    724 5948    0 111480     0 7751 116370  4  4 63 29  0
 0  4 1846100 1641484      0    404 4144 1476 125760  1500 10668 105358  2  3 71 25  0
 0 13 1846104 1641932      0      0 5872  828 153808   840 10518 128447  3  4 70 22  0
 0  8 1846096 1639172      0   3164 3556  556 74884   580 5082 65362  2  2 73 23  0
 1  4 1846080 1638676      0    396 4512   28 50928    44 2672 38277  2  2 80 16  0
 0  3 1846080 1628808      0   7132 2636    0 28004     8 1358 14090  0  1 78 20  0
 0  2 1844728 1618552      0  11140 7680    0 12740     8  763 2245  0  0 82 18  0
 0  2 1837764 1532056      0 101504 2952    0 95644    24  802 3817  0  1 87 12  0
 0 11 1842092 1633324      0   4416 1748 10900 143144 11024 6279 134442  3  3 70 24  0
 2  6 1846104 1642756      0      0 4768  468 78752   468 4672 60141  2  2 76 20  0
 1 12 1846104 1640792      0    236 4752  440 140712   464 7614 99593  3  5 58 34  0
 0  3 1846084 1630368      0   6316 5104    0 20336     0 1703 22424  1  1 72 26  0
 2 17 1846104 1638332      0   3168 4080 1720 211960  1744 11977 155886  3  4 65 28  0
 1 10 1846104 1640800      0    132 4488  556 126016   584 8016 106368  3  4 63 29  0
 0 14 1846104 1639740      0   2248 3436  428 114188   452 7030 92418  3  3 59 35  0
 1  6 1846096 1639504      0   1932 5500  436 141412   460 8261 112210  4  4 63 29  0
 0 10 1846104 1640164      0   3052 4028  448 147684   472 7366 109554  4  4 61 30  0
 0 10 1846100 1641040      0   2332 4952  632 147452   664 8767 118384  3  4 63 30  0
 4  8 1846084 1641092      0    664 4948  276 152264   292 6448 98813  5  5 62 28  0

इसके अलावा, सीपीयू समय के अनुसार छांटे गए टॉप का आउटपुट इस सिद्धांत का समर्थन करता है कि स्वैप क्या है जो सिस्टम को तोड़ रहा है:

top - 09:05:32 up 37 days, 23:24,  1 user,  load average: 9.75, 8.24, 7.12
Tasks: 173 total,   1 running, 172 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.6%us,  1.4%sy,  0.0%ni, 76.1%id, 20.6%wa,  0.1%hi,  0.2%si,  0.0%st
Mem:   4044632k total,  2405628k used,  1639004k free,        0k buffers
Swap:  7812492k total,  1851852k used,  5960640k free,      436k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+    TIME COMMAND                                                                                                                             
 4174 root      17   0 63156  176   56 S    8  0.0   2138:52  35,38 bacula-fd                                                                                                                            
 4185 root      17   0 63352  284  104 S    6  0.0   1709:25  28,29 bacula-sd                                                                                                                            
  240 root      15   0     0    0    0 D    3  0.0 831:55.19 831:55 kswapd0                                                                                                                              
 2852 root      10  -5     0    0    0 S    1  0.0 126:35.59 126:35 xfsbufd                                                                                                                              
 2849 root      10  -5     0    0    0 S    0  0.0 119:50.94 119:50 xfsbufd                                                                                                                              
 1364 root      10  -5     0    0    0 S    0  0.0 117:05.39 117:05 xfsbufd                                                                                                                              
   21 root      10  -5     0    0    0 S    1  0.0  48:03.44  48:03 events/3                                                                                                                             
 6940 postgres  16   0 43596    8    8 S    0  0.0  46:50.35  46:50 postmaster                                                                                                                           
 1342 root      10  -5     0    0    0 S    0  0.0  23:14.34  23:14 xfsdatad/4                                                                                                                           
 5415 root      17   0 1770m  108   48 S    0  0.0  15:03.74  15:03 bacula-dir                                                                                                                           
   23 root      10  -5     0    0    0 S    0  0.0  13:09.71  13:09 events/5                                                                                                                             
 5604 root      17   0 1216m  500  200 S    0  0.0  12:38.20  12:38 java                                                                                                                                 
 5552 root      16   0 1194m  580  248 S    0  0.0  11:58.00  11:58 java

यहां वर्चुअल मेमोरी इमेज साइज के अनुसार क्रमबद्ध किया गया है:

top - 09:08:32 up 37 days, 23:27,  1 user,  load average: 8.43, 8.26, 7.32
Tasks: 173 total,   1 running, 172 sleeping,   0 stopped,   0 zombie
Cpu(s):  3.6%us,  3.4%sy,  0.0%ni, 62.2%id, 30.2%wa,  0.2%hi,  0.3%si,  0.0%st
Mem:   4044632k total,  2404212k used,  1640420k free,        0k buffers
Swap:  7812492k total,  1852548k used,  5959944k free,      100k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+    TIME COMMAND                                                                                                                             
 5415 root      17   0 1770m   56   44 S    0  0.0  15:03.78  15:03 bacula-dir                                                                                                                           
 5604 root      17   0 1216m  492  200 S    0  0.0  12:38.30  12:38 java                                                                                                                                 
 5552 root      16   0 1194m  476  200 S    0  0.0  11:58.20  11:58 java                                                                                                                                 
 4598 root      16   0  117m   44   44 S    0  0.0   0:13.37   0:13 eventmond                                                                                                                            
 9614 gdm       16   0 93188    0    0 S    0  0.0   0:00.30   0:00 gdmgreeter                                                                                                                           
 5527 root      17   0 78716    0    0 S    0  0.0   0:00.30   0:00 gdm                                                                                                                                  
 4185 root      17   0 63352  284  104 S   20  0.0   1709:52  28,29 bacula-sd                                                                                                                            
 4174 root      17   0 63156  208   88 S   24  0.0   2139:25  35,39 bacula-fd                                                                                                                            
10849 postgres  18   0 54740  216  108 D    0  0.0   0:31.40   0:31 postmaster                                                                                                                           
 6661 postgres  17   0 49432    0    0 S    0  0.0   0:03.50   0:03 postmaster                                                                                                                           
 5507 root      15   0 47980    0    0 S    0  0.0   0:00.00   0:00 gdm                                                                                                                                  
 6940 postgres  16   0 43596   16   16 S    0  0.0  46:51.39  46:51 postmaster                                                                                                                           
 5304 postgres  16   0 40580  132   88 S    0  0.0   6:21.79   6:21 postmaster                                                                                                                           
 5301 postgres  17   0 40448   24   24 S    0  0.0   0:32.17   0:32 postmaster                                                                                                                           
11280 root      16   0 40288   28   28 S    0  0.0   0:00.11   0:00 sshd                                                                                                                                 
 5534 root      17   0 37580    0    0 S    0  0.0   0:56.18   0:56 X                                                                                                                                    
30870 root      30  15 31668   28   28 S    0  0.0   1:13.38   1:13 snmpd                                                                                                                                
 5305 postgres  17   0 30628   16   16 S    0  0.0   0:11.60   0:11 postmaster                                                                                                                           
27403 postfix   17   0 30248    0    0 S    0  0.0   0:02.76   0:02 qmgr                                                                                                                                 
10815 postfix   15   0 30208   16   16 S    0  0.0   0:00.02   0:00 pickup                                                                                                                               
 5306 postgres  16   0 29760   20   20 S    0  0.0   0:52.89   0:52 postmaster                                                                                                                           
 5302 postgres  17   0 29628   64   32 S    0  0.0   1:00.64   1:00 postmaster

मैंने swappinessकर्नेल पैरामीटर को उच्च और निम्न मान दोनों के लिए ट्यून करने की कोशिश की है , लेकिन यहां व्यवहार को बदलने के लिए कुछ भी नहीं दिखता है। मुझे पता चल गया है कि क्या हो रहा है। मुझे कैसे पता चलेगा कि यह क्या कारण है?

अपडेट: सिस्टम पूरी तरह से 64-बिट सिस्टम है, इसलिए 32-बिट मुद्दों के कारण मेमोरी सीमाओं का कोई सवाल नहीं होना चाहिए।

Update2: जैसा कि मैंने मूल प्रश्न में उल्लेख किया है, मैंने पहले से ही सभी प्रकार के मूल्यों के लिए स्वैग ट्यूनिंग की कोशिश की है, जिसमें 0. शामिल है। परिणाम हमेशा एक ही है, लगभग 1.6 जीबी मेमोरी अप्रयुक्त शेष है।

Update3: उपरोक्त जानकारी के लिए शीर्ष उत्पादन जोड़ा गया।


2
ऐसा प्रतीत होता है कि लिनक्स किसी चीज के लिए पेज कैश का उपयोग नहीं कर रहा है, फिर भी आपको बड़ी मात्रा में मुफ्त मेमोरी मिली है। कुछ स्पष्ट रूप से एमिस है।
डेविड पशले

1
क्या आप कुछ अतिरिक्त लिनक्स ओएस विवरण पोस्ट कर सकते हैं? विक्रेता, रिलीज़, कर्नेल संस्करण, आदि? ऐसे कुछ उपकरण हैं जिन्हें मैं सुझाना चाहता हूं, लेकिन उनमें से कुछ को एक विशेष कर्नेल संस्करण या लाइब्रेरी संस्करण का समर्थन करने की आवश्यकता है।
क्रिस्टोफर कैशेल

जवाबों:


6

बकुला प्रदर्शन अत्यधिक डेटाबेस पर निर्भर है। इसी तरह, यह postgresql है जो आपके सर्वर को मार रहा है। उच्च लोड औसत और प्रतीक्षा स्थिति में बिताए गए cpu समय का काफी बड़ा% स्पष्ट रूप से यह दिखाता है कि यह डिस्क I / O का इंतजार कर रहा है ... और यह PostgreSQL का कर रहा है। अपने बैकअप में प्रत्येक फ़ाइल के लिए कम से कम एक अद्यतन कथन सेट करें। स्वैपिंग के बारे में चिंता न करें।

PostgreSQL को ट्यून करें। संभवतः व्यक्तिगत डेटाबेस (या यहां तक ​​कि टेबल) अपने स्वयं के डिस्क / छापे सेट को I / O के चारों ओर फैलाने के लिए दें। यदि आप पहले से ही ऐसा नहीं है तो PostgreSQL को एसिंक्रोनस राइट्स का उपयोग करने के लिए बाध्य कर सकते हैं ... हालांकि यह लेखन प्रदर्शन के लिए ट्रेडिंग डेटाबेस अखंडता है। PostgreSQL के लिए उपलब्ध साझा मेमोरी से बाहर नर्क को बढ़ावा दें। यह डेटाबेस पर कम से कम बहुत अधिक पढ़ा जाएगा। यदि आपने कभी ऐसा नहीं किया है, तो बकुला डेटाबेस पर VACCUM ANALYZE चलाएं और साथ ही क्वेरी ऑप्टिमाइज़र को काम करने के लिए कुछ दें।

अब तक, बकुला का सबसे कमजोर बिंदु डेटाबेस निर्भरताएं हैं (और कुछ की मस्तिष्क-मृत्यु ...) एक हालिया बड़े बैकअप का पर्स चलाएं और ध्यान दें कि एक दर्जन मिलियन प्रश्नों को चलाने में कितना समय (घंटों अक्सर) लगता है। .. बकुला को तुलनात्मक रूप से कुछ बड़ी फाइलें पसंद हैं, अन्यथा यह एक कुत्ता है।


धन्यवाद। यह वास्तव में समस्या की जड़ की तरह लगता है। हम इसे सुधारने के तरीकों को देखेंगे।
कामिल किसिल

19

आप I / O- बाध्य हैं। आपका सिस्टम एक छोटा सा जीवन है, जो बफर / कैश / वीएम पेजिंग की तूफानी समुद्र में टकराता है जो 100 फीट लंबा होता है।

वाह। बस वाह। आप अपने I / O को 100Mbyte / sec के बारे में बता रहे हैं, आप I / O प्रतीक्षा में पिछले 50% CPU समय के साथ गहरे हैं, और आपके पास 4Gb RAM है। इस सर्वर का VM पर बैकस्पेस काफी बड़ा होना चाहिए। "सामान्य" परिस्थितियों में, जैसा कि सिस्टम बफर / कैश से शुरू होता है, आपके पास कोई भी मुफ्त रैम 40 सेकंड से कम समय में जिंदा खाया जा सकता है

यह पोस्ट करने के लिए संभव हो जाएगा सेटिंग से /proc/sys/vm? यह कुछ जानकारी प्रदान करेगा कि आपके कर्नेल को "सामान्य" क्या लगता है।

उन postmasterप्रक्रियाओं से यह भी संकेत मिलता है कि आप पृष्ठभूमि में PostgreSQL चला रहे हैं। क्या यह आपके सेटअप के लिए सामान्य है? डिफ़ॉल्ट कॉन्फिगर में PostgreSQL बहुत कम रैम का उपयोग करेगा, लेकिन एक बार गति के लिए फिर से ट्यून करने के बाद, यह आपके उपलब्ध रैम का 25% -40% जल्दी से चबा सकता है। इसलिए मैं केवल अनुमान लगा सकता हूं कि आउटपुट में उनकी संख्या देखते हुए, आप बैकअप चलाते समय किसी तरह का उत्पादन डेटाबेस चला रहे हैं। यह अच्छी तरह से नहीं है। क्या आप कुछ और जानकारी दे सकते हैं कि यह क्यों चल रहा है? सभी के लिए साझा किए गए मेमोरी पैरामीटर का आकार क्या हैpostmasterप्रक्रियाओं? क्या बैकअप चालू होने के दौरान कम कनेक्ट / बफर का उपयोग करने के लिए सेवा को बंद करना या अस्थायी रूप से डेटाबेस को फिर से कॉन्फ़िगर करना संभव होगा? यह पहले से ही तनावपूर्ण I / O और मुफ्त रैम से कुछ दबाव लेने में मदद करेगा। ध्यान रखें कि प्रत्येक postmasterप्रक्रिया आंतरिक कैशिंग के लिए डेटाबेस के ऊपर और उससे अधिक रैम का उपभोग करती है। इसलिए जब आप मेमोरी सेटिंग्स में समायोजन करते हैं, तो सावधान रहें कि कौन से "साझा" हैं और जो "प्रति-प्रक्रिया" हैं

यदि आप अपनी बैकअप प्रक्रिया के भाग के रूप में PostgreSQL का उपयोग कर रहे हैं , तो कनेक्शन की न्यूनतम संख्या को स्वीकार करने के लिए इसे फिर से ट्यून करें, और अपने प्रति-प्रक्रिया मापदंडों को कुछ उचित (केवल कुछ megs प्रत्येक) तक सिकोड़ना सुनिश्चित करें। इसका नकारात्मक पक्ष यह है कि PostgreSQL डिस्क पर फैल जाएगा यदि वह RAM में डेटासेट के साथ काम नहीं कर सकता है जैसे वह करना चाहता है, जिससे वास्तव में आपकी डिस्क I / O बढ़ जाएगी , इसलिए ध्यान से ट्यून करें।

अपने आप में X11 ज्यादा मेमोरी नहीं लेता है, लेकिन एक पूर्ण डेस्कटॉप सत्र कई megs का उपभोग कर सकता है। आपके पास कोई भी सक्रिय सत्र लॉग आउट करें और कंसोल से या एसएसएच के माध्यम से अपना कनेक्शन चलाएं।

फिर भी, मुझे नहीं लगता कि यह पूरी तरह से एक स्मृति मुद्दा है। यदि आप 50% I / O से बेहतर हैं, तो समय की विस्तारित अवधि के लिए प्रतीक्षा करें (और आप 70 को छूने वाले आंकड़े पोस्ट कर रहे हैं), परिणामस्वरूप टोंटी अंततः सिस्टम के बाकी हिस्सों को कुचल देगी। डार्थ वेडर की तरह गर्दन बहुत कुचली जाती है।

डार्थ वडेर की मौत के चपेट में आने के बाद कारोबारी अंत में कोई

आपके लिए कितने फ्लश थ्रेड कॉन्फ़िगर किए गए हैं? उपयोग

cat /proc/sys/vm/nr_pdflush_threads

पता लगाने के लिए और

echo "vm.nr_pdflush_threads = 1" >> /etc/sysctl.conf

इसे एक ही धागे पर सेट करें। ध्यान दें कि अंतिम कमांड इसे रिबूट पर स्थायी रूप से लोड करता है। वहाँ 1 या 2 देखना असामान्य नहीं है। यदि आपके पास I / O के लिए कई कोर या बहुत सारी धुरी / बस क्षमता है, तो आप इन्हें (थोड़ा) टक्कर देना चाहेंगे। अधिक फ्लश थ्रेड्स = अधिक I / O गतिविधि, लेकिन I / O प्रतीक्षा में अधिक CPU समय भी।

क्या यह डिफ़ॉल्ट मान है, या क्या आपने इसे टक्कर दी है? यदि आपने इसे टक्कर दी है, तो क्या आपने I / O ऑप्स पर दबाव की मात्रा को कम करने के लिए संख्या कम करने पर विचार किया है? या क्या आपके पास काम करने के लिए बड़ी संख्या में स्पिंडल और चैनल हैं, किस मामले में, आपने फ्लश थ्रेड की संख्या बढ़ाने पर विचार किया है ?

पुनश्च आप स्वैप-आउट को रोकने के लिए, निचले मूल्यों पर नहीं, उच्च मूल्यों पर स्वैग सेट करना चाहते हैं। उच्चतम मूल्य = 100 = जब यह सही लगता है, तो पागलों की तरह स्वैप करें, सबसे कम मूल्य = 0 = बिल्कुल भी स्वैप न करने का प्रयास करें।


मैं आपके कुछ सुझाव देखूंगा। नहीं, मैं पागल नहीं हूं और बैकअप सिस्टम पर एक प्रोडक्शन डेटाबेस चला रहा हूं। PostgreSQL बैकअप सिस्टम का एक हिस्सा है, जैसा कि बकुला ने उपयोग किया है कि जो टेप पर है, उसका ट्रैक रखने के लिए उसका सूचना स्टोर के रूप में उपयोग करता है, आदि मैं आपके द्वारा निर्दिष्ट कुछ मापदंडों को ट्यून करने पर एक नज़र डालूंगा। उच्च I / O थ्रूपुट इस सर्वर की डिस्क ट्रे में डेटा डंप करने वाले अन्य सर्वरों का एक परिणाम है, और यह सर्वर बाद में उस डेटा को खींचता है और इसे LTO4 टेप लाइब्रेरी में लिखता है।
कामिल किसियल

सर्वर के डिस्क की व्यवस्था कैसे की जाती है? क्या आप मिरर किए गए ड्राइव सेटअप का उपयोग कर रहे हैं?
एवरी पायने

1
+1 बैंगनी गद्य के लिए :)
pjc50

हाँ, मैं उस दिन थोड़ा रचनात्मक महसूस कर रहा था। नाटक के बारे में क्षमा करें। :)
एवरी पायने

7

यदि आप IO के तहत प्रति सेकंड (द्वि) में पढ़े गए ब्लॉक को देखते हैं, तो यह परिमाण के कई आदेशों द्वारा स्वैप गतिविधि को बौना कर देता है। मुझे नहीं लगता कि स्वैप का उपयोग आपकी डिस्क के थ्रेशिंग का कारण बन रहा है, मुझे लगता है कि आपके पास बॉक्स पर कुछ चल रहा है जो बस डिस्क गतिविधि (रीड्स) का एक बहुत कारण है।

मैं चल रहे आवेदनों की जांच करूंगा, और देखूंगा कि क्या आप अपराधी को ढूंढ सकते हैं।


ठीक है, जैसा कि मैंने कहा, यह बेकुला बैकअप सिस्टम चला रहा है। ब्लॉक सर्वर द्वारा बाह्य रूप से संलग्न एसएएस डिस्क सरणी में डेटा डंपिंग का परिणाम है।
कामिल किसिल

1
क्या आप सुनिश्चित हैं कि डिस्क स्वैपिंग से ट्रैश हो रही है, न कि बैकअप से? बॉक्स पर क्या अन्य प्रक्रियाएं चल रही हैं? यदि कर्नेल नया पर्याप्त है, तो वहाँ कुछ बहुत ही उपयोगी उपकरण हैं (iotop) जो कि io उपयोग की हिम्मत में खोद सकते हैं, और यहां तक ​​कि IO प्राथमिकता (आयनिस) भी सेट कर सकते हैं यदि आप CFQ IO अनुसूचक का उपयोग कर रहे हैं।
क्रिस्टोफर कैशेल

6

देखें कि क्या यह लिंक आपके कुछ सवालों के जवाब देता है। मैं नियमित रूप से लिनक्स पेजिंग (स्वैपिंग नहीं) को 60% उपयोग से पहले मेमोरी से बाहर देखता हूं। यह इसकी मेमोरी ट्यूनिंग का एक अपेक्षित टुकड़ा है:

http://www.sheepguardingllama.com/?p=2252

लेकिन आपके बफ़र्स / कैश की कमी मुझे परेशान करती है। जो बहुत ही असामान्य लगता है। तो मैं सोच रहा हूं कि कुछ ज्यादा ही एमिस है।


अरे - अच्छा कॉल - बफ़र्स / कैश कहाँ है? क्या वे बंद हैं? क्या कुछ उन्हें लगातार अमान्य कर रहा है?
मिकीबी

6

क्या आप पूरी तरह से स्वैप अक्षम करने का प्रयास कर सकते हैं?

swapoff /dev/hdb2

या कुछ ऐसे- कम से कम जो इस बात को मान्य करेंगे कि यह आपके मुद्दे की अदला-बदली है, न कि कुछ और।


+1 यह पुष्टि करने के लिए कि प्रकल्पित निदान वास्तव में समस्या का कारण है।
वेन

मैं इसे कल काम पर एक कोशिश दे दूँगा। इसके अलावा, मेरा पंजा / देव / एचडीबी 2;) पर नहीं है
कामिल

यह ध्यान दिया जाना चाहिए कि हालांकि, एक अच्छा निदान मदद होने के नाते, यह एक उत्पादन प्रणाली पर बहुत खतरनाक है। यदि आपको वास्तव में स्वैप की आवश्यकता है, तो आप जल्दी से रैम से बाहर निकल जाएंगे। और फिर OOM हत्यारा आ जाएगा और एक यादृच्छिक प्रक्रिया को मार देगा, जो सिर्फ आपका उत्पादन DB हो सकता है ...
sleske

सहमत- आपको उत्पादन के आस-पास कहीं भी ऐसा नहीं करना चाहिए।
टिम हाइलैंड

3

डिफ़ॉल्ट रूप से स्वप्नदोष को 60 के रूप में सेट किया गया है।

बिल्ली / proc / sys / vm / स्वपनदोष 60

स्वैपी एक कर्नेल है जिसका उपयोग कर्नेल को RAM पर स्वैप करने के लिए किया जाता है; उच्च स्वप्नशीलता का अर्थ है कि कर्नेल बहुत स्वैप करेगा, और कम स्वैग का अर्थ है कि कर्नेल स्वैप स्थान का उपयोग न करने का प्रयास करेगा।

हम इस संपादन को /etc/sysctl.conf में vm.swappiness का मान बदल सकते हैं ।


या आप सीधे प्रतिशत में लिख सकते हैं /proc/sys/vm/swappiness
user2284570

2

आप कर्नेल के स्वैपटनेस को मैन्युअल रूप से सेट कर सकते हैं, /proc/sys/vm/swappinessजिसे आप कमांड पर या जारी करते हुए देख सकते हैं sysctl vm.swappiness। स्वैगनेस एक कर्नेल सेटिंग है जो यह निर्धारित करती है कि स्वैप का कितना उपयोग किया जाता है।

सेट करके sudo sysctl vm.swappiness=0आप प्रभावी रूप से स्वैप विभाजन को निष्क्रिय कर रहे हैं। यह परिवर्तन आपको / जोड़ सकते हैं संशोधित स्थायी बनाने के लिए vm.swappiness=0में /etc/sysctl.conf। आपको देखना चाहिए कि आपके लिए क्या अच्छा मूल्य है। मैंने व्यक्तिगत रूप से इसे कॉन्फ़िगर किया है vm.swappiness=10, जो 60 का डिफ़ॉल्ट मान है।


काफी नहीं, स्वैग के साथ = 0 आप कह रहे हैं कि कभी भी स्वैप न करें अगर इससे बचने का कोई तरीका है, लेकिन फिर भी स्वैप करें यदि आवंटन या OOM किल को विफल करने का एकमात्र विकल्प है। मुझे लगता है कि 30 पर एक स्वैपपन लैपटॉप पर एक अच्छा सुधार है, लेकिन अन्य प्रणालियों पर इसके साथ गड़बड़ करने की आवश्यकता नहीं है।
लैपटॉप 006

1

एक और चीज जिसे आप देखना चाहते हैं, वह है आपकी कर्नेल रन कतार और निर्बाध प्रक्रियाएं (vmstat में 'r' और 'b' कॉलम) एक संकेतक है कि सिस्टम कई बार संतृप्त होता है। एक साइड नोट पर, उपयोग के साथ संतृप्ति को भ्रमित न करें ... वास्तविक समस्या संतृप्त कर्नेल के खिलाफ भूखे प्रक्रिया स्टैक हो सकती है :-(

अधिक खपत करने वाली कुछ प्रक्रियाओं से अतिरिक्त मेमोरी विवरण प्राप्त करने के लिए आप 'pmap -x [PID]' भी चला सकते हैं। मेरी तुम्हें शुभकामनाएँ!

मैट


1

हो सकता है कि आपके पास अल्पकालिक प्रक्रियाएं हों जो बहुत अधिक स्मृति का उपयोग करती हैं, फिर उन्हें नोटिस करने का मौका मिलने से पहले बाहर निकलें।

यह वैसे भी संगत होगा जो आप वैसे भी देख रहे हैं।


1

क्या आपने इनोड कैश के साथ समस्याओं की जांच की है? slabtopकम से कम आपको एक शुरुआती बिंदु देना चाहिए अगर आप कुछ इस तरह से चल रहे हैं।


0

जबकि आपकी प्रणाली 64 बिट है, सिस्टम वास्तव में उपलब्ध स्मृति के सभी को संबोधित करने में सक्षम नहीं हो सकता है। यह एक चिपसेट सीमा है। उदाहरण के लिए, पिछली पीढ़ी का मैक मिनी "4GB RAM" का समर्थन करता है लेकिन केवल 3.3GB वास्तव में पता योग्य था।


यह एक SGI Altix XE240 है, मुझे पूरा यकीन है कि यह 4 जीबी से अधिक रैम का समर्थन कर सकता है क्योंकि मैंने 32 जीबी के साथ डेमो इकाइयों का उपयोग किया है।
कामिल किसिल

'पुराने मिनी में एक चिपसेट सीमा नहीं है, उस चिपसेट को 8GB तक किया जा सकता है, हालाँकि Apple ने इसे ठीक से संभालने के लिए एड्रेसिंग लाइन्स को नहीं जोड़ा था (IIRC, लेकिन कई निर्माताओं के बीच एक सामान्य मामला है)
LapTop003
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.