Swappiness'in yeniden başlatılması gerekiyor mu?


14

Swappiness değerini ex .: 60'dan 0'a yapılandırırsam , o zaman her zaman etkili olması için makineyi değişiklikleri yeniden başlatmam gerekir? İle değişiklik yaparken bile:

sysctl -w vm.swappiness=0

Yanıtlar:


25

Verdiğiniz Wikipedia sayfasında her şey iyi açıklanmış.

# Set the swappiness value as root
echo 10 > /proc/sys/vm/swappiness

# Alternatively, run this as a non-root user
# This does the same as the previous command
sudo sysctl -w vm.swappiness=10

# Verify the change
cat /proc/sys/vm/swappiness
10

Bu noktada, sistem takası yeni yapılandırdığınız gibi yönetir, ancak ŞİMDİ yeniden başlatırsanız, değişikliğiniz unutulur ve sistem varsayılan değerle çalışır (60 olduğu varsayılır, yani% 40'da takas etmeye başlayacaktır) RAM işgali).

/etc/sysctl.confDeğişikliğinizi kalıcı olarak korumak için aşağıdaki satırı eklemeniz gerekir:

vm.swappiness = 10

Umarım şimdi sizin için daha açıktır!


-wAnahtarın değişikliği yazması ilginç . Bunu yazdıktan sonra, sysctl.conf dosyasına varsayılan satır eklemenin gerekli olmayacağı düşünülebilir.
WEBjuju

Merhaba WEBjuju, Haklısın, anahtar hala benim için çalışmıyor (fedora 25 veya centos 7). O zaman gerekli değildir, çünkü / proc dosyasındaki canlı değeri değiştirmek yine de yapılmaz.
tisc0

7

etkili olması için makineyi yeniden başlatmanız mı gerekiyor?

Bunun tersi, aslında - yeniden başlatma, swappiness'i varsayılan değerine sıfırlayacaktır. Yeniden başlatmalarda kalmasını sağlamak için, bir önyükleme komut dosyasına bir yönerge eklemeniz veya wikipedia makalesinde önerilen yöntemi kullanarak şunları eklemeniz gerekir:

vm.swappiness = ??

Kime /etc/sysctl.conf(veya bir /etc/sysctl.ddosya), ??kullanmak istediğiniz değer nerede . Bunu eklemenin o anda herhangi bir değişikliğe neden olmayacağını unutmayın.


1

Kabul edilen cevap doğrudur, ancak yanlışlıkla diğer ayarların üzerine yazmamanız için ayrı bir "sysctl" yapılandırma dosyası kullanmanız önerilir (bu, genel "sysctl.conf" dosyasının üzerine yazarsanız olabilir).

# echo 'vm.swappiness=10' >/etc/sysctl.d/swappiness.conf

"/Etc/sysctl.conf" genel yapılandırma dosyasını daha önce değiştirmiş olanlar, bu "swappiness" değerini tanımlayan satırları bu dosyadan kaldırmak isteyebilir. Aşağıdaki komutları genel yapılandırma dosyasından kaldırmak için bu komutu kullanabilirsiniz (yorumları tutarak):

# sed -i '/^vm.swappiness=/d' /etc/sysctl.conf

Şimdi, yeni değeri uygulamak sysctliçin şunu kullanın:

# sysctl -p /etc/sysctl.d/swappiness.conf

Veya swappiness dahil tüm ayarları uygulayın:

# sysctl -p /etc/sysctl.d/*

Doğrulayın:

# sysctl vm.swappiness
vm.swappiness = 10

Anlaşılan, işleri daha net ve daha güvenli hale getiren en iyi uygulamadır. Bir konfigürasyon yönetim aracı kullanırken de iyi bir alışkanlık.
tisc0

1

Bir CentOS makinesinde , vm.swappinessayarlandığını buldum /usr/lib/tuned/virtual-guest/tuned.conf.

Nerede belirleyin varsayılan ayarlanırken bakarak aracılığıyla tunedyapılandırma dosyaları :

sudo grep -R swap /usr/lib/tuned | grep swappiness

Varsayılanı güncelledikten sonra, mevcut swappiness yeniden başlatmadan ayarlanabilir :

sudo sysctl vm.swappiness=10

tarafından test edilmiştir:

cat /proc/sys/vm/swappiness

1
/etc/tuned/tuned-main.conf (RHEL7), /etc/sysctl.conf, /etc/sysctl.d, vb. ayarlanmış ayarları (ör. reapply_sysctl = 1) geçersiz kılmaya izin veren bir ayara sahiptir. En azından yüklememde, bu varsayılan değerdir.
kbulgrien

0

Kullanıcı sysctltarafından kuralla yapılan değişiklikler 60-, dosya adının olması gereken önek içeren dosyalara gider /etc/sysctl.d/60-swappiness.conf. service procps startYapılandırma değerlerini tekrar okumaya zorlamak için kök olarak yürütün (yeniden başlatma gerekmez).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.