512MB RAM ile gömülü bir sistem üzerinde çalışıyorum ve uygulamayı desteklemek için yeterli bellek. Çekirdekten, RAM boyutunu çekirdek cmd argümanından 130MB'ye sınırladım. Ve swapoff -a
kullanarak takas devre dışı bırakıldı. Ayrıca, kernel overcommit'i de devre dışı bıraktım, böylece uygulama sadece fiziksel bellekte çalışabilir. /proc/cmdline
ve /proc/meminfo
arasındaki değişiklikleri doğruladım. Şimdi uygulamayı çalıştırdığımda ve üst değerleri kontrol ettiğimde, benim uygulama için VSZ gerçek bellekten daha fazla olan 177m'dir !! Bu nasıl mümkün olabilir? Bu hafıza nereden geldi?Linux'ta bellek kullanımı neden fiziksel RAM'den daha fazla?
cevap
Görünüş:
ps -o rss,vsz,cmd ax | grep -i nginx | head -n1
956 31248 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
rss - 956 kB
vsz - 31248 kB
Yani, bu süreç fiziksel bellek 956KB kullanmakta olduğu anlamına gelir, ve sanal bellek 31MB:
Bir nginx sürecini çalıştıran var.
Takası devre dışı bırakmak (swapoff -a), yaptığınız gibi, sanal bellek kullanımını devre dışı bırakmaz. Burada
Oku hakkında sanal bellek: Virtual memory
Sanal bellekte bir limit ayarlamak mümkün mü ?? Sadece merak ediyorum .... – Griffin
Neden swapoff-a'nın VMM kullanımına neden olmadığını açıkladığını sanmıyorum. * swap * sadece * read-write * bellek veya program verileri için kullanılır. Program kodu için, Linux * sanal dosya sistemi * bir sayfayı bulmak (yeniden yüklemek) için bir yol sunar. Kod bir adrese atlarsa, kod * hata verir * ve veriler diskten yüklenir. Bu şekilde, bir program başladığında her şey belleğe yüklenmez; sadece * başlangıç * adres sayfası. Benzer şekilde, bellek baskısı altında, nadiren kullanılan kod çarpılabilir. –
- 1. Bellek kullanımı: Program çok fazla bellek ayırıyor
- 2. Neden yinelenen JSON ayrıştırma daha fazla bellek tüketiyor?
- 3. Bellek kullanımı
- 4. Linux bellek kullanımı geçmişi
- 5. Spark - Kapsayıcı, fiziksel bellek sınırlarının ötesine ilerliyor
- 6. Neden Neden Nuget'ten daha fazla paket yükler?
- 7. İdeal bellek kullanımı tutarları
- 8. ASP.net kullanım sırasında bellek kullanımı
- 9. node.js 0.12.x bellek kullanımı
- 10. Yüksek bellek kullanımı,
- 11. Cassandra Vs ScyllaDB Bellek Kullanımı
- 12. Görev Yöneticisi olarak bellek kullanımı nasıl hesaplanır?
- 13. Python bellek kullanımı: Nesnemden hangisi en fazla belleği alıyor?
- 14. Linq sorgu listesi bellek kullanımı
- 15. Dize VS Byte [], bellek kullanımı
- 16. Bellek haritası, mevcut olandan daha fazla RAM gösteriyor
- 17. Bellek kullanımı nasıl görüntülenir?
- 18. Sınır JTextPane bellek kullanımı
- 19. Tomcat PowerShell Bellek Kullanımı
- 20. Resharper bellek kullanımı 2008
- 21. Bellek Bant Genişliği Kullanımı
- 22. Java BigDecimal bellek kullanımı?
- 23. iphone bellek kullanımı
- 24. Liste görünümü bellek kullanımı
- 25. CCR'deki Nedensellikler neden bellek sızıntılarına neden oluyor?
- 26. CouchDB vs MongoDB (bellek kullanımı)
- 27. Dizilim neden tanımladığımdan daha fazla öğeye sahip?
- 28. Daha fazla oku android'de daha fazla buton
- 29. Bölüm kullanımı: Tahminlerde daha fazla değişkenlik nasıl elde edilir?
- 30. Windows 64'te javaw.exe işlemi daha fazla bellek tüketiyor mu?
Hafıza dosyalarını eşlenen? Aynı adres sanal adres alanında iki kez eşlendi mi? İşlem hafıza haritasını kontrol edin. –
http://linuxatemyram.com/ ve/proc/$ PID/maps' –