Selamlar, birçok oyuncunun yaşadığı sorunlardan biri olan 'Darboğaz Bottleneck sorunu nedir?' sorusunun cevabını açıklıyoruz. Burada işin teknik yönü ağır bastığından cümleleri basitleştirip, en anlaşılır yolla size ulaşma çabası güttüğümden bazı yerleri örnek vererek anlatmaya gayret edeceğim. Darboğaz sorunu yaşamamak için en başa dönerek kullandığınız bilgisayarın donanımlarını kendinizin seçtiğini varsayarak başlıyorum. Eğer hali hazırda bir bilgisayar sisteminiz varsa ve darboğaz sorunu yaşayıp yaşamadığınızı bilmiyorsanız sizin için de bir test bağlantısını yazının ilerleyen kısımlarına bırakacağım.
Kelimenin köküne inecek olursak birçok alanda bu terimin kullanıldığını görebiliriz. Öncelikle kelimenin sizde soyut şekilde kalmaması ve konunun daha anlaşılır olması için çok basit bir örnekle başlayacağım. (Muhteşem Photoshop yeteneklerimle size böyle bir görsel hazırladım.)
Bir tavuk çifliğiniz olduğunu varsayalım. Burada yumurta üretimi yapıyor, paketliyor ve nakliyesini de araçlarla yapıyoruz. Sistemimiz böyle işliyor ve birçok bilgisayar sistemiyle o kadar ortak noktası var ki, hayret edeceksiniz. Çiftliğin sürekli olarak yumurta üretebilmesi ve bunları hızlıca paketleyip stokta bekletmeden araçlarla nakliyesini yapması bizim ana beklentimiz. Bir sürü tavuğumuz var ve sürekli olarak yumurta üretimi yapabiliyoruz, paketleme için yeterli sayıda elemanımız var ve üretilen yumurtalar hızlıca paketleniyor. Buraya kadar her şey çok güzel fakat elimizdeki vasıtaların sayısı, üretip paketlediğimiz yumurtaları satış noktalarına yetiştirmemize yetmiyor. İşte tam da burada sistemimizde bir darboğaz söz konusu. Bu sorunu çözmek için izleyebileceğimiz birçok farklı yol da bulunuyor. Çiftlik örneği buraya kadardı, şimdi işin bilgisayar kısmına geçelim.
Darboğaz sorununu yaşayabileceğiniz yegâne alan video oyunları, birçok farklı kısımda da bu sorun can sıkıcı olabilse de biz oyunlardan bahsedeceğiz. Bildiğiniz gibi oyunlar sistemin bütün donanımlarını kullanır ve eğer sisteminizde darboğaz sorunu varsa "en zayıf halka" sizin bütün performansınıza doğrudan etki eder. Bu yumurta üreten tavuklarınızın sayısı da olabilir, paketleme elemanlarınızın çalışma hızı da, nakliye araçlarının sayısı da. En sık görülen darboğaz türü genelde "İşlemci-Ekran kartı darboğazı" şeklinde karşımıza çıkar.
Mesela Crysis Remastered oynuyorsunuz, harika bir sisteminiz var fakat oyundaki performansınız beklentinizin çok altında. Özellikle örneği ağır bir oyundan verdim, ki genelde böyle sorunlar ağır oyunlarda çok daha belirgin şekilde karşımıza çıkıyor. Bilgisayarınızın en zayıf halkasını bulmanız için yapmanız gereken belli başlı adımlar var. Öncelikle donanımlarınızın kullanım yüzdesine bir bakın. İşlemcinizin 100% çalıştığı durumlarda ekran kartınız 40-50% şeklinde çalışıyorsa eyvahlar olsun! İşlemciniz darboğaz yapıyor. Bunun tam tersi durumlarda da -genelde böyle olmasını isteriz- ekran kartınız darboğaz yapıyordur. Çözüm için basit yöntemler var.
Genelde ilk adım olarak sistem özelliklerini düşürüp donanımlar arasındaki uyumu artırmak akla gelmese de darboğaz sorununun bir çözümü de budur. Biz daha çok sistem özelliklerini yükseltmekten bahsedeceğiz, çünkü kimse elinde daha iyisi varken -özellikle fiyatlar böyleyken- daha zayıf bir donanım için masraf yapmak istemez. Örnekte ekran kartınızın -bu endüstrinin gördüğü en iyi kartlardan biridir nezdimde- GeForce GTX 1050Ti olduğunu varsayalım. İşlemciniz ise AMD Ryzen 5 2600x olsun. Crysis Remastered oynarken ekran kartınız işlemcinin yaptığı hesaplamaları size göstermekte gecikeceği için ekran kartı kısmında darboğaz sorunu yaşayacaksınız. Bunun en iyi çözümü ekran kartınızı yükseltmek, bir diğer opsiyon ise işlemcinizi düşürmektir. Anakartınızdaki işlemci slotuna uygun, daha düşük bir işlemci almak biraz uğraştırıcı olacağı için yeni bir ekran kartı alma vaktinizin geldiğini söyleyebilirim.
Bunun tam tersi bir durumda GeForce RTX 2060 ekran kartına sahip bir bilgisarınız olsun, AMD FX-8370e işlemciniz de buna eşlik etsin. Kesinlikle işlemci konusunda darboğaz yaşayacaksınız. Anakartınızın işlemci slotuna uygun daha yüksek bir işlemci ile emektar 8370e'nizi değiştirmekten başka bir çözüm yolunuz yok. Çünkü ben olsam, bilgisayarımda RTX 2060 varken gidip darboğaz sorunu çözmek için 1050Ti almazdım. Siz de almayın.
Burada kendi kullanmış olduğum sistemin Cyberpunk 2077 çalışırken donanım kullanımlarını görüyorsunuz. Ekran kartım 1050Ti ve işlemcim AMD FX-8370e, size verdiğim iki örnekte de donanımlarımdan birini kullandım ki bu kısmı gördüğünüzde her şey tam olarak yerine otursun. Gözle görülür bir darboğaz sorunu yaşamıyorum, ekran kartım hariç. Onu da yükselteceğim zaman aklıma hemen RTX 2000 serisi ekran kartları gelmeyecek, çünkü bu da başka bir darboğaz sorununa yol açacak. Sizin de sisteminiz böyle ise aklınızda bulunsun, donanımlar arasındaki uyumu korumaya çalışın.
Öncelikle bunun için sizi Darboğaz testi yapabildiğiniz pcbuilds.com'un Bottleneck Calculator'una yönlendirmeliyim. Burada sistem özelliklerinizi seçerek bilgisayarınızın böyle bir sorun yaşayıp yaşamadığını yüzdelik oranlarla öğrenebilirsiniz. Bir diğer yöntem de bilgisayar yük altındayken -bu bir oyun olur, yazılım olur- görev yöneticisinden işlemci, ram ve ekran kartı kullanımlarınızı izlemek. Aralarında bir dengesizlik varsa sisteminiz muhtemelen darboğaz yapıyor. Kullanım yüzdesi en fazla ve en düşük olan iki donanımınızı yukarıda bahsettiğim örnekteki gibi karşılaştırabilirsiniz. Eğer bu sorunu yaşıyorsanız ve donanım değiştirecek bütçeniz yoksa bir diğer çözüm de hız aşırtma yapmak. Bununla ilgili de bir yazıyı ilerleyen vakitlerde paylaşacağım. Benim yukarıdaki sistemimdeki bütün hızlandırılabilir donanımlar hız aşırtma (overclock) yapılmış şekilde çalışıyor. Sorularınızı ve görüşlerinizi yorumlar kısmında belirtebilirsiniz.
Darboğaz esas RAM hızı, GPU bant genişliği ve anakart bant genişliği ile alakalıdır.
Dar boğaz kavramı çok parametrelidir.
Dar boğaz kavramı oyun motoruyla doğrudan ilgilidir.
Spesifik olarak binlerce farklı şekilde dar boğaz yaşanabilir. Bunun doğrudan sizin CPU/GPU seçimlerinizle, bant genişliğinizle dahi dahi ilgisi yoktur.
Bir uygulamada dar boğaza neyin neden olduğu oyun motorunun sunduğu yada frame analizi yapmaya olanak sağlayan profiler yazılımlarıyla ölçülür. Yazılımın alt sistemlerinin hangisinin neye neden olduğunu anlamak bile başlı başına bir iştir.
Her oyun ihtiyacına göre bu alt yazılım sistemlerinin optimize edilmesi gerekebilir. Gerektiğinde kökten yeni şeyler denemek gerekebilir (multithreading, SIMD optimizasyonu, vektörizasyon)
Bunu en iyi hazır oyun motorlarıyla yapılmış amatör oyun geliştiricilerin yaptığı oyunlardaki hantallıktan anlarsınız. Ortalama altı geliştiriciler ya da bünyesinde motoru tanıyan uzman bulundurmayan ekipler genellikle sistemin sunduğu temel sistemleri hiç bir özel ayarlama, yeniden programlama yapmadan kullandıklarından oyunlar en basit işi yaparken bile performans sorunlarıyla boğuşur.
----------------------------
Bu da farklı bir yönü tabi ama yine de darboğaz olarak adlandırılan tam olarak sizin bahsettiğiniz konu değil. Bu, darboğaz sorunu yaşayanların oyun motoru teknolojilerine hakim olması gerektiğini temel alan bir yaklaşım. Burada oyunların kendi içindeki kaynak kullanımlarından ziyade donanımlar arasındaki uyumsuzluk nedeniyle ortaya çıkan darboğaz sorununu anlattım. Bahsettiğiniz durum farklı bir isimle tanımlanabilir. Hatta direkt optimizasyon da diyebiliriz.