Windows sunucumun değişip değişmediğini nasıl anlarım?


29

Bazı verileri yeniden yapılandırırken windows sunucumu izlemek için İşlem Gezgini'ni kullanıyorum. Öncelikle CPU yoğun bir işlem, ancak değişmediğinden emin olmak istiyorum. İşlem Gezgini'ni kullanıp kullanmadığını nasıl anlarım? İlk tahminim Sistem Bilgisi penceresinde, Disk belleği Dosyası Yazma Delta'sı. Evet? Yok hayır? Ben bir aptalım?

* Ekran görüntüsü sunucusu değil ... sadece bir örnek.

alt metin http://www.malwareinfo.org/bootcamp/img/ProcessExplorer2.jpg

Yanıtlar:


30

"Pages Input / sn, izlenecek sayaçtır, ancak windows * * nixes gibi sayfa dosyasını kullanmadığından" takas etme "konusunda endişelenmemelisiniz.

Öncelikle pencerelerin içeri girmediğini anlamanız gerekir. Kendimi daha iyi söyleyemediğim için Eric Lipperts blog yazısının ilgili bölümünü (hafifçe düzenlenmiş olarak) alıntılayacağım :

“RAM yalnızca bir performans optimizasyonu olarak görülebilir. Bilginin, ışığın hızına yakın bir yerde yayıldığı elektrik alanlarında depolandığı RAM'deki verilere erişmek, bilginin muazzam ve ağır olarak depolandığı diskteki verilere erişmekten çok daha hızlıdır. demir metal molekülleri

İşletim sistemi, hangi işlemlerin en sık erişildiğinin depolandığı sayfaları izler ve hızını artırmak için RAM’de kopyalar. Bir işlem, şu anda RAM’de önbelleğe alınmamış bir sayfaya karşılık gelen bir işaretçiye eriştiğinde, işletim sistemi “sayfa hatası” yapar, diske gider ve sayfanın bir kopyasını RAM’e kopyalar ve makul bir varsayım yapar. bir süre sonra tekrar erişilmek üzere.

İşletim sistemi ayrıca salt okunur kaynakları paylaşma konusunda da akıllıdır. İki işlemin ikisi de aynı DLL sayfasından aynı DLL sayfasını yüklerse, işletim sistemi RAM önbelleğini iki işlem arasında paylaşabilir. Kodun her iki işlem tarafından değiştirilmeyeceği tahmin edildiğinden, RAM'in yinelenen sayfasını paylaşarak kaydetmek kesinlikle mantıklı olacaktır.

Fakat akıllıca paylaşımda olsa bile, sonunda bu önbellekleme sistemi RAM'in tükenmesine neden olacaktır. Bu olduğunda, işletim sistemi kısa süre sonra tekrar hangi sayfalara erişilmesi en muhtemel olduğu konusunda bir tahminde bulunur, değiştiyse onları diske yazar ve bu RAM'i tekrar erişilmesi daha muhtemel bir şeyde okumak için serbest bırakır. yakında.

İşletim sistemi yanlış tahmin ettiğinde veya daha fazla olasılıkla, sık erişilen tüm sayfaları çalışan tüm işlemlerde saklamak için yeterli RAM olmadığında, makine “çökmeye” başlar. İşletim sistemi tüm zamanını pahalı disk deposunu yazıp okuyarak geçirir, disk sürekli çalışır ve hiçbir iş yapmazsınız.

Bu aynı zamanda “RAM'in tükenmesinin” nadiren “yetersiz bellek” hatasıyla sonuçlandığı anlamına gelir. Bir hata yerine, düşük performansla sonuçlanır, çünkü depolama işleminin gerçekte diskte olduğu gerçeğinin tam maliyeti birden bire alakalı hale gelir.

Buna bakmanın bir başka yolu da, programınızın harcadığı toplam sanal bellek miktarının performansıyla gerçekten ilgili olmadığıdır. İlgili olan, tüketilen toplam sanal bellek miktarı değil, (1) bu belleğin ne kadarının diğer işlemlerle paylaşılmadığı, (2) yaygın olarak kullanılan sayfaların "çalışma kümesi" nin ne kadar büyük olduğu ve ( 3) tüm aktif işlemlerin çalışma setlerinin mevcut RAM'den daha büyük olup olmadıkları.

Şimdiye dek neden “yetersiz bellek” hatalarının genellikle ne kadar fiziksel belleğiniz olduğu ve ne kadar depolama alanı olduğu ile ilgisi olmadığı açık olmalıdır. Neredeyse her zaman, 32 bit Windows'ta nispeten küçük ve kolayca parçalanan adres alanıyla ilgilidir. "

Birkaç ek puan:

  1. dlls ve program dosyaları her zaman yalnızca disk disklerinde olduğu gibi hiçbir zaman disk belleği içermediğinden (ve fiziksel ram azaldığında genellikle ilk sayfalar serbest bırakılır)
  2. boş sayfa tablosu girişlerinin bitmesine ya da başka herhangi bir bellek sorunundan daha ağır parçalanmış belleğe sahip olmaktan daha çok söz sahibi (daha önce belirtildiği gibi genel olarak düşük performans dışında)
  3. sayfa dosyası olmadan çalıştırsanız bile sayfa hatası alabilirsiniz
  4. genellikle konuşulan hafızaya bakmak, bir işlemin hafızayı nasıl kullandığını anlatmak için daha iyidir.

bellek yönetiminin pencerelerde nasıl çalıştığının tam bir resmi için bkz.

Windows NT'de Sanal Bellek Yöneticisi

Bir bellek sorununuz olduğunu düşünüyorsanız, önce bu sunumu Windows bellek sorunlarını giderirken izlemenizi öneririm

İşte bellek parçalanması için neden zaman zaman neden "yetersiz bellek" aldığınızı gösteren harika bir açıklama:

Ayrıca bkz . Windows Sınırlarını İtmek: Fiziksel Bellek

Sanal Bellek, Bellek Parçalama ve Sızıntı ve WOW64 hakkında daha fazla bilgi

RAM, Sanal Bellek, Sayfa Dosyası ve tüm bu şeyler (microsoft support)

Güncelleştirme:

Windows 10, bellekten biraz farklı bir şey yapar ve zamanla "Sistem ve sıkıştırılmış bellek" adında bir işlem görürsünüz, Windows 10, disk belleği gönderme listesine "sıkıştırma deposu" ekler. Bu ram, sisteme ait KULLANICI hafızasıdır (tipik olarak sistem yalnızca çekirdek hafızasına sahiptir). Bu hafıza, yaklaşık% 30'luk bir ortalama düşüş için yerinde sıkıştırılır. Bu, bellekte daha fazla sayfa saklanmasına izin verir (% 70 daha fazla alan olan matematiği yapanlar için) Eğer bellek hala baskı altındaysa, sıkıştırma deposundaki sayfaların (kullanıcı modu Sistem işlem alanı) değiştirilmiş olana yerleştirilebileceğini unutmayın. fiziksel sayfa dosyasına yazılabilen liste (sıkıştırılmış). Sistem, sistem kullanıcısı kip alanından ve sıkıştırılmış olarak görecek ve bunları tekrar depoya koymaya çalışmayacaktır. Bu nedenle, Windows 10 sistemlerinde, sistem koç soluyor gibi görünebilir ancak aslında koç kullanmada daha verimli olmaya çalışıyor. Mac kullanıcıları 2013'ten beri benzer bir özellik kullanıyor ve Linux çekirdeğinin daha yeni sürümlerinde bir bellek sıkıştırma sürümü kullanılıyor. Belleği korumanın bu yöntemi yalnızca daha iyi değil, diğer işletim sistemleri arasında zaten yaygındır.


6

Evet, disk belleği deltaları, sunucunun ne kadar disk belleği aradığını (veya "değiştirdiğini") ancak size o anda göstereceklerini gösterir. Bunu daha yakından izlemek ve tarihsel bir görüş görmek için, bu deltaları (veya belirli olayları veya etkinlikleri çivilerle ilişkilendirmek için yardımcı olabilecek diğer ilgi alanlarını içeren diğer performans sayaçlarını ) haritalamak veya kaydetmek için Performans İzleyicisi'ni ( perfmon.exe ) kullanmanızı öneririm . sayfalama etkinliği).


5

Performans İzleyicisi (perfmon) burada senin arkadaşın. Sert sayfa hataları (yani, isteği yerine getirmek için gereken bellek sayfasının diskten okunması gerektiğindeki sayfa hataları) arıyorsanız, bu nedenle hem sert hem de yumuşak sayfa hatalarının izlenmesi en iyi düzeydedir.

Sabit sayfa hatalarının meydana geldiğine dair bir fikir edinmek için perfmon kullanarak "Sayfalar Giriş / sn" sayacını "Bellek" nesnesinde izleyin.


0

Doğru bir kural, taahhüt masrafınız fiziksel belleğinizden yüksekse, kesinlikle bir şeyi sayfalandırıyorsunuzdur , ancak uygulamanız her zaman kullanımda tutulan tek bir sabit veri arabelleği kullanıyorsa, genellikle sayfalama yapılmayacaktır. hiç dışarı. Bunun için yer açmak için başka bir bellek kullanıldığında, başlangıçta bir miktar gecikme olabilir.


3
mh: Başparmak kurallarınızla aynı fikirde olduğumdan emin değilim. Taahhüt bedeli fiziksel bellekten daha yüksekse, bu basitçe bir noktada bir şeyin sayfalandırıldığı anlamına gelir , ancak sistemin mutlaka bir şeyleri çağırması gerekmez. Bir sayfa ancak sayfa hatası meydana geldiğinde sayfalanır. Aksi takdirde ben iyi olurdu tek sabit veri tampon kullanımının katılıyorum, ama o zaman muhtemelen stackoverflow.com dünyasına gidiyoruz düşünüyorum
Jessica McKinnon

Benim hatam, "geçmişte bir şeylerin değiştirildiğini ve gelecekteki hafıza taleplerinin de değiştirilmesini gerektireceğini" söylemeliydim.
Maximus Minimus

Bu, mutlaka bir uygulamanın yalnızca o işletim sistemi imtiyazına sahip olduğu anı sayfalarını kilitleyebileceği doğru değildir.
Jim B,
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.