Sunucunun Türkiye'de olması gecikmeyi nasıl etkiler?
Sunucu ziyaretçiye ne kadar yakınsa gecikme (ping) o kadar düşük olma eğilimindedir. Çünkü gecikmenin alt sınırını ışığın fiberdeki hızı belirler: yaklaşık her 1000 km için tek yönde 5 ms, gidiş-dönüşte 10 ms. Ziyaretçileriniz Türkiye'deyse İstanbul'daki bir sunucu mesafenin getirdiği gecikmeyi küçük tutar. Ziyaretçileriniz yurt dışındaysa gecikme daha yüksek olur.
Bu yazıdaki rakamlar fizikten gelen teorik alt sınırlardır, ölçüm değildir. Gerçek değerleri kendi bağlantınızdan, aşağıdaki komutlarla ölçebilirsiniz.
Gecikme nedir, bant genişliğinden farkı ne?
Gecikme (latency), bir paketin gidip dönmesi için geçen süredir ve gidiş-dönüş süresi (RTT) olarak ölçülür. Bant genişliği ise saniyede ne kadar veri aktığını gösterir. Bir boruya benzetirsek gecikme borunun uzunluğu, bant genişliği çapıdır. Büyük bir dosya indirirken çap, küçük ve sık istekler gönderirken uzunluk belirleyicidir.
Mesafe gecikmeyi ne kadar artırır?
Işık fiberde yaklaşık 200.000 km/sn hızla ilerler. Bu, 1 ms'de yaklaşık 200 km demektir. Gerçek kablo yolları düz hattan uzundur ve her yönlendirici biraz süre ekler. Bu yüzden gerçek değerler aşağıdaki tablodan yüksek çıkar.
| İstanbul'dan | Yaklaşık mesafe | Teorik alt sınır (gidiş-dönüş) |
|---|---|---|
| Ankara, İzmir | 350 km | 3,5 ms |
| Orta Avrupa | 1.000-2.000 km | 10-20 ms |
| Batı Avrupa | 2.000-3.000 km | 20-30 ms |
| Kuzey Amerika'nın doğu kıyısı | 7.500-9.000 km | 75-90 ms |
Gecikme neyi etkiler?
- Web sayfaları. Yeni bir HTTPS bağlantısında ilk bayt yaklaşık 3 gidiş-dönüşte gelir: TCP için 1, TLS 1.3 için 1, istek ile yanıt için 1. TLS 1.2'de bu 4'tür. Sunucunun işlem süresi buna eklenir. Bağlantı yeniden kullanılırsa yalnızca 1 gidiş-dönüş kalır. Sayfa onlarca istek yapıyorsa gecikme birikir.
- Oyunlar. Ping, her hareketin sunucuya ulaşıp dönme süresidir. Oyuncular sunucuya yakınsa deneyim daha akıcı olur.
- SSH. Yazdığınız her karakter sunucuya gidip ekrana döner. Gecikme yüksekse yazarken hafif bir takılma hissedersiniz.
- Dosya indirme ve yükleme. Burada bant genişliği belirleyicidir, gecikme ikinci plandadır.
Sunucunun Türkiye'de olması kimlere yarar?
Ziyaretçilerinizin ya da ekibinizin çoğu Türkiye'deyse İstanbul'daki bir sunucu mesafeden gelen gecikmeyi en aza indirir. Seturack'ın tek lokasyonu İstanbul'dur. Mesafe kısaldıkça gecikme düşme eğilimindedir, ama ağ yolu mesafe kadar servis sağlayıcıların birbirine bağlanma biçimine de bağlıdır. Bu yüzden iddiaya değil, kendi ölçümünüze güvenin.
Kitleniz yurt dışındaysa
Kitleniz başka bir ülkedeyse gecikme tabloda gördüğünüz gibi artar. Bu her zaman sorun olmaz. Yönetim paneli, blog ya da dosya paylaşımı gibi işlerde biraz yüksek gecikme çoğu zaman fark edilmez. Oyunlarda ve gerçek zamanlı uygulamalarda ise belirleyicidir. Seturack'ta sunucu İstanbul'dadır, ama sipariş dünyanın her yerinden verilebilir. Yurt dışındaki bir kitleye hizmet vermek mümkündür, yalnız gecikmenin tabloda gösterildiği gibi artacağını bilerek planlayın. Yapabilecekleriniz:
- Görselleri, betikleri ve stil dosyalarını önbelleğe alıp kullanıcıya yakın noktadan sunan bir içerik dağıtım ağı (CDN) kullanın. Dinamik sayfalar yine sunucunuzdan gelir.
- Sunucuda HTTP/2 ya da HTTP/3 ve sıkıştırmayı açın. Böylece aynı bağlantıdan çok istek geçer.
- Sayfadaki istek sayısını ve görsel boyutlarını azaltın.
- Kullanıcılarınızın çoğu bir bölgede toplanıyorsa sunucunun konumunu seçerken o bölgeyi dikkate alın.
Kendi ölçümünüzü yapın
Gecikmeyi kendi bağlantınızdan, sunucunuzun IP adresine giderek ölçün:
ping -c 10 SUNUCU_IP
Windows'ta -c yerine -n yazın. Çıktıdaki ortalama değer gidiş-dönüş süresidir. Yalnız ortalamaya bakmayın: min, max ve mdev (macOS'ta stddev) değerleri arasındaki fark büyükse gecikme dengesizdir (jitter). Paket kaybı da oyun ve ses uygulamalarını bozar. Ölçümü günün farklı saatlerinde tekrarlayın, yoğun saatlerde değerler değişebilir. Yolun hangi noktada yavaşladığını ve nerede paket kaybı olduğunu görmek için:
mtr -rwc 20 SUNUCU_IP
macOS'ta mtr ayrıca kurulur. Bir web sitesinde sürenin nerede harcandığını ayrıştırmak için:
curl -o /dev/null -s -w "dns:%{time_namelookup} baglanti:%{time_connect} tls:%{time_appconnect} ilkbayt:%{time_starttransfer} toplam:%{time_total}\n" https://ornek.com
Değerler isteğin başından itibaren saniye cinsinden birikimli gelir. ilkbayt ile tls arasındaki fark, bir gidiş-dönüş artı sunucunun sayfayı hazırlama süresidir. Bu fark büyükse sorun mesafede değil, uygulamada ya da veritabanındadır.
Yavaşlık gerçekten gecikmeden mi?
Her yavaşlık mesafeden gelmez. Gecikmenin bir kısmı kullanıcının kendi ağından (Wi-Fi, mobil veri) gelir. Ölçümlere göre nedeni şöyle ayırabilirsiniz:
| Ne görüyorsunuz? | Muhtemel neden | Ne yapılır? |
|---|---|---|
| Ping yüksek, mtr'de gecikme yol boyunca kademeli artıyor | Mesafe ya da ağ yolu | Sunucuyu kitleye yaklaştırın, CDN kullanın |
| Ping yüksek, ama mtr'de ilk atlamalar zaten yüksek | Kendi yerel ağınız (Wi-Fi, mobil veri) | Kablolu bağlantı ya da başka bir ağ deneyin |
| Ping düşük, ama ilkbayt ile tls arasındaki fark büyük | Sunucu sayfayı geç hazırlıyor | Önbellek, veritabanı sorguları, RAM ve vCore |
| Ping ve ilkbayt iyi, ama sayfa geç açılıyor | Sayfa ağırlığı, çok sayıda istek | Görselleri küçültün, betikleri azaltın |
Sunucu tarafındaki sorunlar için bellek ve işlemci kullanımını da kontrol edin. Gerekirse sunucuyu panelden büyütebilirsiniz.
Sunucunuzu İstanbul'da kurmak isterseniz fiyatınızı fiyatlar sayfasında hesaplayabilirsiniz.
Yorumlar0
Henüz Yorum Yok
İlk düşüncenizi paylaşan siz olun.
Yorum bırakmak için lütfen giriş yapın veya kaydolun.