
Gece yarısı yedekleme başlıyor ve o sırada siteye giren kullanıcılar sayfaların yavaş açıldığını fark ediyor. Sunucunuzun bant genişliği bölünmüş durumda ve hiçbir şey hangi trafiğin öncelikli olduğunu bilmiyor.
Bu yazı, sunucu trafiğini önceliklendirmeyi ele alıyor.
Sorunun Kaynağı
Varsayılan durumda tüm ağ trafiği eşit muamele görür:
- Yedekleme aktarımı ile ziyaretçi trafiği aynı sırada bekler.
- Büyük dosya indirmeleri hattı doldurur.
- Toplu e-posta gönderimi kapasite tüketir.
- Güncelleme indirmeleri araya girer.
Sonuç şudur: arka planda çalışan ve aceleyle bitmesi gerekmeyen bir iş, gerçek kullanıcıların deneyimini bozar.
Oysa bu işlerin çoğu için birkaç dakika gecikme fark etmez. Ziyaretçi için ise bir saniye gecikme belirgin bir farktır.
Üç Farklı Yaklaşım
Bu sorunu çözmenin farklı yolları vardır:
| Yöntem | Karmaşıklık |
|---|---|
| Aracın kendi hız sınırı | En basit — çoğu araç destekler |
| Süreç önceliği düşürme | Basit, ağ için sınırlı etki |
| Çekirdek seviyesi şekillendirme | Güçlü ama karmaşık |
Birinci satır çoğu durumda yeterlidir ve gözden kaçar: dosya aktarım araçlarının çoğu bant genişliği sınırlama seçeneği sunar — tek bir parametre eklemek sorunu çözebilir.
Bu, karmaşık ağ yapılandırmasına girmeden alınabilecek en hızlı sonuçtur. Yedekleme betiğinize bir sınır eklemek dakikalar sürer.
Süreç Önceliği
İşletim sistemi seviyesinde öncelik ayarlamak iki boyut içerir:
- İşlemci önceliği. Hangi süreç CPU rekabetinde geri çekilsin.
- Disk erişim önceliği. Hangi süreç disk sırasında beklesin.
İkinci madde yedekleme işlerinde birincisinden daha önemlidir: yedekleme genellikle CPU değil disk yoğun bir iştir ve disk sırasını doldurur.
Yalnızca işlemci önceliğini düşürmek bu durumda çözüm sağlamaz. Disk önceliğinin de ayrıca düşürülmesi gerekir.
Bu iki ayar birlikte kullanıldığında, arka plan işi sistem boştayken hızlı çalışır ve yük geldiğinde kendiliğinden geri çekilir.
Ağ Şekillendirme
Daha hassas kontrol gerekiyorsa çekirdek seviyesinde sınıflandırma yapılabilir:
- Trafik sınıflara ayrılır. Port, IP veya işaret bazlı.
- Her sınıfa bant genişliği payı verilir.
- Boşta kalan kapasite paylaşılır.
- Öncelikli sınıf her zaman önde gider.
Üçüncü madde bu yaklaşımın verimliliğini sağlar: web trafiği yokken yedekleme tüm kapasiteyi kullanabilir, trafik geldiğinde otomatik olarak geri çekilir.
Yani sabit bir sınır koymuş olmazsınız — kapasite dinamik olarak paylaşılır ve hiçbir zaman boşa gitmez.
Bu tür çekirdek seviyesi yapılandırmalara ancak kök erişimine sahip olduğunuz bir sanal sunucu hizmeti üzerinde müdahale edebilirsiniz.
Giden ve Gelen Ayrımı
Önemli bir teknik sınır vardır ve bilinmesi gerekir:
| Yön | Kontrol imkânı |
|---|---|
| Giden trafik | Tam kontrol mümkün |
| Gelen trafik | Sınırlı — dolaylı yöntemler |
Neden böyle olduğu basittir: giden trafiği kendiniz üretirsiniz, gelen trafiği ise siz istemeden karşı taraf gönderir.
Gelen trafiği sınırlamak için ancak dolaylı yöntemler vardır — paketleri düşürmek veya yavaş onay göndermek gibi. Bunlar da bağlantı kalitesini bozar.
Pratikte bu, indirme işlerini sınırlamanın gönderme işlerini sınırlamaktan daha zor olduğu anlamına gelir. Güncelleme indirmelerini sınırlamak istiyorsanız, aracın kendi hız sınırı seçeneği en pratik yoldur.
Zamanlama ile Çözmek
Şekillendirmeye hiç girmeden alınabilecek önlemler:
- Ağır işleri düşük trafik saatlerine alın.
- Aynı anda birden fazla ağır iş çalıştırmayın.
- İşleri parçalara bölün. Aralarında nefes payı bırakın.
- Artımlı yöntemler kullanın. Her seferinde her şeyi aktarmayın.
Dördüncü madde en büyük kazancı sağlar: yalnızca değişen dosyaları aktaran bir yedekleme, tam yedeğe göre kat kat az bant genişliği kullanır.
İkinci madde ise çakışmayı önler. Yedekleme, günlük döndürme ve güncelleme kontrolü aynı saate ayarlanmışsa, hepsi birden çalışır ve etki katlanır.
Etkiyi Ölçmek
Yapılan ayarların işe yaradığını doğrulamak için:
- Arka plan işi çalışırken sayfa yanıt süresini ölçün.
- Ağ arayüzü kullanımını izleyin.
- Disk bekleme süresine bakın.
- İşin toplam süresini karşılaştırın.
Dördüncü madde bir ödünleşimi görünür kılar: yedeklemeyi yavaşlatmak, tamamlanma süresini uzatır — ve bu süre bir sonraki yedekleme zamanını aşmamalıdır.
Sınırı çok düşük tutarsanız yedekleme hiç bitmeyebilir ve bir sonraki çalıştırma öncekiyle çakışır. Doğru değer, kullanıcı deneyimi ile tamamlanma süresi arasındaki dengeyi bulur.
Sonuç
Trafik önceliklendirme için çekirdek seviyesine inmeden önce en basit yolu deneyin: dosya aktarım araçlarının çoğu bant genişliği sınırlama seçeneği sunar ve tek bir parametre sorunu çözebilir. Süreç önceliği düşürüyorsanız disk önceliğini de ayrıca düşürün — yedekleme CPU değil disk yoğun bir iştir. Gelen trafiği sınırlamanın giden trafiğe göre çok daha zor olduğunu unutmayın. Ve sınırı belirlerken dikkat edin: yedekleme bir sonraki çalıştırmaya kadar bitmelidir.
Sıkça Sorulan Sorular (SSS)
En basit çözüm nedir?
Aracın kendi hız sınırı seçeneğini kullanmak. Dosya aktarım ve yedekleme araçlarının çoğu bant genişliği sınırlama parametresi sunar — betiğinize tek bir seçenek eklemek, karmaşık ağ yapılandırmasına girmeden sorunu çözebilir.
Süreç önceliğini düşürdüm ama fark etmedi?
Muhtemelen yalnızca işlemci önceliğini düşürdünüz. Yedekleme genellikle CPU değil disk yoğun bir iştir ve disk sırasını doldurur. Disk erişim önceliğini de ayrıca düşürmeniz gerekir; iki ayar birlikte çalışır.
Gelen trafiği de sınırlayabilir miyim?
Sınırlı ölçüde. Giden trafiği kendiniz ürettiğiniz için tam kontrol edebilirsiniz; gelen trafiği ise karşı taraf gönderir. Ancak dolaylı yöntemler vardır ve bunlar bağlantı kalitesini bozar. İndirme işleri için aracın kendi sınırı en pratik yoldur.
Sınırı ne kadar düşük tutmalıyım?
Yedeklemenin bir sonraki çalıştırma zamanına kadar bitebileceği kadar. Çok düşük bir sınır işi hiç bitmez hâle getirir ve çalıştırmalar birbiriyle çakışır. Kullanıcı yanıt süresi ile tamamlanma süresi arasında bir denge kurun.