it-swarm.asia

Linux sunucusunda bellek kullanımı ve yük ortalaması nasıl anlaşılır

128 GB bellek ve 24 çekirdeğe sahip bir linux sunucu kullanıyorum. Ne kadar kullanıldığını görmek için üstü kullanıyorum. Çıktısı direğin sonuna yapıştırılır. İşte iki soru:

(1) Çalışan işlemlerin her birinin çok küçük bir bellek yüzdesi kapladığını görüyorum (% MEM en fazla% 0.2 ve en fazla sadece% 0.0), ancak toplam belleğin dördüncü çıktı satırındaki gibi neredeyse nasıl kullanıldığı ( "Mem: 130766620k toplam, 130161072k kullanılmış, 605548k ücretsiz, 919300k tampon")? Tüm işlemlerde kullanılan bellek yüzdesinin toplamının neredeyse% 100'e ulaşması pek olası görünmüyor, değil mi?

(2) ilk satırdaki yük ortalaması nasıl anlaşılır ("yük ortalaması: 14.04, 14.02, 14.00")?

Teşekkürler ve saygılar!

Düzenle:

Teşekkürler!

Aynı zamanda bir sunucunun aşırı yüklü olup olmadığını belirlemek için kullanılan bellek yüzdesine göre bazı kaba sayılar duymayı seviyorum, çünkü bir zamanlar mevcut yükü anlamadan sunucuyu sıkıştıran biri oldum.

Takas neredeyse hafıza ile aynı mı kabul edilir? Örneğin, bellek ve takas neredeyse aynı boyutta olduğunda, eğer bellek neredeyse tükeniyorsa, ancak takas hala büyük ölçüde ücretsizse, sadece kullanılan bellek + takas yüzdesi hala yüksek değil ve diğer yeni çalıştırılmış gibi görebilir miyim süreçler?

CPU veya bellek (veya bellek + takas) kullanımını nasıl değerlendirirsiniz? İkisinden biri çok yükseğe veya ikisine birden ulaşırsa endişeleniyor musunuz?

Üst çıktı :

$ top

 
 top - 12:45:33 19 güne kadar, 23:11, 18 kullanıcı, yük ortalaması: 14.04, 14.02, 14.00 
 Görevler: toplam 484 toplam, 12 koşu, 472 uyku, 0 durduruldu, 0 zombi 
 İşlemci (ler):% 36.7 bize,% 19.7 sy,% 0.0 ni,% 43.6 id,% 0.0 wa,% 0.0 hi,% 0.0 si,% 0.0 st 
 Mem: 130766620k toplam, 130161072k kullanılmış, 605548k ücretsiz, 919300k tampon 
 Takas: 63111312k toplam, 500556k kullanılmış, 62610756k ücretsiz, 124437752k önbelleğe alınmış 
 [.____. PID KULLANICI PR NI VIRT RES SHR S% CPU% MEM ZAMANI + KOMUT 
 6529 sanchez 18 -2 1075m 219m 13m S 100 0.2 13760: 23 MATLAB 
 13210 timothy 18 -2 48336 37m 1216 R 100 0.0 3: 56.75 saçmalık [.____. 13888 timothy 18 -2 48336 37m 1204 R 100 0.0 2: 04.89 saçmalık [.____. 14542 timothy 18 -2 48336 37m 1196 R 100 0.0 1: 08.34 saçmalık [.____. 14544 timothy 18 -2 2888 2076 400 R 100 0.0 1 Veri 
 6183 sanchez 18 -2 1133m 195m 13m S 100 0.2 13676: 04 MATLAB [.____. 6795 sanchez 18 -2 1079m 210m 13m S 100 0.2 13734: 26 MATLAB 
 10178 timothy 18 -2 48336 37m 1204 R 100 0.0 11: 33.93 saçmalık [.____. 12438 timothy 18 -2 48336 37m 1216 R 100 0.0 5: 38.17 saçmalık 
 13661 timothy 18 -2 48336 37m 1216 R 100 0.0 2: 44.13 saçmalık [.____. 14098 timothy 18 -2 48336 37m 1204 R 100 0.0 1: 58.31 saçmalık [.____. 14335 timothy 18 -2 48336 37m 1196 R 100 0.0 1: 08.93 saçmalık [.____. 14765 timothy 18 -2 48336 37m 1196 R 99 0.0 0: 32.57 saçmalık [.____. 13445 timothy 18 -2 48336 37m 1216 R 99 0.0 3: 01.37 saçmalık 
 28990 kök 20 0 0 0 0 S 2 0.0 65: 50.21 pdflush [.____. 12141 tim 18 -2 19380 1660 1024 R 1 0.0 0: 04.04 üst [.____. 1240 kök 15 -5 0 0 0 S 0 0.0 16: 07.11 kjournald 
 9019 kök 20 0 296m 4460 2616 S 0 0.0 82: 19.51 kdm_greet 
 1 kök 20 0 4028 728 592 S 0 0.0 0: 03.11 init [.____] 2 kök 15-5 0 0 0 S 0 0.0 0: 00.00 kthreadd 
 3 root RT -5 0 0 0 S 0 0.0 0: 01.01 göç/0 
 4 kök 15 -5 0 0 0 S 0 0.0 0: 08.13 ksoftirqd/0 
 5 kök RT -5 0 0 0 S 0 0.0 0: 00.00 bekçi köpeği/0 [.____. 6 kök = RT -5 0 0 0 S 0 0.0 17: 27.31 göç/1 
 7 kök 15 -5 0 0 0 S 0 0.0 0: 01.21 ksoftirqd/1 
 8 root RT -5 0 0 0 S 0 0.0 0: 00.00 bekçi köpeği/1 
 9 root RT -5 0 0 0 S 0 0,0 10: 02,56 göç/2 
 10 kök 15 -5 0 0 0 S 0 0,0 0: 00,34 ksoftirqd/2 
 11 kök RT -5 0 0 0 S 0 0.0 0: 00.00 bekçi köpeği/2 
 12 kök RT -5 0 0 0 S 0 0.0 4: 29.53 göç/3 [.____. 13 kök 15 - 5 0 0 0 S 0 0.0 0: 00.34 ksoftirqd/3 
57
Tim

(1) Çalışan işlemlerin her birinin çok küçük bir bellek yüzdesi kapladığını görüyorum (% MEM en fazla% 0.2 ve en fazla sadece% 0.0), ancak toplam belleğin dördüncü çıktı satırındaki gibi neredeyse nasıl kullanıldığı ( "Mem: 130766620k toplam, 130161072k kullanılmış, 605548k ücretsiz, 919300k tampon")? Tüm işlemlerde kullanılan bellek yüzdesinin toplamının neredeyse% 100'e ulaşması pek olası görünmüyor, değil mi?

Şu anda ne kadar bellek kullandığınızı görmek için free -m. Gibi çıktı sağlayacaktır:

 toplam kullanılmış ücretsiz paylaşılan tamponlar önbelleğe alındı ​​
 Mem: 2012 1923 88 0 91 515 
 -/+ tamponlar/önbellek: 1316 695 
 Takas: 3153 256 2896 

Üst sıradaki 'kullanılmış' (1923) değeri hemen hemen her zaman üst sıradaki mem değeriyle (2012) hemen hemen aynı olacaktır. Linux disk bloklarını önbelleğe almak için herhangi bir yedek bellek kullanmayı sever (515).

Bakmak için kullanılan şekil, arabellek/önbellek satırı kullanılan değerdir (1316). Uygulamalarınız şu anda ne kadar alan kullanıyor. En iyi performans için bu sayı toplam (2012) belleğinizden az olmalıdır. Bellek yetersiz hatalarını önlemek için, toplam bellek (2012) ve takas alanından (3153) daha az olması gerekir.

Ne kadar belleğin boş olduğunu hızlı bir şekilde görmek istiyorsanız, arabelleklere/önbellek satırı boş değerine bakın (695). Bu toplam bellektir (2012) - kullanılan gerçek (1316). (2012 - 1316 = 696, 695 değil, bu sadece bir yuvarlama sorunu olacak)

(2) ilk satırdaki yük ortalaması nasıl anlaşılır ("yük ortalaması: 14.04, 14.02, 14.00")?

Yük ortalamasıyla ilgili bu makale Güzel bir trafik benzetmesi kullanıyor ve şu ana kadar bulduğum en iyisi: Linux CPU Yükünü Anlama - ne zaman endişelenmelisiniz? . Sizin durumunuzda, insanların işaret ettiği gibi:

Çok işlemcili sistemde, yük mevcut işlemci çekirdeği sayısına göredir. "% 100 kullanım" işareti tek çekirdekli sistemde 1,00, çift çekirdekli, 2,00, dört çekirdekli vb.

Bu nedenle, ortalama 14,00 ve 24 çekirdekli bir yük ile sunucunuz aşırı yüklenmekten uzaktır.

56
Pascal Thivent

Linux da dahil olmak üzere Unix benzeri sistemler, mevcut RAM işlevini en verimli şekilde kullanmak için tasarlanmıştır. Çok genel bir ifadeyle, her bir MB RAM öğesinin içinde olabileceği 3 durum vardır:

  1. Bedava
  2. İşlem tarafından kullanılır
  3. Tamponlar için kullanılır

3. durum yalnızca çalışma alanı olarak kullanılır ve gerektiğinde yeniden atanması amaçlanır, yani programlar için toplam kullanılabilir belleğiniz gerçekten Ücretsiz + UsedforBuffers'tır. Bu nedenle, arabellek tahsis edilen alanı belirli bir sürece atanmış olarak görmezsiniz.

Yük ortalama sorunuz biraz daha ilginç, çünkü kolayca yorumlanabiliyor. Hikayenin tamamı için bkz. linuxjournal makale . En iyi özet, makaleden doğrudan bir alıntıdır,

Yük ortalaması hesaplaması en iyi, Linux'un çalışma kuyruğunda çalışan veya kesintisiz olarak işaretlenmiş işlemlerin hareketli bir ortalaması olarak düşünülür.

Yani, yük ortalamanızı (çalışan işlem sayısı) + (IO'da bekleyen işlem sayısı) olarak düşünebilirsiniz. Herhangi bir zamanda $ CORE işlemlerin gerçekleştirilebileceğini aklınızda tutarak, 14 ortalama yükünüzün oldukça düşük olduğunu söyleyebilirim.

17
Scott Pack

sar kılavuz sayfasından:

 Yük ortalaması, çalıştırılabilir veya 
 Çalışan görevlerin ortalama sayısı (R durumu) ve belirtilen aralıkta kesintisiz 
 Uykuda (D durumu) görev sayısı olarak hesaplanır . 

uptime kılavuz sayfasından:

 Sistem yük ortalamaları, çalıştırılabilir veya kesintisiz bir durumda 
 Olan ortalama işlem sayısıdır. Çalıştırılabilir durumdaki bir işlem 
 Ya CPU'yu kullanıyor ya da CPU'yu kullanmayı bekliyor. Unin - 
 Durdurulabilir durumdaki bir süreç, örneğin disk beklerken bazı I/O erişimi bekliyor. 
 Ortalamalar üç zaman aralığında alınır. Yük ortalamaları 
, Bir sistemdeki CPU sayısı için normalleştirilmez, bu nedenle yük önleyici - 
 1 yaş, 4 
 CPU sistemi% 75 boşta olduğu anlamına gelir. 
  1. Linux, bir süredir hafızasını top hattını temel olarak işe yaramaz hale getirecek şekilde yönetti ve genellikle makinenin belleğinin çoğunu, bir kullanıcı işlemi için gerekli olmadığında çeşitli kullanımlar için tahsis etti.
  2. Yük ortalaması, çalışan veya çalışmayı bekleyen ortalama işlem sayısıdır. Genellikle sistem gecikmesi/yanıt hızı ile güçlü bir negatif korelasyona sahiptir, bu yüzden mümkün olduğunca düşük olmasını istersiniz. CPU'larınızın her biri herhangi bir zamanda bir şey çalıştırabileceğinden, 14'te oldukça iyi iş yapıyor gibi görünüyorsunuz.
3
chaos

Yük ortalaması harika bir şey. Temel olarak% 100 kullanımın ötesinde neler olduğunu anlamanıza olanak tanır: http://en.wikipedia.org/wiki/Load_%28computing%29

0
dmityugov