Çok sayıda dosya içeren NTFS sürücüsünde yavaş performans


12

Bu düzene bakıyorum:

  • Windows Server 2012
  • 1 TB NTFS sürücü, 4 KB kümeler, ~% 90 dolu
  • 10.000 klasörde depolanan ~ 10M dosya = ~ 1.000 dosya / klasör
  • Çoğunlukla küçük dosyalar <50 KB
  • Disk dizisinde barındırılan sanal sürücü

Bir uygulama rasgele klasörlerde saklanan dosyalara eriştiğinde, her dosyayı okumak 60-100 ms sürer. Bir test aracıyla, gecikme dosyayı açarken ortaya çıkar. Verileri okumak zamanın sadece bir kısmını alır.

Özetle, bu 50 dosyayı okumanın 3-4 saniye alabileceği anlamına gelir ki bu beklenenden çok daha fazladır. Yazma toplu olarak yapılır, bu nedenle performans burada bir sorun değildir.

Zaten bu rakamlara ulaşmak için SO ve SF tavsiyelerini takip ettim.

Okuma süreleri hakkında ne yapmalı?

  • Dosya başına 60-100 msn tamamlanmasını düşünün (değil, değil mi?)
  • Kurulumun nasıl geliştirilebileceği hakkında bir fikriniz var mı?
  • Tam olarak ne zaman harcandığını anlayabilecek düşük seviyeli izleme araçları var mı?

GÜNCELLEME

  1. Yorumlarda belirtildiği gibi sistem Symantec Endpoint Protection'ı çalıştırır. Ancak, devre dışı bırakılması okuma sürelerini değiştirmez.

  2. PerfMon okuma başına 10-20 ms ölçer. Bu, okunan herhangi bir dosyanın ~ 6 G / Ç okuma işlemi gerektirdiği anlamına gelir, değil mi? Bu MFT araması ve ACL kontrolleri olur mu?

  3. MFT'nin boyutu ~ 8,5 GB'tır ve bu da ana bellekten daha fazladır.


Bir şeyi ekarte etmek için RAMMap'in ekran görüntüsünü paylaşmak ister misiniz ?
Tomas Dabasinskas

Dosya Özeti tablosunu mu kastediyorsunuz? Şimdi bahsettiğinize göre, sistemde Symantec Endpoint Protection'ın yüklü olduğunu hatırlatan 900 MB belleğe sahip bir SYMEFA.DB dosyası görüyorum. Belki de suçlu budur? Daha fazlasını bulmaya çalışacağım.
Paul

Aslında, Meta Dosyası kullanımı ile daha fazla ilgileniyordum
Tomas Dabasinskas

Tamam anladım. Meta dosya toplam 250 MB, 40 etkin, 210 bekleme durumunu gösterir. Normal görünüyor mu değil mi?
Paul

Evet, öyle görünüyor
Tomas Dabasinskas

Yanıtlar:


5

Sunucuda yeterli bellek yoktu. NTFS meta dosyası verilerini bellekte önbelleğe almak yerine her dosya erişimi birden çok disk okuması gerektiriyordu. Her zamanki gibi, bir kez gördüğünüzde sorun açıktır. Perspektifimi neyin bulanıklaştırdığını paylaşmama izin verin:

  • Sunucu hem Görev Yöneticisi'nde hem de RamMap'te 2 GB bellek gösterdi. Bu nedenle, her iki Windows da kullanılabilir belleğin meta dosya verilerinin anlamlı bir kısmını tutmak için yeterli olmadığına karar verdi. Veya bazı dahili kısıtlamalar, meta dosya verileri için son bellek bitinin kullanılmasına izin vermez.

  • Yükseltme işleminden sonra RAM Görev Yöneticisi kullanılan daha fazla bellek göstermez. Ancak RamMap, çoklu GB meta dosyası verilerinin bekleme verileri olarak tutulduğunu bildirdi. Görünüşe göre, bekleme verileri önemli bir etkiye sahip olabilir.

Analiz için kullanılan araçlar:


Fiziksel hafızanın arttırılması tepki sürelerini iyileştirdi mi? Herhangi bir kayıt defteri ayarı yapılandırmadınız mı?
D-Klotz

1
Evet. Daha önce kayıt defteri ayarlarıyla oynamıştım. Ancak sonunda bellek eklendikten sonra herhangi bir değişikliğe gerek yoktu.
Paul

Bekleme belleği, programların kullanıma hazır olduğu bellek bölgeleridir. Ancak henüz kullanılmadıkları için işletim sistemi bunları önbellek olarak kullanacak. Herhangi bir program bu belleğe ihtiyaç duyduğunda hemen serbest bırakılacaktır
phuclv
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.