Bilgisayar Bilimleri

Sunucu Yanıt Süresi Nedir? Nasıl Kısaltılır?

Sunucu yanıt süresi (TTFB) nedir, sunucu yanıt süresi neden önemlidir, ideal sunucu yanıt süresi nedir, sunucu yanıt süresi nasıl ölçülür ve ilk sunucu yanıt süresini kısaltmanın en etkili yolları nelerdir sorularının cevapları bu yazıda!

📌 Sunucu Yanıt Süresi (TTFB): Bir istemcinin gönderdiği isteğin sunucu tarafından işlenip yanıtlanarak tekrar istemciye ulaşması için geçen toplam süredir. Başka bir ifadeyle, bir web sitesinin bağlantısına tıkladıktan sonra sunucudan yanıt olarak ilk veri parçasını alıncaya dek geçen süredir. Genellikle milisaniye (ms) cinsinden ölçülür ve sunucuların performansını ve verimliliğini değerlendirmek için kullanılır. Bu süre sunucunun donanım gücü, ağ bağlantısı, yazılım verimliliği ve mevcut iş yükü gibi çeşitli faktörlere bağlı olarak değişiklik gösterebilir.

Profesyonel İpucu: Düşük bir sunucu yanıt süresi, kullanıcıların web sayfalarını mümkün olan en kısa sürede yükleyebilmesi için büyük öneme sahiptir. Sunucu yanıt süresinin uzaması, web sitelerinin doğrudan yüklenme süresini uzattığı için kullanıcı deneyimi, dönüşüm oranları, gelir potansiyeli, SEO başarısı ve marka imajı üzerinde önemli bir etkiye sahiptir. Google’a göre kullanıcıların en az %75’lik dilimi için 0,8 saniye veya daha kısa bir sunucu yanıt süresi idealdir. İyi haber şu ki, donanımsal ve yazılımsal değişikliklerle sunucu yanıt süresi optimize edilebilir.

Görsel: Sunucu Yanıt Süresinin (TTFB) Şematize Edilmesi
Görsel: Sunucu Yanıt Süresinin (TTFB) Şematize Edilmesi

Sunucu Yanıt Süresi (TTFB) Nasıl Ölçülür?

Sunucu yanıt süresi; istemciden sunucuya gönderilen bir isteğin alınması (bu süre kullanıcının konumuna ve internet bağlantısı kalitesine göre farklılık gösterebilir), sunucunun istemciden gelen talebe göre yanıt oluşturması ve bu yanıtın istemciye geri dönmesi için geçen toplam süreyi kapsar. TTFB (time to first byte), site hızının kritik bir bileşeni olup gelen isteklere karşı duyarlılığın ve yanıt verebilirliğin de bir ölçüsüdür. TTFB, laboratuvar ortamında veya gerçek dünya koşullarında farklı yöntemlerle ölçülebilir. Bu süre, internetteki çeşitli hız testi araçlarıyla ölçülebileceği gibi, internet tarayıcılarının geliştirici araçlarındaki ‘ağ’ bölümü incelenerek veya ‘geliştirici konsoluna’ aşağıdaki ufak kod parçasının yapıştırılması yoluyla da ölçülebilmektedir:

new PerformanceObserver((entryList) => {
  const [pageNav] = entryList.getEntriesByType('navigation');

  console.log(`TTFB: ${pageNav.responseStart}`);
}).observe({
  type: 'navigation',
  buffered: true
});
Görsel: Google Chrome Geliştirici Araçlarının 'Ağ' Bölümünde TTFB Ölçümü
Görsel: Google Chrome Geliştirici Araçlarının ‘Ağ’ Bölümünde TTFB Ölçümü
Not: Sunucu yanıt süresine ilişkin laboratuvar ortamında yapılan ölçümler kontrol edilebilen ve tekrarlanabilen koşullarda gerçekleştirilir. Bu tür ortamlar, genellikle sunucu performansını izole bir şekilde değerlendirerek daha tutarlı sonuçlar elde etmeyi sağlar. Ancak gerçek dünyadaki saha koşullarında gerçek kullanıcı verileri cihaz ve tarayıcı farklılıkları, ağ koşulları, coğrafi farklılıklar, DNS yanıt süresi ve anlık site trafiği gibi pek çok değişkene bağlı olarak büyük farklılıklar gösterebilir. Ayrıca TTFB’yi optimize etmenin bir web sitesini tamamen hızlandırmak için kritik bir adım olsa da, bunun tek başına yeterli olmayacağı da göz ardı edilmemelidir.

Görsel: İdeal Sunucu Yanıt Süresi Aralıkları
Görsel: İdeal Sunucu Yanıt Süresi Aralıkları

Sunucu Yanıt Süresi (TTFB) Nasıl Kısaltılır?

1- Sunucu Donanımı ve Yapılandırmasını İyileştirmek

Kötü yapılandırılmış ve yeterince güçlü olmayan sunucular, bir sitenin potansiyeline ulaşmasını engeller. Sunucu seçimi yapılırken sitenin çektiği trafiğe ve ihtiyaçlarına göre fiyat performans analizi yapılmalıdır. Dikkatlice düşünülmüş bir mimariye ve gelişmiş donanımlara sahip, güncel yazılımlarla çalışan, bant genişliği ve limitleri (sorgu, I/O vb.) daha yüksek olan, kullanıcıların bulunduğu yere fiziksel olarak yakın konumda olan ve kesintisiz hizmet sunan bir ana sunucu hizmeti tercih edilmelidir. Yüksek performanslı işlemciler sunucunun veri işleme kapasitesini artırırken, hızlı ve yüksek miktarda RAM daha fazla işlemin aynı anda yapılabilmesini sağlar. NVMe ve SSD gibi yeni nesil depolama birimleri ise verileri okuma ve yazma hızlarını artırır.

Görsel: Temel Sunucu Çeşitlerinde Kaynakların Paylaştırılması
Görsel: Temel Sunucu Çeşitlerinde Kaynakların Paylaştırılması

Sunucu yanıt süresini kısaltmanın bir diğer yolu, sunucunun yapılandırmasını iyileştirmektir. Aslında her daim daha gelişmiş bir sunucuya geçmek şart değildir çünkü doğru optimizasyon yöntemleri ile mevcut sunucu yükünü önemli ölçüde azaltmak mümkündür. İlk olarak, sunucu yazılımlarını ve işletim sistemini güncel tutmak önemlidir. Buna ek olarak sunucunun yazılımı (Apache, Nginx, vb.) en iyi performansı sağlayacak şekilde yapılandırılmalıdır. Örneğin HTTP/2 ve gzip sıkıştırma gibi özellikleri etkinleştirmek, veri aktarım hızını artırır. Gereksiz hizmetleri ve süreçleri devre dışı bırakmaksa (örneğin yönlendirme sayısını en aza indirmek) sunucunun yalnızca gerekli hizmetleri çalıştırmasını sağlayarak kaynak kullanımını azaltmayı sağlayacaktır. Benzer şekilde daha hızlı bir DNS sağlayıcısı kullanmak DNS arama süresini ve TTFB’yi kısaltır.

Görsel: Donanımsal ve Yazılımsal Açıdan Sunucu Konfigürasyonu
Görsel: Donanımsal ve Yazılımsal Açıdan Sunucu Konfigürasyonu

2- Önbellek Kullanmak ve Önbelleği Önyüklemek

HTTP isteği web sunucusuna ulaştığında sunucunun veri tabanından birçok farklı veriyi alıp bir araya getirerek sayfayı oluşturması gerekmektedir. Bilgilerin tekrar tekrar işlenmesi, sunucunun yanıt verirken tekrara düşmesine neden olur. Ancak önbellekleme kullanıldığında, sıkça erişilen veriler ve hesaplamalar hızlı erişim için geçici olarak depolanır ve sonraki isteklerde bunlara hızlıca ulaşılır. Önbellekleme tarayıcı (istemci) ve sunucu önbelleklemesi olmak üzere iki temel kategoriye ayrılır. Ziyaret edilen sayfaların statik içerikleri kullanıcıların internet tarayıcılarında saklanırken, sıkça istenen sayfalara ilişkin veriler ise doğrudan kaynak sunucusunda saklanır.

Görsel: Sunucularda Önbellek Kullanımının Şematize Edilmesi
Görsel: Sunucularda Önbellek Kullanımının Şematize Edilmesi
Profesyonel İpucu: Önbellek kullanımında doğrudan önceden oluşturulan statik HTML sayfaları sunulduğu için, gelen her kullanıcı isteğinde sayfanın tekrardan oluşturulmasına gerek kalmaz. Bu sayede HTTP isteği sayısı azalır, veritabanının sorgu yükü hafifler ve işlem süresi kısalır. Özellikle yüksek anlık kullanıcı sayısına sahip sitelerde, önbellekleme sunucunun aşırı yüklenmesini önler. Fakat önbellek ayarları ve boyut yönetimi dikkatle yapılmalıdır. Ayrıca kullanıcıların siteyi ziyaret etmesini beklemeden service worker ile önbelleği sunucuda önyüklemek (SSR), özellikle ortalama ziyaretçi sayısı az sitelerde TTFB’yi kısaltmanın etkili bir yoludur.

Görsel: Elektronik Devre Kartı Üzerinde Bulunan Bir Önbellek Donanımı
Görsel: Elektronik Devre Üzerinde Bulunan Önbellek Donanımı

3- İçerik Dağıtım Ağı (CDN) Kullanmak

Content Delivery Network (CDN), internet kullanıcılarına hızlı ve güvenli şekilde içerik sunmayı amaçlayan ve coğrafi olarak farklı konumlara dağıtılmış sunucu ağlarıdır. İçerik dağıtım ağları statik içeriklerin (görsel, CSS ve JS dosyaları gibi) dünya genelinde farklı stratejik noktalardaki sunucularda depolanmasını ve kullanıcılara kendilerine daha yakın konumdaki sunuculardan sunulmasını sağlar. Kaynak sunucusundan uzakta bulunan kullanıcılar yine de sahada yüksek TTFB deneyimi yaşayabileceği için, CDN kullanımı dünyanın farklı yerlerinden ziyaretçi çeken siteler için yapılması gereken iyileştirmelerin başında gelir. Nitekim bir internet sitesinin trafik miktarını kontrol etmek mümkün olmasa da, sitenin ölçeklenebilirliğini yönetmek önemlidir.

Görsel: CDN İle Kıtalar Arası Sunucu Yanıt Süresi Optimizasyonu
Görsel: CDN İle Kıtalar Arası Sunucu Yanıt Süresi Optimizasyonu
(Tam Boyutlu Görsel İçin: “Tıklayın“)

4- Veritabanını ve Sorguları Optimize Etmek

Yapılan her işlem sonucunda veri tabanında kaydedilen, zamanla boyutları büyüyen kayıtlar ve dosyalar zamanla veri tabanını şişirerek sunucu yanıt süresini etkileyebilirler. Özellikle gönderi revizyonları, çöpe atılmış veya spam olarak işaretlenmiş yorumlar ve eklentilerin oluşturduğu geçici dosyalar gibi fazla miktarda gereksiz veri içeren bir veritabanı performans düşüşüne yol açabilir. Bu sebeple periyodik olarak veritabanı temizliği yapmak ve gereksiz verileri silmek önemlidir. Öte yandan veritabanı sorgularının hızlı çalışmasını sağlamak, sitede önemli bir fark yaratabilir. Bu sebeple indeksleme, sorgu optimizasyonu ve önbelleklemesi gibi performans iyileştirmelerine ek olarak veritabanı sunucusunun optimal ayarlarla çalışması sağlanmalıdır.

Görsel: SQL Sorgu Kompleksliğini Düşürerek TTFB Kısaltma
Görsel: SQL Sorgu Kompleksliğini Düşürerek TTFB Kısaltma

5- Dosya Boyutlarını ve İstek Sayısını Azaltmak

HTTP isteklerinin sayısını ve boyutlarını azaltmak, hem sunucu yanıt süresini kısaltmak hem de web sitesinin performansını artırmak için kritik bir adımdır. Öncelikle mevcut temalar, kodlar, eklentiler, dosyalar ve ayarlar düzenli olarak gözden geçirilerek yalnızca gerçekten ihtiyaç duyulanların kullanılması ile işe başlanabilir. Bu, sitedeki harici sorgu sayısını arttıran 3. taraf bileşenler (fontlar, sosyal medya gönderileri, gömülü içerikler vb.) için de geçerlidir. Ardından sitede depolanan verilerin performansa etkisi analiz edilip dosyaların birleştirilerek sayılarının azaltılması ve sıkıştırılarak boyutlarının küçültülmesi gibi optimizasyonlar yapılmalıdır. Fakat hatalı bir işlem ciddi kayıplara yol açabileceği için mutlaka yedek alınması isabetli olacaktır.

Görsel: Veritabanı Temizliği ve Optimizasyon İşlemleri
Görsel: Veritabanı Temizliği ve Optimizasyon İşlemleri
Yasal Uyarı: İnternet sitemizdeki içerikler güvenilir kaynaklar baz alınarak sadece eğitim ve eğlence amacıyla üretilmiştir. Sitede sunulan içerikler genel kabul gören standartlara dayansalar da, yayınlandıktan sonra zaman içerisinde güncelliğini ve geçerliliğini yitirebilirler. Ayrıca bunlar uzman teşhisinin yerini tutmaz ve tavsiye niteliği taşımaz. Yazılanlar farklı şartlarda farklı sonuçlar verebileceği için, bunları uygulamadan detaylı bir şekilde araştırmanızı ve bir uzmandan destek almanızı önerir, yazanları uygulamanın sorumluluğunuzda olduğunu önemle hatırlatırız.
(Ayrıca Bakınız: Sorumluluk Reddi Beyanı)

MrKaptanTR

Hacettepe Üniversitesi mezunu bir bilgisayar mühendisiyim ve boş zamanlarımda kurucusu olduğum bu platformda profesyonel içerik üreticiliği yapıyorum. Yazılım geliştirmekten, spor yapmaktan ve gizemli konuları araştırmaktan keyif alıyorum.

Yorumlar: (4 Yorum)

  1. Merhaba.
    Yazının tamamını okumadım. Çünkü yazının başındaki “brotli” tavsiyesi sorunumu çözdü. 😀
    Teşekkür ederim.

    1. Sebep? Bence gayet güzel durumda, hatta bu yazı Google’da snippet bile almış 🙂

Başa dön tuşu