Kutudaki hız rakamı oyunun yükleme süresini anlatmıyor

· Yazarı: Kasayı Açanlar
İçindekiler
  1. Kutuya basılan sayı hangi işi ölçüyor
  2. Oyun motoru aslında neyi, ne zaman okuyor
  3. Yuva, sürücüden önce karar veriyor
  4. DRAM'siz sürücüler ve SLC önbelleği: yanlış yere korkmak
  5. Tabloda hangi satır sunucu işi
  6. Kendi makinemde sırayla baktığım şeyler

Perakende kutusunda büyük puntoyla yazan tek hız rakamı, sürücünün büyük bloklarla ve derin kuyrukta ölçülen ardışık okuma değeridir. Bir oyunun seviye yüklemesi ise bunun neredeyse tersi bir karışımdır: çok sayıda küçük rastgele okuma, araya giren tek bir büyük kopyalama ve işlemcide açılan sıkıştırılmış veri. Yani kutudaki sayı, senin makinendeki yükleme süresini değil, sürücünün hangi işte ne kadar hızlı olduğunu anlatır. Aynı ayrım özellik tablosunda da geçerlidir: satırların bir kısmı oyun motorunun gerçekten ürettiği erişim desenini tarif eder, bir kısmı ise senin hiç girmeyeceğin sunucu tipi paralel iş yüklerini. Bu ikisini ayırmadan tabloya bakmak, kutudaki tek sayıya bakmakla aynı yere çıkar.

Kutudaki hız rakamı oyunun yükleme süresini anlatmıyor

Kutuyu elime aldığımda gözüm doğrudan o büyük rakama kayıyor. 3.500 MB/s mi, 7.000 MB/s mi, hangisi. Sonra kasayı açıyorum, M.2 yuvasını arıyorum, vidayı kaybetmemeye çalışıyorum, termal pedi yapıştırıyorum. Sürücü oturuyor, Windows açılıyor, oyunu başlatıyorum. Ve yükleme çubuğu, kutudaki rakamın ima ettiği hızda ilerlemiyor. İlk birkaç sefer insan sürücüde bir sorun olduğunu düşünüyor. Bende öyle olmadı; sonunda anladığım şey kutunun yanlış bir şey söylemediği, sadece cevapladığı sorunun benim sorum olmadığıydı.

Kutuya basılan sayı hangi işi ölçüyor

O rakam tipik olarak 128 KB gibi büyük bloklarla ve aynı anda uçuşta 32 istek varken alınır. Sürücü bir isteğin bitmesini beklemez; otuz iki tanesini üst üste bindirir, veri paralel akar ve saniyede binlerce megabayta çıkar. Test yazılımlarında gördüğün büyük sayının da büyük olmasının sebebi budur: sürücüye nefes alacak alan bırakılır.

Oyunun yaptığı iş farklı. Bir doku ya da model parçası istendiğinde bunlar genelde 4 KB ile 64 KB arası küçük parçalar halinde ve çoğu zaman aynı anda birkaç istek olarak okunur. Tek bir oyun süreci, kendi başına otuz iki isteği uçuşta tutacak kadar iş üretmez; üretse bile onları bekleyen taraf işlemcinin kendisidir. Bu yüzden yükleme anında belirleyici olan toplam veri akışı değil, istek başına gecikmedir. Özellik tablosundaki 4K rastgele okuma ve düşük kuyruk derinliği satırı, tek çalışan bir uygulamanın ürettiği desene en yakın olandır.

Oyun motoru aslında neyi, ne zaman okuyor

Yükleme ekranı tek bir iş değil. Önce motor hangi dosyanın nerede olduğunu bulmak için küçük okumalar yapar: paket indeksleri, yönlendirme tabloları, varlık listeleri. Sonra asıl büyük dosyaları çeker. Araya yüzlerce küçük arama okuması serpilir. Yani yükleme, küçük rastgele okuma ile büyük kopyalamanın karışımıdır ve bu iki parça aynı anda iyileşmez.

Dahası, oyunların çoğu varlıkları sıkıştırılmış halde saklar. Sürücü veriyi ne kadar hızlı verirse versin, işlemcinin onu açması için de zaman gerekir. Önbellekten okuyan bir sürücü saniyede birkaç gigabayt verebilirken, tek çekirdekte çalışan bir açma rutini bunun çok altında kalır. Sonuç şu: yükleme süresi kabaca sürücü süresi ile açma süresinin yavaş olanıdır. Sürücüyü iki kat hızlandırmak yükleme süresini yarıya indirmez, çünkü işin bir kısmı diskte hiç beklemiyor.

DirectStorage konuşulunca değişen ne

DirectStorage'nin vaadi tam olarak bu duvara karşı: sıkıştırma açma işini işlemci yerine ekran kartına taşımak ve aynı anda uçuşta çok daha fazla istek tutabilmek. Ama bu, oyunun buna göre paketlenmiş olmasına bağlı. Desteklemeyen bir oyunda, NVMe sürücünün kutusundaki rakam ne olursa olsun, yükleme yolu eski usulde işler. Yani özellik tablosundaki destek satırı, en az hız satırı kadar önemli olabilir.

Yuva, sürücüden önce karar veriyor

Burada kutudaki rakamın tamamına erişememe durumu var. M.2 yuvası PCIe 3.0 ise, 4.0 sürücü sessizce 3.0 tavanına iner. Bu bir arıza değil, anlaşmanın sonucu. Anakart kılavuzundaki yuvanın nesli ve hat sayısı, senin gerçek tavanını belirler. Bazı anakartlarda ikinci M.2 yuvası yonga setine bağlıdır ve hat sayısı daha düşüktür; bazı dizüstülerde yuva x4 yerine x2 çalışır. Sürücü elinden geleni yapar, yuva izin vermez.

Sürücünün modelini DxDiag gösterir ama bağlantı neslini ve hat sayısını göstermez. Bu bilgi için anakart ya da dizüstü kılavuzuna ve işlemcinin sunduğu PCIe nesline bakmak gerekir. Bunu bir kez netleştirdiğinde, tablodaki en üst satırların neden ulaşılmaz olduğunu da anlarsın.

DRAM'siz sürücüler ve SLC önbelleği: yanlış yere korkmak

Tabloda DRAM yok ibaresini görünce birçok kişi doğrudan yükleme süresini düşünüyor. Oysa buradaki zayıflık daha çok yazma tarafında ve büyük ölçekli işlerde ortaya çıkar. DRAM'siz sürücüler adres eşleme tablosunu ana bilgisayar bellek tamponu üzerinden sistem belleğinde tutar; küçük rastgele okumalarda ceza sınırlı kalır. SLC önbelleği dolduğunda düşen hız ise yüzlerce gigabaytlık bir kurulumu tek seferde yazarken hissedilir; oyun oynarken değil, oyun kurarken.

Yani DRAM'siz etiketi yükleme süresiyle ilgili bir uyarı değil, daha çok büyük yazma işlerinde sabırlı olman gerektiğini söyleyen bir not. Bunun tersini iddia eden yaygın bir kısayol var; ben o kısayola güvenmiyorum.

Tabloda hangi satır sunucu işi

Özellik tablolarında gözüne çarpan bazı satırlar senin iş yükünü hiç anlatmaz. Bir milyon IOPS, kuyruk derinliği 32, karışık iş yükü, uçtan uca veri yolu koruması gibi ifadeler, aynı anda yüzlerce iş parçacığının sürücüye yüklendiği sunucu senaryoları için anlamlıdır. O değerler sürücünün kontrolcüsünün ne kadar çok isteği havada tutabildiğini gösterir; tek bir oyunun yükleme ekranında o kadar istek hiç oluşmaz.

Aynı şekilde TBW ve çalışma saati ömür değerleri dayanıklılıkla ilgilidir, hızla değil. Karışık okuma-yazma oranlı satırlar da sunucunun aynı anda hem okuduğu hem yazdığı senaryoyu tarif eder; senin oyunun ağırlıklı olarak okur.

Bir satırı okurken kendime sorduğum soru

Bu sayı hangi kuyruk derinliğinde alındı, blok boyutu ne, ve tek bir uygulama bu deseni üretir mi? Cevap hayırsa o satırı not olarak okuyup geçiyorum. Üretici rakamları zaten ideal bir platformda, en iyi durumda alınan değerlerdir; senin makinen için verilmiş bir söz değil.

Kendi makinemde sırayla baktığım şeyler

  • Anakart kılavuzundaki M.2 yuvasının PCIe nesli ve hat sayısı.
  • Oyunun hangi sürücüde kurulu olduğu; kütüphane klasörü ayarına bakmak yeterli.
  • Yükleme sırasında Görev Yöneticisi ve Performans sekmesi: disk mi tam yükte, yoksa tek bir çekirdek mi? İkincisiyse sürücü değil, açma işi sınırlıyor.
  • Oyun bir sabit diskteyse tartışma bitiyor; orada darboğaz gerçekten depolama.
  • Windows sürümü ve oyunun DirectStorage kullanıp kullanmadığı.

Kutudaki rakam yalan değil; sadece başka bir soruya cevap veriyor. Senin sorun, tek bir oyunun tek bir yükleme ekranında ne olduğu. Bir dahaki sefere kutuyu çevirdiğinde o sayının hangi işi ölçtüğünü hatırla; gerisini tablodan değil, kendi görev yöneticinden oku.

Kasayı Açanlar Kasayı Açanlar Bu ekip tarafından yazıldı

Kasayı Açanlar, bilgisayarını kendi elleriyle söküp takmayı alışkanlık haline getirmiş kişilerden oluşuyor. İkinci el parçalarla kasa toplamış, uyumsuz bir parça yüzünden hata mesajıyla uğraşmış ve oyunların resmi gereksinim satırlarını kâğıt üzerinde karşılaştırmayı öğrenmiş bir grup.

Ekibimizle tanışın