FreeBSD'deki farklı bellek sayaçları ne anlama geliyor?


20

üst bana şunu söylüyor:

last pid: 64807;  load averages:  0.99,  0.97,  0.92                                          up 189+04:47:22 09:16:17
45 processes:  1 running, 44 sleeping
CPU:  0.4% user,  0.0% nice,  0.2% system,  6.4% interrupt, 93.0% idle
Mem: 222M Active, 2151M Inact, 2008M Wired, 823M Buf, 3499M Free
Swap: 8192M Total, 8192M Free

Munin bunu biraz daha açık bir şekilde gösteriyor:

rtr1 yıllık bellek kullanımı

Gördüğünüz gibi, sunucunun yaklaşık 8GB ram'si var. Bu canavarı daha mütevazı bir 2GB sunucusuna sıkıştırabilir miyim diye merak ediyorum . Şimdi aktif ve tamponların ne anlama geldiğini biliyorum. Ama gerçekten "kablolu" ve "etkin olmayan" bellek yığınlarından endişeliyim. Bunlar bildiğim kadarıyla mevcut herhangi bir süreçle eşleşmiyor.

Aralık ayında yeşil "etkin" hattın nasıl yükseldiğine dikkat edin: işte o zaman bu yönlendiricide BGP arka plan programı kullanmaya başladık. Nisan ve Mayıs aylarında ne olduğunu tam olarak anlamadım, ancak bir sistem yükseltmesi yaptığını ve o zamanlar pkgng'a geçildiğini hatırlıyorum .

İşte daha az koç (4GB) ile birincisi için yedek yönlendirici:

rtr0 yıllık bellek kullanımı

Bu, RAM'in yarısı ile mükemmel bir şekilde yaşıyor ve hala 2GB civarında serbest bırakılıyor gibi görünüyor, bu da bu sunucu için 2GB'lık bir kutuya geçebileceğime, maliyetleri ve bakımı düşürdüğüme inanmamı sağlıyor ...

Herhangi bir öneri? En üstte gösterilen çeşitli bellek sayaçları ne anlama geliyor? Daha spesifik olarak, ne yapar:

  • Aktif
  • pasif
  • Önbellek
  • tamponlar
  • telli
  • Bedava

... gerçekten mi demek istiyorsun? VM alt sistemi çalışmalarının bitlerini açıklayan bazı gönderiler buldum ve bir "ah-ah!" 12 yıl önce tüm bunları anlamaya başladım ama unuttum. :) Sadık FreeBSD el kitabı bile soruma cevap veremedi ...

2 GB'a geçebilir miyim?


İşte bu sorunun Linux sürümü ( procpsfree komutunu açıklayan ): linux - gerçek bellek kullanımı
Adam Katz

Yanıtlar:


25
  • Active: Şu anda bir işlem tarafından kullanılan bellek
  • Inactive: Serbest bırakılmış ancak tekrar kullanılabileceğinden hala önbelleğe alınmış bellek. Daha fazla Freebellek gerekirse, bu bellek temizlenebilir ve serbest bırakılabilir. Bu bellek gerek kalmadan temizlenmez, çünkü "boş bellek boşa harcanır", tekrar ihtiyaç duyulması durumunda eski verilerin saklanmasının maliyeti yoktur.
  • Wired: Çekirdek tarafından kullanılan bellek. Bu bellek değiştirilemez
  • Cache: Verileri önbelleğe almak için kullanılan bellek, gerektiğinde hemen serbest bırakılabilir
  • Buffers: Disk önbelleği
  • Free: Tamamen ücretsiz ve kullanıma hazır bellek. Inactive, CacheVe Buffersonlar temizlenir eğer serbest hale gelebilir.

Yani, sadece ekleyebilir Inactivesizin için Freesayımı ve kullanılmayan düşünün. Wiredağ yığınını içeren çekirdek tarafından kullanılan bellektir. çalıştırıldığında netstat -m, ağ yığını tarafından bellek kullanımının bir özeti verilir.

Grafiklerinize dayanarak, wiredMart başında hafızadaki ilgili atlama dışında , evet, bu iş yükünü 2GB ram'da çalıştırabilmelisiniz. Bunu yaparsanız, her bellek ayırma işlemi daha az yer alacağından, işaretçiler 64 bit yerine 32 bit olacağından amd64 yerine i386 çalıştırmayı düşünün.


1
'Etkin değil' bellek "Diğer işlemlere yeniden tahsis edilemez", bu nedenle 'kullanılmamış' olarak değerlendirilmemelidir. Bkz wiki.freebsd.org/Memory
humbads

1
'Etkin değil' sayacı daha yeni FreeBSD'de 2 ayrı öğeye ayrılmıştır. 'Etkin değil' ve 'Çamaşırhane' (boşaltılmadan önce değiştirilebilmesi için diskin yıkanması gereken bellek). Ek Açıklama burada: lists.freebsd.org/pipermail/freebsd-arch/2016-Kasım /…
Allan Jude
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.