Sunucuda Bos Bellek Neden Hep Az Gorunuyor?

Sunucuda bos bellek neden az gorunur? Sayfa onbellegi, kullanilabilir bellek sayaci ve takas trafigi okuma. Sunucuda Boş Bellek Neden Hep Az Görünüyor?…

Sunucuda Bos Bellek Neden Hep Az Gorunuyor?
İçindekiler
  1. Sunucuda Boş Bellek Neden Hep Az Görünüyor?
  2. Boş Bellek İsraftır
  3. Hangi Sayıya Bakmalı
  4. Gerçek Sorun Ne Zaman
  5. Önbellek Türleri
  6. Önbelleği Temizlemek
  7. Konteyner İçinde
  8. Doğru İzleme
  9. Kapasite Kararı
  10. Sonuç
  11. Sıkça Sorulan Sorular (SSS)
  12. Boş bellek neden hep az?
  13. Hangi sayaca bakmalıyım?
  14. Takas alanı doluysa sorun var mı?
  15. Konteynerdeki servisim sürekli yeniden başlıyor?

Sunucuda Bos Bellek Neden Hep Az Gorunuyor?

Sunucuda Boş Bellek Neden Hep Az Görünüyor?

Sunucuya bağlanıp bellek durumuna bakıyorsunuz: 16 gigabaytın 15'i kullanılmış, boş bellek neredeyse yok. Panik yapıp paket yükseltmeyi düşünüyorsunuz. Oysa sistem tamamen sağlıklı olabilir — çünkü işletim sistemi boş belleği israf sayar.

Bu yazı, bellek sayaçlarını doğru okumayı ele alıyor.

Boş Bellek İsraftır

  1. Diskten okunan veri bellekte tutulur.
  2. Aynı veri tekrar istenirse diske gidilmez.
  3. Bellek gerekirse bu alan bırakılır.

Üçüncü adım tüm endişeyi ortadan kaldırır: önbellek için kullanılan bellek, bir uygulama gerçekten bellek istediğinde anında serbest bırakılır — yani o bellek aslında kullanılabilir durumdadır, yalnızca boşta durmak yerine iş yapmaktadır.

Sistem bu alanı sürekli büyütür.

Uzun süre çalışan bir sunucuda boş bellek her zaman az görünür.

Bu, sağlıklı çalışmanın işaretidir.

Hangi Sayıya Bakmalı

Sayaç Anlamı
Boş bellek Hiç kullanılmayan, yanıltıcı
Önbellek ve tampon Geri alınabilir alan
Kullanılabilir bellek Asıl bakılması gereken

Üçüncü satır doğru göstergedir: kullanılabilir bellek sayacı, yeni bir uygulamanın gerçekte ne kadar bellek alabileceğini söyler — boş bellek sayacı ise önbellekleri saymadığı için gereğinden çok daha kötü bir tablo çizer.

İzleme uyarıları bu sayaca kurulmalıdır.

Boş bellek üzerinden kurulan uyarılar sürekli yanlış alarm verir.

Bu, uyarı yorgunluğunun klasik nedenidir.

Gerçek Sorun Ne Zaman

  • Kullanılabilir bellek düşükse.
  • Takas alanı aktif kullanılıyorsa.
  • Süreçler sonlandırılıyorsa.

İkinci madde en net uyarıdır: takas alanının dolu olması tek başına sorun değildir ama sürekli okunup yazılıyorsa bellek gerçekten yetmiyor demektir — asıl bakılması gereken takas doluluğu değil, takas trafiğidir.

Uzun süre önce takasa yazılmış veriler orada öylece durabilir.

Bu durum performansı etkilemez.

Üçüncü madde ise en geç fark edilen ve en ciddi belirtidir.

Önbellek Türleri

  1. Dosya içerikleri önbelleklenir.
  2. Dizin bilgileri önbelleklenir.
  3. Veritabanı kendi önbelleğini tutar.

Üçüncü madde çift sayıma yol açabilir: veritabanı kendi bellek havuzunu ayırırken işletim sistemi de aynı dosyaları önbelleğe alıyorsa, aynı veri bellekte iki kez durur — veritabanı ayarları buna göre yapılmalıdır.

Bu, bellek israfının gerçek bir kaynağıdır.

Veritabanı havuzu, toplam belleğin tamamına yakını olmamalıdır.

İşletim sistemine de pay bırakılmalıdır.

Önbelleği Temizlemek

İşlem Sonuç
Önbelleği elle boşaltmak Geçici rahatlama
Sonrasında Sistem yavaşlar
Kısa süre sonra Önbellek yeniden dolar

İkinci satır bu işlemin neden yapılmaması gerektiğini açıklar: önbelleği elle boşaltmak sayaçları güzelleştirir ama sistemi yavaşlatır — bellekte hazır duran veriler atıldığı için sonraki her istek yeniden diske gitmek zorunda kalır.

Bu, çözüm değil kendi kendine zarardır.

Yalnızca ölçüm yaparken anlamlı olabilir.

Üretimde hiçbir gerekçesi yoktur.

Konteyner İçinde

  • Sayaçlar sunucunun tamamını gösterebilir.
  • Sınır ise konteynere aittir.
  • Uygulama yanlış hesap yapar.

Üçüncü madde ciddi bir arıza üretir: konteyner içindeki bir uygulama sunucunun toplam belleğini görüp ona göre havuz ayırırsa, kendi sınırını aşar ve sistem tarafından sonlandırılır — sürekli yeniden başlayan bir servisin nedeni sıklıkla budur.

Bellek sınırı uygulamaya açıkça bildirilmelidir.

Modern çalışma ortamları bunu otomatik algılayabilir.

Ama eski sürümler algılamaz.

Doğru İzleme

  1. Kullanılabilir bellek izlenir.
  2. Takas trafiği izlenir.
  3. Sonlandırma kayıtları izlenir.

Üçüncü madde geriye dönük teşhis sağlar: bellek yetersizliği nedeniyle sonlandırılan her süreç sistem kayıtlarına ayrıntılı bir satır bırakır — hangi sürecin ne kadar bellek kullandığı ve neden seçildiği orada yazar.

Bu kayıt, çöken servisin nedenini kesinleştirir.

Uygulama günlüklerinde bu bilgi bulunmaz.

Servis sanki kendiliğinden kapanmış görünür.

Kapasite Kararı

  • Tepe kullanıma bakın.
  • Ortalamaya değil.
  • Pay bırakın.

Birinci madde doğru ölçütü verir: bellek kararı ortalamaya göre değil, gün içindeki en yüksek kullanıma göre verilmelidir — çünkü bellek yetersizliği yavaşlama değil, doğrudan servis kaybı üretir.

İşlemcide yetersizlik yavaşlatır, bellekte ise öldürür.

Bu asimetri, bellekte cömert olmayı gerektirir.

Yedekleme veya rapor saatleri tepe noktalarıdır.

Bellek kullanımını gerçek yüke göre ölçeklendirebilmek için esnek paket seçenekleri gerekir; VDS hizmet paketleri ile kaynaklarınızı ihtiyacınıza göre büyütebilirsiniz.

Sonuç

Boş belleğin az görünmesi neredeyse hiçbir zaman sorun değildir: önbellek için kullanılan bellek, bir uygulama gerçekten istediğinde anında serbest bırakılır. Uyarılarınızı boş bellek yerine kullanılabilir bellek sayacına kurun, takas doluluğuna değil takas trafiğine bakın ve önbelleği elle boşaltmayın — sayaçları güzelleştirir ama sonraki her isteği diske gönderir.

Sıkça Sorulan Sorular (SSS)

Boş bellek neden hep az?

İşletim sistemi boş belleği israf sayar ve diskten okunan verileri orada tutar. Bu alan, bir uygulama gerçekten bellek istediğinde anında serbest bırakılır; yani bellek kullanılabilir durumdadır, yalnızca boşta durmak yerine iş yapmaktadır.

Hangi sayaca bakmalıyım?

Kullanılabilir bellek sayacına. Bu, yeni bir uygulamanın gerçekte ne kadar bellek alabileceğini söyler; boş bellek sayacı önbellekleri saymadığı için gereğinden kötü bir tablo çizer ve üzerine kurulan uyarılar sürekli yanlış alarm verir.

Takas alanı doluysa sorun var mı?

Tek başına sorun değil. Uzun süre önce yazılmış veriler orada öylece durabilir ve performansı etkilemez. Asıl bakılması gereken takas doluluğu değil takas trafiğidir; sürekli okunup yazılıyorsa bellek gerçekten yetmiyor demektir.

Konteynerdeki servisim sürekli yeniden başlıyor?

Uygulama sunucunun toplam belleğini görüp ona göre havuz ayırıyor olabilir; kendi sınırını aşınca sistem tarafından sonlandırılır. Bellek sınırını uygulamaya açıkça bildirin — eski çalışma ortamı sürümleri bunu otomatik algılamaz.