2010-11-23 20 views
5

Daha spesifik olarak: Bu bilgiyi programın içinden, tercihen takılmadan hemen önce bulmak istiyorum, böylece tepki verebilirim. Şimdiye kadar buldum: Linux ve BSD geçerli gibi görünüyorProgramımın takas olup olmadığını öğrenmek için linux hakkında nasıl bilgi edinebilirim?

  • mincore syscall çok faydalı değil, ama ben tüm sayfalarda geçmek beni gerektiren

    • bilgiler, /proc içeride (yeterli olabilir, ama biraz can sıkıcı olabilir)

    Başka fikirleriniz var mı?

  • +0

    İzlemeye ek olarak (daha sonra alarmlar için kurulum yapabilirsiniz)/proc/sys/vm/swappiness'e de bakabilirsiniz, ancak bu sizin uygulamanıza ve makinenizin diğer kullanımlarına bağlıdır. Belki de takasını tamamen devre dışı bırakabilirsiniz (eğer uygulamanız OOM durumlarını ele alabilirse). – Zlatko

    +0

    Bu mantıklı değil. Bellek için hız ticareti yapabilen PyPy (bir python yorumlayıcısı) hakkında konuşuyorum. Değişim belirleme ayrıcalığına sahip olmak pek olası değil. – fijal

    cevap

    2

    vmstat, siz "2 vmstat" demek her 2 saniyede çalıştırın. Size gibi çıktıyı verir:

    procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ 
    r b swpd free buff cache si so bi bo in cs us sy id wa st 
    0 0  0 16124 431352 439000 0 0  4  2 37 18 0 0 100 0 0 
    

    "si" ve "bu yüzden" sütunlarının "takas-in" ve "takas aşımı" dir. Swapd takas cihazında ne kadar hafıza olduğunu. Swapd kararlı olmalı ve si ve sıfır.

    Unutmayın:

    Gerçekten sormamalıdır "programım takas olan" - aksine "sistem takas" dedi. Program, başkalarının takas yapmasına neden olabilir - diğerleri sizin takas etmenize neden olabilir, vb. Her iki durumda da, bu gerçekleşirse - performans d ... i ... e ... s ...

    +0

    Doğru, demek istediğim bu :-) – fijal