İşlemci kullanımı düşük görünse de darboğazı tek çekirdek yaratır

· Yazarı: Kasayı Açanlar
İçindekiler
  1. Yüzde bir ortalamadır, tavan değil
  2. Grafiği doğru okumak
  3. Oyunlar çekirdeklere eşit dağılmaz
  4. İki grafik, tek fiziksel çekirdek
  5. Asıl kanıt ekran kartının beklediğini görmek
  6. Kare sınırı ve dikey eşitleme okumayı bozar
  7. Arka planda çalışan şeyler sahte darboğaz üretir
  8. Suçlu her zaman işlemci değil
  9. Windows 10 ve 11'de sırayla ne yapıyorum

Görev Yöneticisi'nin üst kısmındaki işlemci yüzdesi, tüm mantıksal çekirdeklerin ortalamasıdır; bu yüzden iki iş parçacığını doyuran bir oyun toplamda %40'ta görünürken kare hızını belirleyen bileşen yine işlemci olabilir. Darboğazı yakalamanın yolu o toplam sayıya bakmak değil, Performans sekmesinde CPU grafiğini mantıksal işlemcilere çevirip çekirdek çekirdek okumak ve aynı anda ekran kartının o anlarda ne yaptığını izlemektir.

Ekranın sağ üst köşesinde küçük bir pencere duruyor. İçinde tek bir sayı var: %37. Biraz aşağıda GPU satırı %58 gösteriyor. Oyun akıcı değil, ara ara duraklıyor. Şimdi fareyi o pencereye götürün, CPU grafiğinin üzerine sağ tıklayın ve "Grafiği değiştir" altından "Mantıksal işlemciler"i seçin. Tablo bir anda değişir: on altı küçük grafikten biri tavanda çakılı duruyordur, hemen yanındaki onunla birlikte sallanıyordur, geri kalan on dördü ise neredeyse düz bir çizgidir. İşte o tek grafik, üstteki %37'nin sakladığı şeydir.

Yüzde bir ortalamadır, tavan değil

On altı mantıksal işlemciniz olduğunu düşünün. Oyunun ana iş parçacığı bunlardan birini %100'de tutarken diğerleri %30 civarında gezinirse, üstteki sayı %35-40 bandına oturur. Kimse yanlış bir şey göstermiyor; sayı doğru. Sadece cevaplamadığı soru şu: hangi çekirdek, ne kadar süreyle?

Ortalamanın kötü tarafı, hem darboğazı gizlemesi hem de olmayan bir darboğazı varmış gibi gösterebilmesi. Çekirdeklere eşit dağılan, iyi paralelleşen bir oyunda işlemci %80'lerde gezinirken aslında sınır ekran kartında olabilir. Yani "işlemci yüksek" tek başına bir teşhis değil. Teşhis, dağılımın şeklinde.

Grafiği doğru okumak

Görev Yöneticisi'ni açtıktan sonra ilk yapılacak şey Performans sekmesinde CPU'yu seçip sağ tarafta çekirdek ve mantıksal işlemci sayısını okumak. Orada "Çekirdekler" ve "Mantıksal işlemciler" satırları ayrı ayrı yazar; ikisi eşitse sistemde Simultaneous Multithreading kapalı ya da işlemci onu desteklemiyordur. Bu ayrımı bilmeden grafik okumak, iki katı büyüklükte bir tabloya bakıp yanlış sonuç çıkarmak demektir.

İkinci adım, grafiği mantıksal işlemcilere çevirmek. Ardından Seçenekler menüsünden güncelleme hızını yükseltmek gerekiyor; varsayılan hızda sorunlu an çoktan geçmiş olur. Aynı menüde "Her zaman üstte" seçeneği var, onu açın. Oyunu tam ekran yerine kenarlıksız pencere modunda çalıştırırsanız pencereler oyunun üstünde kalır ve oyundan çıkmadan sayacı izleyebilirsiniz. Alt-tab ile dışarı çıktığınızda oyun odağı kaybeder, yükü düşer ve elinizde yanlış bir an kalır.

Kaynak İzleyici'ye geçmek için ayrı bir yere gitmek gerekmiyor; Performans sekmesinin alt kısmında onu açan bir bağlantı var. Kaynak İzleyici'nin CPU sekmesinde sağ tarafta mantıksal işlemci başına küçük grafikler, solda ise ortalama CPU ve en yüksek frekans yüzdeleri durur.

Bir uyarı: Görev Yöneticisi ile Kaynak İzleyici'nin yüzdesi birebir tutmayabilir. İkisi farklı sayaçlar kullanır; biri frekans ölçeklemesini hesaba katan bir yük değeri üzerinden çalışır, diğeri doğrudan işlemci zamanını gösterir. Aradaki fark gizem değil, tanım farkıdır. Karar verirken tutarlılık için tek bir araca bakıp onun dilini öğrenmek daha sağlıklı.

Oyunlar çekirdeklere eşit dağılmaz

Bir oyun motoru genelde ağır işi taşıyan bir ana iş parçacığı tutar: sahne güncellemeleri, çizim çağrılarının kuyruğa verilmesi, oyun mantığı, bazı motorlarda varlık akışı. Yanında bir de çizim iş parçacığı olur. Modern motorlar işleri parçalara bölüp iş kuyruklarına dağıtır ama bu dağıtım hiçbir zaman eşit olmaz; bazı işler doğası gereği sıralıdır ve sıralı iş, tek bir çekirdeğin hızına bağlıdır.

DirectX 11 ile çalışan bir oyunda çizim çağrısı gönderimi tek bir iş parçacığında toplanır. DirectX 12 ve Vulkan bu yükü birden fazla iş parçacığına yayabilir, ama bunu yapmak geliştiricinin elindedir ve her oyunda aynı başarıda yapılmaz. Yani aynı donanımda bir oyun dört çekirdeği doldururken, bir başkası iki çekirdeği tıkar ve geri kalanı boş bırakır. Bu yüzden "kullanım düşük" cümlesi aslında iki farklı durumu anlatıyor olabilir: iyi dağıtılmış bir yük ya da tek bir çekirdeğe yığılmış bir yük.

İki grafik, tek fiziksel çekirdek

SMT açık bir işlemcide bir fiziksel çekirdek işletim sistemine iki mantıksal işlemci olarak görünür. Ana iş parçacığı bir fiziksel çekirdeği doldurduğunda, o çekirdeğin iki grafiği birlikte yükselir ve tabloya bakan kişi "iki çekirdek doldu" diye okur. Oysa ortada bir fiziksel çekirdek vardır. İkinci iş parçacığı ilkine hiçbir zaman aynı kapasiteyi eklemez; o yüzden iki grafiğin tavana yaklaşması, gerçekte bir çekirdeğin işi taşıdığı anlamına gelir.

Bu, çekirdek sayısı az olan sistemlerde sezgiye aykırı sonuçlar üretir. Altı çekirdek on iki iş parçacıklı bir işlemcide üç fiziksel çekirdek meşgulse, tabloda altı grafik hareketli görünür; toplam yüzde de olduğundan yüksek çıkar. Yani hem düşük hem yüksek yüzde yanıltıcı olabilir; belirleyici olan, tavan yapan grafiklerin kaç fiziksel çekirdeğe denk geldiğidir.

Asıl kanıt ekran kartının beklediğini görmek

Tek çekirdek darboğazında inandırıcı kanıt, işlemci yüzdesi değil, ekran kartının kullanımının düşmesidir. Kaynak işlemcide tıkandığında ekran kartı kareyi çizmek için veri bekler ve kullanım grafiği aşağı sarkar. Oyunun kare hızının düştüğü anlarla bu sarkmanın aynı yere denk gelmesi, tek başına bir işlemci yüzdesinden çok daha anlamlıdır.

Bunu görmek için Görev Yöneticisi'nde Performans > GPU sekmesinde 3B motorun kullanımına bakabilirsiniz. Daha ayrıntılısı Ayrıntılar sekmesindedir: oyunun sürecini bulup sütun başlığına sağ tıklayarak "Sütunları seç" üzerinden GPU ve GPU Motoru sütunlarını ekleyin. Böylece oyunun hangi grafik motorunu ne kadar kullandığını süreç bazında görürsünüz.

Okuma şekli şöyle: ekran kartı kullanımı sürekli olarak tavana yakın ve sabitse sınır büyük olasılıkla ekran kartında; çözünürlüğü ya da ayarları düşürmek işe yarar. Ekran kartı orta seviyelerde gezinirken bir mantıksal işlemci tavan yapıyorsa, sınır oradadır ve ayarları düşürmek beklediğiniz kazancı vermez. Ekran kartı düşük, çekirdekler sakinken de sorun devam ediyorsa bakılacak yer işlemci değildir.

Kare sınırı ve dikey eşitleme okumayı bozar

Test ederken en sık yapılan hata, kare sınırını ya da dikey eşitlemeyi açık bırakmak. Sınır devredeyken hem işlemci hem ekran kartı rahatlar, iki grafik de düşer ve elinizde hiçbir şeyi kanıtlamayan temiz bir tablo kalır. Ölçüm yaparken sınırı kaldırın, dikey eşitlemeyi kapatın, varsa hareket bulanıklığı ve kare üretimi gibi ekleri devre dışı bırakın. Kare üretimi özellikle kafa karıştırıcıdır: üretilen kareler işlemcinin gerçek yükünü değil, ekran kartının ürettiği kare sayısını değiştirir.

Arka planda çalışan şeyler sahte darboğaz üretir

Kayıt yazılımı, açık kalmış tarayıcı sekmeleri, arka planda duran başlatıcılar, güncelleme servisleri, antivirüs taraması ve aydınlatma yazılımları çekirdekleri oyundan çalar. Bunların etkisi, gerçek bir donanım sınırına çok benzer bir tablo çizer: bir çekirdek tavanda, kare hızı düşük.

Ayırt etmenin yolu basit. Oyunu kapatmadan önce hangi mantıksal işlemcinin tavan yaptığını not edin. Arka plan yazılımlarını kapatın, aynı sahneye dönün ve tekrar bakın. Tavan yapan grafik yer değiştiriyorsa ya da yük belirgin biçimde azalıyorsa, sorun donanımda değil, masanın üstündeki diğer pencerelerde demektir.

Suçlu her zaman işlemci değil

Bazı takılmalar işlemciyle hiç ilgili değildir. Diskte gezen bir oyun, mekanik sürücüden okunan varlıklar, dolmuş video belleği, yetersiz bellek yüzünden sayfa dosyasına taşan veri ve sürücü zaman aşımı hepsi aynı belirtiyi verir: düşen kare hızı. Çekirdek grafikleri sakinken takılma yaşanıyorsa, işlemciye bakmayı bırakıp disk, bellek ve sürücü tarafına yönelmek gerekir.

Bir de ısı ve güç tarafı var. Kaynak İzleyici'de en yüksek frekans yüzdesi sürekli tavanda değil de temel frekansta takılı kalıyorsa, işlemci kendini korumak için hız kısıyor olabilir. Bu durumda yüksek görünen kullanım, gerçekte kısılmış bir hızın ürünüdür ve yapılan karşılaştırma baştan hatalı olur. Dizüstü bilgisayarlarda güç planı ve pil modu da aynı etkiyi yapar.

Windows 10 ve 11'de sırayla ne yapıyorum

  1. Görev Yöneticisi > Performans > CPU: çekirdek ve mantıksal işlemci sayısını, temel hızı not ediyorum. SMT olup olmadığını buradan anlıyorum.
  2. CPU grafiğine sağ tıklayıp "Grafiği değiştir > Mantıksal işlemciler" seçiyorum. Güncelleme hızını yükseltiyor, "Her zaman üstte" seçeneğini açıyorum.
  3. Oyunu kenarlıksız pencere modunda başlatıyor, kare sınırını ve dikey eşitlemeyi kapatıyorum.
  4. Aynı ekranda GPU grafiğini de açık tutuyorum; hem genel kullanım hem de 3B motor kısmı önemli.
  5. Sorunun ortaya çıktığı ana kadar oynuyor, o anda hangi mantıksal işlemcinin tavanda olduğuna ve ekran kartının o sırada aşağı sarkıp sarkmadığına bakıyorum.
  6. Aynı sahneyi Kaynak İzleyici ile doğruluyorum; iki araç farklı konuşuyorsa hangi sayaca baktığımı hatırlıyorum.
  7. Arka plan yazılımlarını kapatıp son bir kez tekrarlıyorum. Fark varsa teşhis değişiyor.
  8. İşlemci modelini, bellek miktarını ve Windows sürümünü DxDiag ile ya da Ayarlar > Sistem > Hakkında üzerinden teyit ediyorum. Elindeki parçanın ne olduğunu bilmeden yükü yorumlamak, boş bir tartışma olur.

Bütün bunların özeti şu: işlemci darboğazı bir yüzde değil, bir dağılımdır. Ortalama size sistemin genel olarak ne kadar meşgul olduğunu söyler; hangi işin kimi beklediğini söylemez. Bir sonraki sefer ekranda %40 görüp rahatladığınızda, o küçük grafikleri açın ve tek bir çizginin tavanda durup durmadığına bakın. Cevap neredeyse her zaman orada olacak.

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