neredeyse oradasınız, Sanal bir makine veya fiziksel bir makine olması önemli değil, bu ayarlar her zaman değiştirilebilir.
3 yöntem göstereceğim.
Bazı ön bilgiler:
1) Mümkünse kök olarak yürütmek daha iyidir.
2) / proc on unix gerçek bir dosya sistemi değildir, bellek içi bir çekirdek dosya sistemidir, ancak normal bir disk dosya sistemi gibi görünmektedir. Buna 'sahte dosya sistemi' veya 'özel dosya sistemi' diyebilirsiniz, bu sahte dosyaları vi veya başka bir düzenleyici ile düzenleyemezsiniz, çünkü bunlar dosya değil, sadece dosyaya benziyorlar. Yıllar önce aynı sorunla karşılaştım.
Ancak değerlerini değiştirmek basittir, bunları düzenlemek için başka bir tür 'mekanik' gerektirir.
Açıklayacağım: İlk olarak, root olmanız gerekir: (sudo bazı dağıtımlarda çalışır, ancak denediğiniz gibi başka dağıtımlarda çalışmaz, bu ilk yöntem evrenseldir ve herhangi bir Linux, macOS veya Unix tabanlı herhangi bir bilgisayarda çalışır Umarım root şifresine erişiminiz olur.
Hemen devam edin:
$ su root
Kök şifresini girin.
Şimdi köksünüz , şu anki değerini kontrol edelim: / proc / sys / vm / max_map_count
$ cat /proc/sys/vm/max_map_count
65536
Değiştirelim:
echo 262144 > /proc/sys/vm/max_map_count
Doğrulayalım:
cat /proc/sys/vm/max_map_count
262144
Bitti! Ve zaten uygulanmış ve işlevsel. / Proc altındaki herhangi bir sözde dosyanın değerlerini değiştirerek ayarlar anında etkinleşir. Ancak yeniden başlatmanın ardından devam etmezler. Elasticsearh veya başka herhangi bir uygulama veya sistem metriklerinde değerlerle oynayabilir ve performans değişikliklerini ölçebilirsiniz . Sisteminizi düzeltmeye çalışın, değerleri bir kağıda yazın, en iyi değerleri koruyun. Herhangi bir hata durumunda, yeniden başlatın ve hepsi orijinal değerlerine geri dönecek ve istenen tüm değerler optimal olana kadar yeniden başlayacaktır. / Proc altında çok fazla disk ve bellekle ayarlanabilen parametre var. Ve onları iyi ayarlamanız (ve bunun için zamanınız olması) durumunda büyük bir fark ve performans kazancı yaratırlar. Doğru yoldasınız.
Memnun kaldıklarında, onları kalıcı hale getirelim:
İlk yöntem:
/etc/rc.local kullanma
vi /etc/rc.local
tüm parametreleri rc.local dosyasının içine koyun, örnek:
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 editörü dosyayı kaydetmeden çıkın.
Bu parametreler, tüm başlatma hizmetleri başlatıldıktan SONRA, oturum açma istemi gösterilmeden hemen önce her yeniden başlatmada ayarlanır.
( /etc/rc.local dosyası tüm başlangıç linux hizmetlerinden sonra yürütülür, elasticsearch bir hizmet olarak önce başlıyorsa çalışmayabilir, ancak gelecekte bu yöntem başka bir kurulumda yararlı olabilir veya bu şekilde kullanabilirsiniz elasticsearch init betiğinizin içine yerleştirerek, init betiği kök olarak çalıştığından, init betiğinin içinde kullanmak için yukarıdaki sözdizimiyle aynıdır)
Ayrıca şimdi kopyalayabilir ve anlık değişiklikler için yapıştırabilirsiniz. Yukarıdaki parametreler geçerli, ayarlanmış ve apache cassandra sunucumda çalışıyor. İsterseniz, bunları ayarlamak için bir başlangıç noktası olarak deneyin.
Kalıcı hale getirmenin ikinci yöntemi:
Parametreler artık linux'daki herhangi bir başlatma hizmetinden ÖNCE ayarlanacaktır.
Düzen /etc/sysctl.conf , koyun parametreler içeride
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
diğerleriyle devam edin, /etc/sysctl.conf dosyasını kaydedin , değişiklikleri uygulamak için sunucunuzu yeniden başlatın veya değişiklikleri yeniden başlatmaksızın uygulamak için sysctl -p komutunu çalıştırın . Yeniden başlatmalarda kalıcı olacaklar.
Yukarıdaki iki yöntem en yaygın olanıdır. Başka bir tane var ve sizin için işe yarayabilir , neredeyse sudo yaptığınız gibi, sudo kullanarak :
onun yerine:
sudo sysctl -w vm.max_map_count=262144
Deneyin:
echo 262144 | sudo tee /proc/sys/vm/max_map_count
Ubuntu üzerinde çalışır.
Doğrulayın:
user@naos:~$ cat /proc/sys/vm/max_map_count
262144
Umarım bir şekilde yardımcı oldum, en azından sorunla başa çıkmak için 3 farklı seçenek vererek, sorunuz neredeyse bir yaşında olduğu için;)
Saygılarımızla, Rafael Prado