आप लगभग वहाँ हैं, इससे कोई फर्क नहीं पड़ता कि वर्चुअल मशीन है या भौतिक मशीन है, वे सेटिंग्स हमेशा परिवर्तनशील होती हैं।
मैं 3 तरीके दिखाऊंगा।
कुछ पूर्व सूचना:
1) यदि संभव हो तो रूट के रूप में निष्पादित करना बेहतर है।
2) / यूनिक्स पर खरीद एक वास्तविक फाइल सिस्टम नहीं है, यह एक इन-मेमोरी कर्नेल फाइल सिस्टम है, लेकिन यह एक सामान्य डिस्क फाइल सिस्टम की तरह प्रतीत होता है। आप इसे 'नकली फाइलसिस्टम' या 'विशेष फाइलसिस्टम' कह सकते हैं, आप उन फर्जी फाइलों को vi या किसी अन्य संपादक के साथ संपादित नहीं कर सकते, क्योंकि वे फाइलें नहीं हैं, वे सिर्फ फाइलों की तरह दिखती हैं। मैं वर्षों पहले उसी समस्या से रुका हुआ था।
लेकिन उनके मूल्यों को बदलना सरल है, बस उन्हें संपादित करने के लिए एक और तरह के 'यांत्रिकी' की आवश्यकता होती है।
मैं समझाता हूँ: सबसे पहले, रूट होने की आवश्यकता है: (sudo कुछ डिस्ट्रोस में काम करता है, लेकिन कुछ अन्य डिस्ट्रोस पर नहीं करता है जैसे कि आपने कोशिश की, यह पहली विधि सार्वभौमिक है और किसी भी लिनक्स, macOS या किसी भी यूनिक्स-आधारित पर काम करती है आशा है कि आप रूट पासवर्ड तक पहुँच सकते हैं।
शीघ्र पर आगे बढ़ें:
$ su root
रूट पासवर्ड दर्ज करें।
अब आप रूट कर रहे हैं, आइए वर्तमान मूल्य की जाँच करें: / proc / sys / vm / max_map_count
$ cat /proc/sys/vm/max_map_count
65536
आइए इसे बदलते हैं:
echo 262144 > /proc/sys/vm/max_map_count
आइए सत्यापित करें:
cat /proc/sys/vm/max_map_count
262144
हॊ गया! और यह पहले से ही लागू और कार्यात्मक है। किसी भी छद्म फ़ाइल के मानों को बदलकर / खरीद के तहत सेटिंग्स तुरन्त सक्रिय हो जाती हैं। लेकिन वे रिबूट के बाद बने नहीं रहते। आप मान के साथ खेल सकते हैं और इलास्टिसियर या किसी अन्य एप्लिकेशन या सिस्टम मेट्रिक्स पर प्रदर्शन परिवर्तनों को माप सकते हैं। अपने सिस्टम को ट्यूनिंग करें, कुछ पेपर पर मान लिख रहे हैं, सर्वोत्तम मान रखें। किसी भी गलती पर, रिबूट करें और वे सभी मूल मूल्यों पर वापस आ जाएंगे, और तब तक फिर से शुरू करेंगे जब तक कि सभी वांछित मूल्य इष्टतम न हों। इसके अंतर्गत बहुत सारे डिस्क और मेमोरी ट्यून करने योग्य पैरामीटर हैं। और अगर आप उन्हें अच्छी तरह से ट्यून करते हैं (और इसके लिए समय है) तो वे बहुत बड़ा अंतर और प्रदर्शन हासिल करते हैं। आप सही रास्ते पर हैं।
संतुष्ट होने पर, उन्हें स्थायी करें:
पहली विधि:
/etc/rc.local का उपयोग करते हुए
vi /etc/rc.local
r.local फ़ाइल के अंदर सभी पैरामीटर डालें, उदाहरण:
echo 220000000 > /proc/sys/vm/dirty_background_bytes
echo 320000000 > /proc/sys/vm/dirty_bytes
echo 0 > /proc/sys/vm/dirty_background_ratio
echo 0 > /proc/sys/vm/dirty_ratio
echo 500 > /proc/sys/vm/dirty_writeback_centisecs
echo 4500 > /proc/sys/vm/dirty_expire_centisecs
echo 1 > /proc/sys/net/ipv4/tcp_rfc1337
echo 10 > /proc/sys/vm/swappiness
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo 120 > /proc/sys/net/ipv4/tcp_keepalive_time
echo 0 > /proc/sys/vm/zone_reclaim_mode
echo deadline > /sys/block/sda/queue/scheduler
echo 8 > /sys/class/block/sda/queue/read_ahead_kb
echo 1048575 > /proc/sys/vm/max_map_count
फ़ाइल को बचाने के लिए vi संपादक को छोड़ दें।
उन मापदंडों को हर रिबूट पर सेट किया जाएगा, लॉगिन प्रॉम्प्ट शो के ठीक पहले, सभी init सेवाएं शुरू हो गई हैं।
( /etc/rc.local फ़ाइल को सभी स्टार्टअप लाइनक्स सेवाओं के बाद निष्पादित किया जाता है, यह काम नहीं कर सकता है यदि इलास्टिक्सर्च सेवा के रूप में इससे पहले शुरू हो, लेकिन यह विधि किसी अन्य सेटअप पर उपयोगी हो सकती है यदि आपको भविष्य में ज़रूरत हो, या आप इस तरह का उपयोग कर सकते हैं उन्हें आपकी इलास्टिसिट इनिट स्क्रिप्ट के अंदर डालकर, क्योंकि इनइट स्क्रिप्ट रूट के रूप में चलती है, इसलिए यह इनिट स्क्रिप्ट का उपयोग करने के लिए ऊपर समान सिंटैक्स है)
आप उन्हें अब कॉपी भी कर सकते हैं और तुरंत बदलाव के लिए पेस्ट भी कर सकते हैं। ऊपर दिए गए पैरामीटर मान्य हैं, ट्यून किए गए हैं और मेरे अपाचे कैसेंड्रा सर्वर पर चल रहे हैं। यदि आप चाहें, तो उन्हें धुन देने के लिए एक शुरुआती बिंदु के रूप में कोशिश करें।
उन्हें स्थायी बनाने की दूसरी विधि:
अब पैरामीटर्स को लिनक्स पर किसी भी स्टार्टअप सेवा से पहले सेट किया जाएगा।
/Etc/sysctl.conf संपादित करें , अंदर पैरामीटर डालें
vm.max_map_count=1048575
vm.zone_reclaim_mode=0
vm.dirty_background_bytes=220000000
vm.dirty_background_ratio=0
vm.dirty_bytes=320000000
vm.dirty_ratio=0
vm.swappiness=10
दूसरों के साथ चलते रहें, /etc/sysctl.conf को सहेजें , परिवर्तन लागू करने के लिए अपने सर्वर को रिबूट करें, या रिबूट के बिना परिवर्तनों को लागू करने के लिए sysctl -p निष्पादित करें । वे रिबूट में स्थायी होंगे।
ऊपर दो तरीके सबसे कमोम हैं। एक और एक है, और यह आपके लिए काम कर सकता है, यह सुडो का उपयोग करके है , लगभग जैसे आप कर रहे थे:
के बजाय:
sudo sysctl -w vm.max_map_count=262144
प्रयत्न:
echo 262144 | sudo tee /proc/sys/vm/max_map_count
यह ubuntu पर काम करता है।
सत्यापित करें:
user@naos:~$ cat /proc/sys/vm/max_map_count
262144
आशा है कि मैंने किसी को मदद की है, कम से कम समस्या से निपटने के लिए 3 अलग-अलग विकल्प देकर, क्योंकि यह लगभग एक साल पुराना है;)
सादर, राफेल प्राडो