top
Bellek boyutlarını periyodik olarak bildirmek için toplu modda çalıştırmak , işler güneye gittiğinde kimin belleği kullandığını görmek için kullanılabilir. Basamak sar
toplu modunda bellek kullanımı ve ilgili I / O üzerinde bazı iyi teşhis vermelidir. Koşu munin
sistemini izlemek üzere bazı için kullanılan hangi bellek üzerinde iyi ayrıntılarla bir grafik vermelidir. Bu çok yardımcı olabilir.
Programların maksimum çekirdek boyutunu sınırlamak için limit.conf kullanabilirsiniz. Düzgün ayarlandığında, bu, bellek sızıntısı olan tüm programları öldürmelidir. Bu pam_limits modülü ile çalışır. Sınırlar ulimits
komutla da ayarlanabilir .
Büyük miktarda bellek kullanabilen birkaç program çalıştırıyorsunuz. Bakabileceğiniz bazı şeyler var.
- Kötü çalışan programlanmış uygulamalar
apache2
bellekte sızıntı yapabilir. Bu olduğunda bellek boyutunun arttığını görmelisiniz. MaxRequestsPerChild
100'e kadar ayarlayarak belirli bir sayıda kullanımdan sonra çocukları geri dönüştürmek için apache2'yi ayarlayabilirsiniz . Bu sorunu çözüyorsa, sızıntıyı çözmeniz gerekir. Önce bunu izlerdim.
- MySQL, verileri belleğe yüklemeyi deneyebilir. Bellekte çok fazla veri varsa, bu biraz daralmaya neden olabilir, ancak gördüğünüz kadar dramatik olmamalıdır.
- Büyük bir
tmpfs
dosya sisteminiz varsa, dosyalar kullanıldığında silinmezse bellek sızdırabilirsiniz. Büyük uzun ömürlü dosyalar da sorun olabilir.
- Sorun kabaca günün aynı saatinde ortaya çıkarsa, bellek sızdıran zamanlanmış bir programınız olabilir.
- Paylaşılan belleği ayıran ancak çıkmadan önce serbest bırakmayan bir programınız varsa, nispeten görünmez bir bellek sızıntısına sahip olursunuz. Paylaşılan bellek belleğe kilitlenmişse, değiştirmeye zorlayabilir. Kullanılabilir paylaşılan hafıza miktarı tipik olarak nispeten sınırlıdır.
- Liquidsoap + icecast paketi bellek kullanan tamponlama sorunlarıyla karşılaşabilir. Bu kombinasyonu kullanmadım, bu yüzden nasıl görüneceğinden emin değilim.
Normal bellek kullanımı: Boş bellek çok istediğiniz bir şey değildir. Sisteminiz uzun zamandır çalışıyorsa ve çok fazla boş belleğe sahipse bir şeyler yanlıştır. Bir dosyayı her okuduğunuzda veya yazdığınızda, bloklar arabellek önbelleğine girer. Bu, boş belleğinizi azaltacaktır ve iyi bir şeydir. Sistem, başka bir yere bellek bakmadan birkaç programı başlatmak için yeterli boş alan sağlayacaktır. Birçok program hızlı çalıştığından, çalışmayı durdurduklarında bellekleri boş havuza geri gönderilir.
Arabellek önbelleğindeki bir dosyayı okuduğunuzda, disk erişimi gerekmez ve okuma arabelleği önbelleğinden çözülür. Yazmalar benzer bir mekanizma kullanır. Sisteminizin belleğe ihtiyacı varsa, arabellek önbelleği kullanılan ilk yerlerden biridir. Çoğu tampon derhal serbest bırakılabilir.
Bellek sızıntısı varsa, boş bellek görürsünüz ve tamponların her ikisi de küçülmeye başlar. Sızan bellek nihayet takas alanına taşınması gerektiğinden, bu hala ciddi bir sorun değildir. Siz takas alanını doldurana kadar sisteminiz hala iyi çalışır ve kalan boş alanı programların başlatılamayacağı noktaya kadar çeker. Az miktarda takas alanının kullanılabilmesi tipiktir.