Linux 0 takas bırakarak yavaş çalışıyor


4

Linux sunucumuz çok yavaş yanıt veriyor. topaşırı CPU kullanımı göstermez. 5GB'lık boş hafıza olmasına rağmen, sistemde herhangi bir takas boşluğu kalmadan takas işlemlerinin kullanıldığını fark ettim. Bu, sistemin yavaş çalışmasının nedeni olabilir mi? İşlem sayısını azaltmaktan başka bir çözüm var mı?

İkincisi, boş hafıza olmasına rağmen, neden Linux zaten değişiyor? Takas işleminin yalnızca gerçek bellek kalmadığında kullanıldığını sanıyordum.

free -m
             total       used       free     shared    buffers     cached
Mem:         32045      26218       5826          0        127        123
-/+ buffers/cache:      25967       6077
Swap:        16387      16387          0

Güncelleme:

  • değiş tokuş varsayılan seviyede: 60
  • Bunun bir numa sistemi olduğunu sanmıyorum
  • 8GB'lık yığınla çalışan birkaç java işlemi görüyorum: -Xms8000m -Xmx8000m

İlk bakışta fındık gibi görünüyor, ama muhtemelen birinin bunu yapması için sebepleri vardı. Sanırım takasın çoğunu yiyen şey bu, ama Java yığınının Linux takasını ve genel olarak belleği / performansı nasıl etkilediğini daha fazla araştırmam gerekiyor. Yukarıda belirtilen Java öbek konfigürasyonunun sistem performansı üzerindeki etkisine dair herhangi bir işaretçi gerçekten yardımcı olacaktır.


Bu bir numa sistemi mi? Belki de kaynaklar eşit dağılmaz (örneğin, çok fazla hafıza alan bir işlem) ve bir düğümde boş hafıza kalmamış mı?
Ulrich Dangel

3
Takas kullanmak mutlaka kötü değildir. Takas etkinliği olduğunu doğrulamak için vmstatveya iotopdüğmesini kullanın .
mgorven

Eğer boş bir disk alanınız varsa, bir takas dosyası ekleyebilir ve a) performansın hala bir takas olduğu sürece tekrar yükselirse ve b) takas işleminin tekrar kullanılmasının ne kadar sürdüğünü görebilirsiniz.
Christian

1
Kalan takas bırakmadan çalıştırma, sistemi yavaşlatır, çünkü disk dosyalarını önbellekte rahat bir şekilde saklamak için yeterli RAM kalmamıştır.
Gilles

Yanıtlar:


2

8GB'lık yığınla kaç tane Java işlemi başlatıldı? Belki maksimum 8'de kalsın ve ilk yığın büyüklüğünü azaltın. Disk alanınız varsa, takas boyutunu da artırmayı deneyin


2

Eğer var mı tmpfsbağlar? Bunlar takas ile yedeklenir ve mevcut sıfır takas alanının nedeni olabilir. Beklenmeyen bir şey var mı syslogveya dmesggösterin? Sisteminizin sürekli değişmediğinden emin misiniz? Kontrol vmstat -SK 1ve sütunları doğrulamak sive so(takas sayfaları ve dışarı KB / s). Hangi işlemlerin değişmekte olduğunu bilmeniz gerekiyorsa, koşun sudo iotop -od5. Ubuntu kullanıyorsanız, delayaccttam istatistikler için çekirdek bayrağına ihtiyacınız var . Benim için, sisteminizde böyle küçük bir sistem belleği için çok küçük bir önbellek ve arabellek var gibi görünüyor.

Değişim, tüm sistem performansını iyileştirmek için kullanılır. Bunun bir örneği, disk önbelleği veya dosya arabellekleri için daha fazla bellek kullanmaya izin vermek için halihazırda uyuyan büyük bir programın parçalarını değiştirmek olabilir. Bu durumda takas özelliğini devre dışı bırakmanız durumunda, sistem etkin şekilde daha küçük disk önbelleğine ve dosya arabelleğine sahip olacaktır. Takas alanınız dolu olduğundan, aynı sorundan etkili bir şekilde muzdarip olabilirsiniz.

Takas alanı özellikle, hafızayı sızdıran herhangi bir programınız varsa (yani, bir program gerçekten kullanılmayan bir hafıza bloğu edinirse) önemlidir. Böyle bir "sızıntı" programda bir hata olmayabilir, sadece hafızanın nadiren kullanılmasına neden olabilir, bu da sızdırılmış olarak daha iyi kullanılmasını sağlar. Takas alanı olmadan, bu tür sızan bellek önbellek veya arabellek olarak kullanılamaz.

Sanal belleğe sahip düzgün çalışan bir işletim sistemi, tüm çalışma kümesi (erişilen tüm dosyalar, uygulamalar tarafından ayrılmış tüm bellekler ve tüm yazma arabellekleri) sistemin tüm çalışma zamanı için tam olarak yerine sığmadıkça hemen hemen her zaman takas kullanıyor. Çoğu durumda, bu yalnızca sistem sürekli olarak yeniden başlatıldığında veya sistemin tüm dosya sistemi boyutuna kıyasla çok miktarda RAM içermesi durumunda geçerlidir.


1
2019’daki güncelleme: Tekrar soruya bakıldığında, sisteminizin yaklaşık 5 GB RAM gerektiren bazı kısa ömürlü işlemler gerçekleştirdiğini tahmin ediyorum. Bu, sizin buffersve çıktıdaki cacheddeğerlerin freegerçekten yavaşlamasına, takas alanının doldurulmasına ve genel yavaşlamaya neden olur. Bu kadar büyük bir miktarınız olduğu gerçeği free, sorunu araştırdığınız anda büyük miktarda RAM gerektiren sürecin zaten gittiğini gösteriyor. Soruna neden olan süreç kolayca bilemiyorum, bu kurmanın zamanı geldi sarve belgeleri okuyun: man sar.
Mikko Rantalainen
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.