Varsayılan swappiness 60 neden? Masaüstü bilgisayarım için swappiness değerini düşürürsem ne olur?


16

Çeşitli forumlarda swappiness hakkında okuyordum ve bazı videolar gördüm. Birçoğu, masaüstü kullanıcılarının swappiness değerini 60'ın altına düşürmesinin iyi bir şey olduğunu belirtti (bu varsayılan değerdir). Bazıları 60'ın sunucular için iyi olduğunu belirtti. Tam olarak neden düşürmem benim için daha iyi ve sunucular için neden 60 iyi? Bir cevap aramaya çalıştım ( örneğin buraya baktım ) ama anlayamadım. ... Lütfen kolay terimler kullanın: D


soruyu düzenledi. Şimdi iyi mi?
Mina Michael

Yanıtlar:


22

Sizin öncülünüz yanlış. 'Sunucular için iyi' takas değeri yoktur.

Takas, yapılan takas miktarıdır, özellikle ne kadar agresif takas yaptığınız. Sunucularım için, her şey için yeterli belleğe sahip olduklarından emin olduğum için swappiness sıfıra yakın. 'Sunucular için en iyisi' değeri yoktur. varsayılan değer olan 60 ve daha sonra kullanıma ve kullanılabilir belleğe bağlı olan "değeriniz" vardır.

Bazen bellek LOADS kullanan sunucularınız varsa, bunları varsayılandan daha yüksek olabilirsiniz, ancak bazı sunucuların (veritabanı sunucuları?) Bir ev bilgisayarından daha düşük tutmak isteyebileceğini söyleyebilirim.


iyi tamam: DI bu unix.stackexchange.com/questions/88693/… izliyordu . ikinci cevap (şu anda 2 yukarı oy veren) 60'ın sunucular için en uygun olabileceğini söyledi. ... ve bunu düzleştireyim. Birden fazla küçük işlem yaparsam büyük bellek ve düşük bellek gerektiren işlemler yaparsam yüksek bir swappiness ayarlamalıyım?
Mina Michael

(ve bilgisayarımın teknik özelliklerine bağlı olarak) bu arada Intel entegre grafikleri ile 2.9 GHz hakkında bir çekirdek 2 ikilisi var
Mina Michael

1
Söylemesi imkansız. Bu cevapta da belirtildiği gibi birçok şeye bağlıdır -> bazı veritabanları kendi önbelleklemelerini yapabilir, ancak bazıları yapamaz. Programlara ve donanımınıza bağlıdır. Varsayılan ve yapabileceğiniz en iyi şey, sisteminizin hangi durumda performans gösterdiğini test etmektir. Dediğim gibi, sistemlerime yeterince mem ekledim ve neye ihtiyaç duyduklarını biliyorum, bu yüzden 0 civarında swappiness olabilir. Ancak sağlıklı sistemlerde bazı swapping iyi bir şey olabilir. burada 'herkes için tanrı' kolay kurulum tavsiyesi yoktur, en iyi oylanan cevabı okuyun. Ayrıca: Bu 2. cevapta "olabilir", "değil" diyor
Nanne

(ve özelliklerinize göre: sahip olduğunuz bellek ve sizden bahsediyorsanız en önemli şey, ancak buraya eklemenize gerek yok: günlerce her türlü özellik hakkında konuşabiliriz, yapılacak en iyi şey verdiğiniz bu unix bağlantısına en yüksek cevabı verin ve ortamınızda nasıl çalıştığını test etmeye devam edin.) '
Nanne

o zaman ne okuduğumu anlayamadığımı söyledim. Bilgi (ve hatta dürüst XD olmak için dil) oldukça zayıfım ... bu yüzden denemeye devam etmeliyim! tamam teşekkürler: D
Mina Michael

8

Swappiness değeri insanları şaşırtacak şekilde ölçeklendirilir. 0-100 aralığında olduğunu görüyorlar, bu yüzden gerçekten minimum minimum yaklaşık 50 olduğunda yüzde düşünüyorlar.

60 kabaca yaklaşık% 80 bellek kullanımına ulaşana kadar takas etmemeniz anlamına gelir ve önbellek için% 20 kalır. 50, hafızamız bitene kadar beklemek demektir. Düşük değerler aynı anlama gelir, ancak hafızayı başka yollarla boşaltmaya çalışırken artan saldırganlık ile.

Tarif oldukça iyi http://lwn.net/Articles/83588/


Daha yüksek değerler ne anlama gelir, örneğin 80 veya 100?
jocull

5

Swappiness ayarı, Linux'un belirli bir senaryoda değiş tokuşun faydalarını / dezavantajlarını hesaplama biçiminde yapılan bir değişikliktir. Yüksek bir swappiness, gerekmediğinde sistemin değişmesine neden olmaz ve düşük swapiness, tamamen değiştirmeyi devre dışı bırakmamanız koşuluyla, sisteminizin kesinlikle gerektiğinde değiştirilmesini engellemez.

60 ya da daha fazla varsayılan swappiness, kullanılmayan ayrılmış program belleği varken önbellek ayırmak için çok zorlamadığından emin olarak sisteminizin iyi bir performans göstermesini sağlayan çok iyi bir uzlaşmadır.

Tüm işlemleriniz ve önbellek için bol miktarda RAM'iniz varsa, genellikle bol miktarda fiziksel RAM'iniz varsa durum böyle olmalıdır, takas zaten sizin için bir sorun olmamalıdır. Çok fazla takas sorununu gidermenin tercih edilen yolu, işlemlerin RAM kullanımını azaltmak ve / veya fiziksel RAM'i arttırmaktır. Gerçekten ihtiyacınız olan şey daha fazla RAM ise, swappiness'i azaltmanın olumsuz bir etkisi olacaktır.

Lütfen çok benzer bir soruya yazdığım cevaba bakınız:

/ubuntu//a/184221/54256

Alıntı:

Çoğu insan neden swappiness'i 10-20'ye düşürmeyi önerir?

Çoğu, takasın = kötü olduğuna ve takas oranını azaltmazsanız, sistemin gerçekten ihtiyaç duymadığında takas edeceğine inanmaktadır. Bunların hiçbiri gerçekten doğru değil. İnsanlar takaslarını sistemlerinin çöktüğü zamanlarla ilişkilendiriyorlar, ancak çoğunlukla takas oluyor çünkü sistem tersine dönüyor, tersine değil. Takasın fark edilir bir performans cezasına sahip olabileceği belirli zamanlar olduğu doğrudur, ancak sistem zaten takas etme kararında bunu hesaba katmış olacak ve bunu yapmamanın sistem performansı veya istikrarı için daha büyük bir genel cezaya sahip olacağına karar verecektir. daha sonra fark edilir hale gelir. Genel olarak, varsayılan ayarlar en iyi genel performans ve güvenilirlik ile sonuçlanmalıdır. Varsayılan olarak bırakmanızı tavsiye ederim.

...

Düzgün çalışan bir önbellek için yeterli bellek kalmayacak kadar bellek kullandıktan sonra, Linux kullanılmayan bazı uygulama belleğini takas etmek için RAM'den yeniden tahsis edebilir.

Ancak kesin bir kesime göre bunu yapmaz. Belli bir tahsis yüzdesine ulaştığınız gibi değil, Linux değişmeye başlar. Oldukça "bulanık" bir algoritmaya sahiptir. En iyi şekilde "bellek tahsisi için ne kadar baskı olduğu" ile açıklanabilecek birçok şey hesaba katılır. Yeni bellek ayırmak için çok fazla "baskı" varsa, o zaman bazılarının daha fazla yer açmak için takas şansını artıracaktır. Daha az "basınç" varsa, bu şansı azaltacaktır.

Sisteminizde, bu "basıncın" nasıl hesaplandığını değiştirmenize yardımcı olan bir "swappiness" ayarı vardır. Normalde bunu değiştirmemeniz tavsiye edilmez ve kesinlikle değiştirmenizi tavsiye etmem. Takas yapmak genel olarak çok iyi bir şeydir - ara sıra performans cezalarının, çok çeşitli görevler için genel sistem duyarlılığı ve istikrarı ile dengelenmesi amaçlanmıştır. Değişmeyi azaltırsanız, önbellek miktarının, gerçekten yararlı olsa bile, aksi takdirde biraz daha fazla büzülmesine izin verirsiniz. Bu nedenle, genel olarak bilgisayarınızı yavaşlatma riskiyle karşı karşıya kalırsınız, çünkü bellek bile onu kullanmayan uygulamalar tarafından alınırken daha az önbellek vardır. Bunun, takasla ilgili yaşadığınız belirli bir sorun için yeterince iyi bir değişim olup olmadığı size bağlıdır.

Sistem çöktüğünde ve yoğun bir şekilde değiştiğinde ne oluyor?

Çoğu zaman insanlar diski yoğun bir şekilde çökerten ve takas alanı kullanan ve bunun için suçlayan sistemlerine bakacaklar. Bu yanlış yaklaşımdır. Eğer takas bu uç noktaya ulaşırsa, sisteminizin belleği son derece düşüktür ve takas işlemi, işlemleri rastgele çökmesine veya öldürmesine engel olan tek şeydir. Değiştirmeden, bu durumda süreçler çökecek ve ölecektir. Değiştirme, daha derin bir sorunun belirtisidir. Tüm görevleri için yeterli belleğe sahip bir sistemde takas, yalnızca belleğin verimli bir şekilde kullanılmasını sağlar ve belleğe değeceğini gördüğü hareketsiz süreçler üzerinden önbelleğe dağıtır. Değiştirmenin diski durmaksızın durdurduğu bir sistemde, değiştirmenin hatası değildir.

Diske ne değiştirileceğini seçerken, sistem gerçekte kullanılmayan belleği okumaya çalışır. Bunu hesaplamak için çoğu zaman iyi bir seçim yapan oldukça basit bir algoritmaya sahiptir.

...

Ancak takas sistemimi nasıl hızlandırabilir? Yavaş şeyleri değiştirmiyor mu?

RAM'den takas için veri aktarma işlemi yavaş bir işlemdir, ancak yalnızca çekirdeğin genel yararın bundan daha ağır basacağından emin olduğu zaman alınır. Örneğin, uygulama belleğiniz neredeyse hiç önbelleğiniz kalmadığı noktaya yükseldiyse ve bu nedenle G / Ç'niz çok verimsizse, hatta biraz bellek boşaltarak sisteminizden çok daha fazla hız alabilirsiniz. veriyi boşaltmak için ilk takas masrafından sonra.

Yazının tamamını /ubuntu//a/184221/54256 adresinden okuyabilirsiniz.


0

Swappiness tüm bu cevaplarla tamamen çelişmektedir.

Swappiness'in gerçek çalışması makalede açıklanmıştır: https://gokulvasanblog.wordpress.com/2016/11/14/empathising-mammoths-mentality-a-study-on-linux-memory-management/

Belirsizlik Andrew Morton'un ifadesiyle destekleniyor: https://lwn.net/Articles/83593/

Parmaklarımı kulaklarıma yapıştıracağım ve insanlar söyleyene kadar "la la la" söyleyeceğim "Swappiness'i sıfıra ayarladım ve yapmasını istediğim şeyi yapmadım".

Umarım faydalıdır


1
AU'ya hoş geldiniz. İşaret ettiğin makalenin kilit noktalarını özetleyebilir ve sorunun nasıl cevaplandığını açıklayabilir misin?
Marc Vanhoomissen
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.