Windows Görev Yöneticisi tarafından bildirilen toplam bellek kullanımı neden tüm işlemlerin bellek kullanımı toplamından daha yüksek? [çift]


98

Görev Yöneticisi toplam bellek kullanımımı 6 GB toplamımın% 90'ında gösterir, ancak hiçbir işlem 250 MB RAM'den fazla kullanmaz ve çalışan tüm işlemlerin RAM kullanımının toplamı 2 GB'den azdır. Denedim:

  • Windows 8 Görev Yöneticisi'nin "İşlemler" sekmesindeki "Bellek" sütunundaki sayılara bakın.
  • Görev Yöneticisi'nin "Ayrıntılar" sekmesindeki "Çalışma Kümesi", "Özel Çalışma Kümesi", "Paylaşılan Çalışma Kümesi" ve "Boyut Girin" sütunlarına bakın.
  • İşlem Gezgini'ndeki benzer bellekle ilgili sütunlara bakmak.
  • Sysinternals RAMMap’i çalıştırmayı denedim, ancak düşük bellek krizi yaşarken lansman sırasında çöküyor. Sorunu çözdüğümde RAMMap normal çalışıyor ancak bu noktada çok geç.

Hepsi çok az miktarda bellek kullanıldığını gösteriyor.

İnternet üzerinden çeşitli pencere sürümleri ile bu sorunun bir türünü soran birçok insan var. Bazıları düşük bellek sorunlarını, genellikle yazılımı yeniden yükleyerek çözmeyi başarır; bazen pencereleri sıfırdan yeniden kurarak. Bunların hepsinin paylaştığı ve başka bir yerde asla cevaplanmadığı anlaşılan genel sorulara bir cevap arıyorum:

  1. Toplam kullanılan bellek neden listelenen işlemlerin kullandığı bellekten çok daha yüksek?
  2. Hangi programın kullanıldığını bilmeden pencereler bu hafızanın nasıl kullanıldığını "nasıl" bilebilir?
  3. Hangi işlemler muhtemelen bellek kullanır ancak listede görünmez?
  4. Kullanılan bellek hakkında daha fazla bilgi verebilecek herhangi bir yazılım var mı?

Kendi sorunuma özgü ayrıntılar: Windows 8.1'e yükselttiğimden beri, sorun, giriş yaptığım anda ortaya çıkıyor. Herhangi bir programı çalıştırdığımda bellekte kalmam. İşlem Gezgini'nde iexplore.exe'nin birkaç örneğinin çalıştığını fark ettim, görünüşte otomatik olarak başladım. Belirli bir örnek yalnızca birkaç MB RAM kullanıyordu, ancak yüz milyonlarca sayfa hatası gösterdi. Bir hevesle, belirli bir süreci öldürdüm ve bellek kullanımı hemen% 70 azaldı.

Belirli bir soruya yönlendirme:

  • Sadece birkaç MB boş alan harcanan birkaç GB kullanılan bir işlemi nasıl öldürebilirdi?

Ve (muhtemelen zor) bir bonus sorusu:

  • Windows'u yeniden yüklemekten kısa, bilgisayarımı her yeniden başlattığımda bunu yapmak zorunda kalmamayı nasıl önleyebilirim?

3
ayrıca çekirdek belleği de kullanıma dahil edilir. RAMMAp'ın gönderdiği fotoğraf: blogs.technet.com/b/askperf/archive/2010/08/13/…
magicandre1981

2
Bence “Neden hafızam bitiyor?” Sorusu sorulmalı.
surfasb

Bu soru, spesifikasyon olmadan cevap vermek mümkün değildir. Yüklü programları listeler. Ya da daha iyisi, Performance Monitor'den çalışan işlemlerin dökümü.
surfasb

1
Bilgisayarınızı tamamen kapatıyor musunuz / yeniden başlatıyor musunuz yoksa hibrit kapatma kullanıyor musunuz (Windows 8'de varsayılan)? Windows 8'e geçtikten sonra da benzer bir sorunla karşılaştım. Bir sürücünün fiziksel RAM'imin daha fazlasını çektiğini ve bilgisayarı kapatıp açtıktan sonra bile geri vermediğini farz ediyorum. Birkaç hafta içinde birkaç gigabayt birikti. Şimdi birkaç günde bir "bilgisayarı yeniden kapatmak" üzerine tıklatıyorum ya da bilgisayarı kapatmak için "kapat" ı tıklatırken vardiyayı tutuyorum.
Robert

2
Benim durumumda, "Dinamik Hafıza" yı etkinleştirdiği için Hyper-V tarafından ayrılan "Sürücü Kilitli" hafıza idi. Tüm VM'leri durdurmak, ayarları devre dışı bırakmak ve yeniden başlatmak zorunda kaldım. RAMMap öneriniz için teşekkürler.
Dagelf

Yanıtlar:


7

Bu arada, "hafıza" terimini kullanmamaya çalışmalısın. Çok fazla kafa karışıklığı yaratıyor. Fiziksel hafızayı kastediyorsanız, "fiziksel hafıza" veya "RAM" deyin. Sanal hafızayı kastediyorsanız, söyleyin. Mağazaya destek vermek istiyorsan, söyle.

Toplam kullanılan bellek neden listelenen işlemlerin kullandığı bellekten çok daha yüksek?

Çünkü işletim sistemi, başka seçeneği olmadığı sürece fiziksel belleği (RAM) boşa harcamamaktadır.

Hangi programın kullanıldığını bilmeden pencereler bu hafızanın nasıl kullanıldığını "nasıl" bilebilir?

Çünkü hiçbir program kullanmıyor. Örneğin, yeni sona eren bir programın kodunu içeren belleği düşünün. Hiçbir program kullanmıyor. Ancak bu bellek, ücretsiz olmadığından ve yararlı olabilecek veriler içerdiğinden (programın tekrar çalışması durumunda) kullanılır.

Hangi işlemler muhtemelen belleği kullanabilir, ancak şimdi listede görünüyor?

İşlemler tarafından kullanılmaz.

Kullanılan bellek hakkında daha fazla bilgi verebilecek herhangi bir yazılım var mı?

RAMMap bunu yapabilir.

Sadece iki olasılık var, RAM kullanılabilir veya boşa harcanabilir. Açıkçası, ilk daha iyi. Herhangi bir boş hafıza sonsuza dek boşa gider - 4GB'lık bir makine yarın 6GB'ı kullanmak için bugün 2GB'ı kullanamaz. "Şimdi ücretsiz istiyorum böylece daha sonra kullanabilirim" diye düşünüyorsan, unut gitsin. Artık kullanabilirsiniz ve daha sonra kullanmak.

Sadece birkaç MB boş alan harcanan birkaç GB kullanılan bir işlemi nasıl öldürebilirdi?

Yedekleme deposunda azalıyorsunuz, fiziksel bellekte değil. Bol miktarda boş fiziksel belleğiniz var, ancak işletim sistemi için destek gerektirebilecek sanal bellek ayırmaya devam etmek için yetersiz yedek deposu var.

İşlem yalnızca birkaç MB'lık fiziksel bellek kullanıyordu, ancak işletim sistemi bunun için birkaç GB yedeklenmiş sanal bellek ayırmak zorunda kalmış olabilir. Örneğin, bir işlemin 2GB'lik bir dosyanın yazılabilir, özel bir bellek eşlemesi oluşturduğunu varsayalım. İşletim sistemi işlem için 2GB yedeklenmiş sanal bellek ayırmalıdır, çünkü bu eşlemenin her bir baytına yazabilir. Ayrıca, hiçbirine asla yazamaz. Bu nedenle iyi bir boyutta disk belleği dosyasına ihtiyacınız var.

Modern işletim sistemleri asla paramparça edilmeyecek (RAM gerektirir) birçok kontrol (umut verici destek deposu) yazar. Bankada bol miktarda paranız olsa bile (ücretsiz RAM) çek yazmaya devam edemezsiniz (gelecek vaad eden destek deposu), para biriktirmiş veya kesilmemiş (pek çok destek deposu olarak vaat edilmiş olabilir) bir sürü büyük çek yazmış olsanız bile sahip olduğun gibi). Disk belleği dosyaları, işletim sisteminin yazma kontrollerini sürdürmesine izin vererek, yedekleme deposu ekler.


14
Not: RAM ile VM arasındaki farkı bilmediğimden değil "bilgisayar" kelimesini kullanıyorum, ancak bilgisayarım bana aslında hiçbir şey vermeden bana "bellekten" çıktığını söylüyor. anlamına geliyor. (Önceki yorumda belirttiğim nedenlerden ötürü RAM anlamına geldiğini sanıyorum, ancak emin değilim.) Ayrıntılı metaforlardan ziyade gerçek kelimeleri (gerekirse arayabilirim) kullanmayı tercih ederim :)
Josh,

91
-1 çünkü cevabı ve tüm yorumları okuduktan sonra, kullanılan toplam hafızanın neden listelenen tüm işlemler tarafından kullanılan hafızadan çok daha yüksek olduğu hala net değil.
Bennett McElwee

6
Herhangi bir program kullanılmasa da hafızanın "kullanıldığı" bu terminoloji, "kullanılmış" ve "özgür" gibi kelimelerin normal anlamından tamamen farklıdır - belki de sizin terminolojinizdir. Her neyse, örneğin, RAM'in% 50'sinin şu anda çalışan programlar tarafından kullanıldığını ve% 25'inin çalışan herhangi bir program tarafından kullanılmadığını ancak gelecekte yararlı olabilecek ancak atılabileceğini de varsayalım. Bunları bir araya getirmek ve "Bellek:% 75" görüntülemek, kullanıcıya yararlı bir bilgi iletmez. Bence bu yaygın karışıklıktan kaynaklanıyor.
Bennett McElwee

2
@BennettMcElwee Bellek kullanımını basit bir sayıya indirmenin iyi bir yolu yok, ancak kullanıcılar bu konuda ısrar ediyorlar. Bu, geliştiricileri rahatsız edici bir pozisyona getirir - her zaman yardımcı olmayan veya numara vermeyen bir sayı sağlayabilir. Çoğu işletim sistemi ve GUI geliştiricisi ilk seçeneği tercih eder - çok fazla kafa karışıklığına yol açan bir sayı sağlar. Eğer sorunuz "RAM daha fazla sistemimi daha iyi hale getirir mi?" İse cevabı - uzmanlar için bile söylemek çok zor.
David Schwartz,

2
@DavidSchwartz Cevabınız böyle açıklamaz, basitçe ifade eder. Bu iddiaları belgelemek için bağlantılar sağlayabilir misiniz? Fiziksel olarak kurulu RAM'in% XX'sinin şu anda kullanılmakta olduğu ve diğer işlemler için uygun olmadığı anlamına gelen "Fiziksel Bellek% XX" yi yorumluyorum. Sistemin% 90'ın üzerinde kilitlenmelere eğilimli hale geldiği ve uygulamalar% 100'ün ötesinde bellek ayırmaya çalıştığı için onaylandığına inanıyorum. Tecrübelerime göre, bu çoğu sistemin çalıştığı standart rejim değil.
John Neuhaus
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.