Ubuntu'da Bellek Sızıntısı Nasıl Algılanır
Ubuntu'da bir bellek sızıntısının meydana gelmesinin birkaç nedeni vardır, ancak neyse ki, ortaya çıktıklarında barizdir. Programcıların, artık ihtiyaç duyulmayan belleğin serbest kalmasını sağlamak için kontrol etme şansına sahip olmadıklarından, buggy kodu çoğu zaman en büyük nedendir. Kararsız paketler kuruyor veya kodları kaynaktan alıyorsanız, bu nedenle bellek sızıntılarıyla uğraşıyor olabilirsiniz. Muhtemelen onları yüklemeye başlayacaksınız çünkü yazılım uygulaması paketleri, yeterli miktarda fiziksel RAM'iniz olduğunda bellek yetersizliğinden şikayet etmeye başlar.
Bir bellek sızıntısından endişe ediyorsanız, bir terminale tekrar tekrar serbest yazmayı deneyin. Aniden RAM kullanımını hızla görmeye başlarsanız, o zaman zaten bir bellek sızıntısı tespit ettiniz. Bash gibi bir şey okuyan bir hata alırsanız: Bunu yaparken yeterli bellek yok ve bir terminalden veya hatta bir sanal konsoldan başka bir şeyiniz yok, o zaman neredeyse tartışmasız biriyle uğraşıyorsunuz demektir. Bazı bellek sızıntıları biraz daha ince olabilir, ancak Ubuntu ve bu çeşitli saptırmalar, bunları tespit etmenize yardımcı olabilecek araç ve paketlere sahiptir.
Ubuntu'da Bellek Sızıntılarını Algılama
Bellek sızıntılarını tespit etmek için kullanılan araçlar temel olarak CLI komutunun etrafına kurulduğundan, hangi Ubuntu sürümünü çalıştırdığınızın önemi yoktur. Bunlar, Ubuntu Sunucusundaki sanal bir konsoldan, Uuntuntu Sunucusundaki bir sanal konsoldan, Lubuntu'daki bir lemanmdan, Kubuntu'daki bir Konsole'den, hatta Xubuntu'daki Xfce'nin içinden düzenli bir Ucuntu terminalinde çalışmalıdır. Sudo -s gibi basit bir görev yapmayı deneyin ve başlamak için parolanızı yazın.
Bu doğru bir şekilde gerçekleştirilirse size bir kök kabuk almalı, ancak çoktan gitmiş bir sızıntıyla çalışıyorsanız bir bellek hatasına neden olabilir. Eğer bir kök kabuğuna gerçekten erişebiliyorsanız, echo 3> / proc / sys / m / drop_caches yazmayı deneyin, enter tuşuna basın ve sonra exit yazın. Hafızanın serbest bırakılmasına yardımcı olup olmadığını görmek için ücretsiz veya bedava -m'yi tekrar çalıştırmayı deneyin.
Bazı programcılar Çekirdeğin önbelleklerini çıkarmaya zorlama konusunda hiçbir noktanın olmadığını iddia ediyorlar, çünkü bunlar temizlenmeli ve böylece ek fiziksel hafızaya ihtiyaç duyulduğunda yeniden ele alınmalıdır. Ancak, bu önbelleklerin yıkanması zorluğu sistem performansını bozacak olsa da, bunun sadece bir test olduğunu aklınızda bulundurun. Sistemi yeniden başlattıktan sonra, Linux Çekirdeği bir kez daha bellek önbelleklerini ilk sırada oldukları şekilde birleştirmelidir.
Birkaç kişi hat senkronizasyonunu eklemeyi önerdi; sudo echo 3> / proc / sys / vm / drop_caches cronun tutarlı bir şekilde çalıştığı bir betiğe, ancak bu, ilk önce bellek önbelleğe almanın amacını ortadan kaldırır. Boş hafıza sadece kullanılmayan RAM'dir ve bu da verilerin daha yavaş elektromekanik yüklenerek yüklenmesi gerektiği anlamına gelir.
Ubuntu, üst sıralarda olağandışı bir hata verirse, bu programın daha basit bir sürümüne erişmek için onun yerine busybox topunu yayınlamayı deneyin. Bir listeye girdikten sonra, hangi uygulamaların en fazla belleğe atandığını görmek için% MEM veya benzer bir sütuna bakın. PID'yi not edip PID'nin tam sayısına bir kill komutu verebilirsiniz, ancak bu sadece uygulamayı kapatmaya zorlar. Kullandıkları bellek, bunu yaptıktan sonra yine de yayınlanmayabilir.
PRO TIP: Sorun bilgisayarınız veya dizüstü bilgisayar / dizüstü bilgisayar ile yapılmışsa, depoları tarayabilen ve bozuk ve eksik dosyaları değiştirebilen Reimage Plus Yazılımı'nı kullanmayı denemeniz gerekir. Bu, çoğu durumda, sorunun sistem bozulmasından kaynaklandığı yerlerde çalışır. Reimage Plus'ı tıklayarak buraya tıklayarak indirebilirsiniz.Büyük miktarda bellek kullanan bir uygulama bulursanız, çıkmak için q düğmesine basın ve ardından önceki ekrandan PID numarası ile #### değerini deneyin. Sistem süreçleri bu şekilde öldürülmemeli ve kaydedilmemiş bir işte çalışmamalı. Aynı işlemi için de kullanabileceğiniz Ctrl + Alt + Del görev listesindeki bir şeyi öldürmeye benzer şekilde düşünün.
Bunun sürekli olarak gerçekleştiği bir program bulduğunuzda, gelecekteki davranışları önlemek için bunu yapılandırabilirsiniz. Her bir program, elbette, sadece bellek sızıntılarını tespit etme görevinin ötesindeki farklı bir başvuruya ihtiyaç duyacaktır.
Sadece sorun giderme uygulamaları değil, aynı zamanda kodla çalışıyor olmanız durumunda, sahip olduğunuz birkaç başka kaynak var. Ubuntu ve onun türevleri, programlama için membariyer, memusage ve memusages C rutinlerini sunar.
Bu önemli rutinler hakkında Linux Programlayıcının Elkitabı sayfalarını görüntülemek için, sadece erkek memuru, adam hatıraları veya man memusagetat kullanın. Ubuntu'nun yeni sürümleri ortaya çıktıkça kütüphanelerin gelecekteki sürümlerinde yükseltmeler varsa, değişiklikler burada her zaman açıklanacaktır.
Grafiksel içeriğe ihtiyacınız varsa, memusagestat, bir PNG dosyasına bellek kullanımının grafiksel sunumunu kaydetme seçeneği de sunar. Bu, yardımcı programların yazarları için çekici bir özellik olmasını sağlar, çünkü bellek sızıntılarını düzenli olarak kontrol eden uygulamalar yapmak için kullanılabilir.
Bellek sızıntısı bulmanıza yardımcı olmak için, bellek kullanımını profillemek için bir araç olan memprof'u da kurmak isteyebilirsiniz. Yazdığınız bir programdaki her işlevin ne kadar bellek ayırdığıyla ilgili bir profil oluşturur. Ayrılmış olan blokları bulmak için mevcut belleği de tarayabilir, ancak artık orijinal referanslara sahip değildir. Bunu, standart C kütüphanesinin bellek ayırma özelliklerini geçersiz kılmak için bir kütüphaneyi önceden yükleyerek yapar.
Bunu kullanmayı planlıyorsanız, dahil edilmeden önce kodun başlangıcından dahil edilen memprof satırını kaldırdığınızdan emin olun. Bu, sızıntınız olmadığından emin olmak için kullanılır, ancak kodunuzu paketleyip bir depoda bırakırsanız bağımlılık olmamalıdır.
PRO TIP: Sorun bilgisayarınız veya dizüstü bilgisayar / dizüstü bilgisayar ile yapılmışsa, depoları tarayabilen ve bozuk ve eksik dosyaları değiştirebilen Reimage Plus Yazılımı'nı kullanmayı denemeniz gerekir. Bu, çoğu durumda, sorunun sistem bozulmasından kaynaklandığı yerlerde çalışır. Reimage Plus'ı tıklayarak buraya tıklayarak indirebilirsiniz.