“Top” daki hafıza kullanımı neden artmıyor?


28

Bazen en üste çıktığımda , işlem tablosundaki her işlemin bellek kullanımının toplamı artırmadığını fark ettim .

Örneğin, aşağıdaki çöplükte, üstte 16 Gb bellek kullandığımı söylüyor. Bununla birlikte, işlem tablosu yalnızca 520 Mb'ın biraz üzerinde olan iki işlemi göstermektedir. Diğer 15.5 Gb'yi neyin tükettiğini nasıl öğrenebilirim? (CentOS kullanıyorum.)

$ top

top - 12:16:34 45 gün, 2:28, 3 kullanıcı, yük ortalama: 0.24, 0.65, 0.71
Görevler: Toplam 274, 1 koşu, 273 uyku, 0 durdu, 0 zombi
Cpu (lar):% 2.3 bize,% 0.2 sy,% 0.0 ni,% 97.5 id,% 0.0 wa,% 0.0 hi,% 0.0 si,% 0.0 st
Mem: 16432032k toplam, 16340144k kullanılmış, 91888k ücretsiz, 21736k tampon
Takas: 18481144k toplam, 1112k kullanılmış, 18480032k ücretsiz, 15624488k önbelleğe alınmış

  PID KULLANICI PR NI VIRT RES SHR S% CPU% MEM ZAMANı + KOMUTANLIĞI
18159 Demirci 15 0 260m 31m 4560 S 16.6 0.2 53: 35.64 piton
 4795 26 15 0 260m 6608 4220 S 2.0 0.0 0: 00.06 posta görevlisi
    1 root 15 0 10344 680 568 S 0.0 0.0 0: 39.36 giriş
    2 kök RT -5 0 0 0 S 0.0 0.0 0: 00.53 göç / 0
    3 root 34 19 0 0 0 S 0.0 0.0 0: 00.62 ksoftirqd / 0
    4 kök RT -5 0 0 0 S 0.0 0.0 0: 00.00 bekçi / 0
    5 kök RT -5 0 0 0 S 0.0 0.0 0: 02.09 göç / 1
    6 root 34 19 0 0 0 S 0,0 0,0 0: 01,32 ksoftirqd / 1
    7 kök RT -5 0 0 0 S 0.0 0.0 0: 00.00 bekçi / 1
    8 kök RT -5 0 0 0 S 0.0 0.0 0: 00.99 göç / 2
    9 root 34 19 0 0 0 S 0,0 0,0 0: 01,74 ksoftirqd / 2
   10 kök RT -5 0 0 0 S 0.0 0.0 0: 00.00 bekçi / 2
   11 kök RT -5 0 0 0 S 0.0 0.0 0: 02.16 göç / 3
   12 kök 34 19 0 0 0 S 0,0 0,0 0: 01,30 ksoftirqd / 3
   13 kök RT -5 0 0 0 S 0.0 0.0 0: 00.00 bekçi / 3
   14 kök RT -5 0 0 0 S 0.0 0.0 0: 01.94 göç / 4
   15 root 34 19 0 0 0 S 0,0 0,0 0: 01,78 ksoftirqd / 4
   16 kök RT -5 0 0 0 S 0.0 0.0 0: 00.00 bekçi / 4
   17 kök RT -5 0 0 0 S 0.0 0.0 0: 01.92 göç / 5
   18 root 34 19 0 0 0 S 0,0 0,0 0: 01,30 ksoftirqd / 5
   19 kök RT -5 0 0 0 S 0.0 0.0 0: 00.00 bekçi / 5
   20 kök RT -5 0 0 0 S 0.0 0.0 0: 02.06 geçiş / 6
   21 root 34 19 0 0 0 S 0,0 0,0 0: 01,83 ksoftirqd / 6
   22 kök RT -5 0 0 0 S 0.0 0.0 0: 00.00 bekçi / 6
   23 kök RT -5 0 0 0 S 0.0 0.0 0: 02.31 göç / 7
   24 root 34 19 0 0 0 S 0,0 0,0 0: 01,50 ksoftirqd / 7
   25 kök RT -5 0 0 0 S 0.0 0.0 0: 00.00 bekçi / 7
   26 root 10 -5 0 0 0 S 0,0 0,0 0: 00,42 olaylar / 0
   27 root 10 -5 0 0 0 S 0,0 0,0 0: 00,28 olaylar / 1
   28 root 10 -5 0 0 0 S 0.0 0.0 0: 00.37 olaylar / 2
   29 root 10 -5 0 0 0 S 0.0 0.0 0: 00.21 olaylar / 3
   30 kök 10 -5 0 0 0 S 0,0 0,0 0: 00,38 olaylar / 4
   31 root 10 -5 0 0 0 S 0.0 0.0 0: 00.27 olaylar / 5
   32 root 10 -5 0 0 0 S 0.0 0.0 0: 00.52 olaylar / 6
   33 root 10 -5 0 0 0 S 0,0 0,0 0: 00,64 olaylar / 7
   34 root 10 -5 0 0 0 S 0,0 0,0 0: 00,00 khelper

Yanıtlar:


26

Bellek kullanımıyla ilgili satırları üstte:

Mem: 16432032k total, 16340144k used, 91888k free, 21736k buffers
Swap: 18481144k total, 1112k used, 18480032k free, 15624488k cached

Takası görmezden gelelim. Toplam hafıza, kullanılan ve boş hafızanın toplamına eşittir. Kullanılan, diğer yandan, "gerçekten uygulamalar tarafından kullanılan" ve önbellek ve tamponların toplamıdır. Yani, senin durumunda böyle gider:

  • Mem = 16432032k = 16340144k + 91888k;
  • "Gerçekten uygulamalar tarafından kullanılır" = Kullanılmış - (önbellek + tamponlar) = 16340144k - (15624488k + 21736k) = 693920k.

Diğer 15,5 GB önbelleğe alınır. Bu performansı artırır. Ancak, şu anda bir uygulama önbelleğe alınmış belleğin bir bölümünü gerektirir ve hemen ona verilir. Bazı aç bellek uygulamaları çalıştırıp izlerseniz bunu fark edeceksiniz top.


1

Bu liste 274 totalbana süreç gibi görünmüyor . Top genellikle yalnızca terminalinize / ekranınıza uygun olanları görüntüler. ps auxBunun yerine kullanın ve rssdeğeri ekleyin (veya sürümünüzün hangi yerleşik bellek sütununda olursa olsun).

Ayrıca sanal bellek boyutunu eklemek istemiyorsunuz, aslında resident ( RES) sütunuyla ilgileniyorsunuz .

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.