Compression
Compression Profili Nedir?
Compression, TR7 üzerinde çalışan HTTP vService'lerde istemcilere gönderilen yanıtların belirli algoritmalara göre sıkıştırılarak iletilmesini sağlayan bir yapılandırma profilidir.
TR7 mimarisinde sıkıştırma yönetimi profil bazlı olarak tasarlanmıştır. Sıkıştırma algoritması, seviyesi ve hedef dosya türleri merkezi olarak tanımlanır ve ilgili vService'lere atanarak uygulanır. Compression Profilleri vService seviyesinde çalışır ve Layer 7 (HTTP/HTTPS) trafiği için geçerlidir.
Bir Compression Profili tanımlandığında, TR7 Kurum Servislerinden gelen yanıtları belirlenen MIME türlerine göre sıkıştırır ve istemciye iletir. İstemci tarayıcısı Accept-Encoding başlığında desteklediği sıkıştırma algoritmalarını belirtir ve TR7 buna uygun yanıt verir.
TR7, sıkıştırma işlemini GZIP ve DEFLATE algoritmaları ile gerçekleştirebilir. Her ikisi de yaygın olarak desteklenen ve verimli sıkıştırma sağlayan standart HTTP sıkıştırma yöntemleridir.
Sağladığı faydalar
- Bant genişliği kullanımı önemli ölçüde azaltılır.
- Sayfa yüklenme süreleri iyileştirilir.
- Ağ maliyetleri düşürülür.
- Kullanıcı deneyimi artırılır.
Compression Profilinin Önemi
Modern web uygulamalarında HTTP sıkıştırma, yalnızca bant genişliği tasarrufu sağlayan bir optimizasyon tekniği değil; kullanıcı deneyimi, sayfa performansı ve operasyonel maliyetler üzerinde doğrudan etkisi olan kritik bir bileşendir.
Web trafiğinde metin tabanlı içerikler (HTML, CSS, JavaScript, JSON, XML) önemli bir yer tutar. Bu içerikler sıkıştırılmadan gönderildiğinde, gereksiz bant genişliği tüketimi ve uzun yüklenme süreleri ortaya çıkar. Özellikle mobil kullanıcılar ve düşük bant genişliğine sahip bağlantılarda bu durum kritik performans sorunlarına yol açabilir.
Sıkıştırma mekanizması, metin tabanlı içeriklerin boyutunu %60-80 oranında azaltabilir. Örneğin 100 KB'lık bir JavaScript dosyası sıkıştırma sonrasında 20-30 KB'a düşebilir. Bu da sayfa yüklenme sürelerinde dramatik iyileşme sağlar.
TR7 üzerinde sıkıştırmanın profil bazlı ve vService seviyesinde tanımlanabilmesi, farklı uygulamaların farklı sıkıştırma gereksinimlerine göre yönetilmesine olanak tanır. Metin ağırlıklı bir API servisi ile statik içerik sunan bir web sitesi, birbirini etkilemeden aynı sistem üzerinde optimize edilebilir.
Bu nedenle Compression Profilleri, TR7 üzerinde yüksek performanslı ve verimli servisler sunmak için temel yapı taşlarından biridir.
Varsayılan Compression Profili Davranışı
TR7 üzerinde bir vService'te Compression özelliği aktif edildiğinde, sistem varsayılan sıkıştırma profili değerleri ile çalışmaya başlar. Bu profil, genel kullanım senaryoları için dengeli sıkıştırma parametreleri sunar ve standart web uygulamaları için ek yapılandırma gerektirmeden kullanılabilir.
Varsayılan Compression Profili kapsamında uygulanan değerler:
| Parametre | Değer | Açıklama |
|---|---|---|
| Compression Algorithm | GZIP | Yanıt içeriğinin GZIP algoritması kullanılarak sıkıştırılacağını belirtir. |
| Compression Level | 1 | En hızlı sıkıştırma seviyesini kullanarak minimum CPU tüketimi sağlar. |
| Offloading | Devre dışı | Sıkıştırma TR7 tarafından yapılır; Kurum Servisinin de sıkıştırma yapmasına engel olunmaz. |
| File Types | text/plain | Yalnızca text/plain içerik tipine sahip yanıtların sıkıştırılacağını belirtir. |
Bu değerler düşük CPU kullanımı ile temel sıkıştırma sağlar. Hızlı başlangıç için yeterlidir; ancak her uygulamada optimal sıkıştırma stratejisini garanti etmez. Farklı MIME türleri, daha yüksek sıkıştırma seviyeleri veya özel gereksinimler söz konusu olduğunda, profillerin uygulamaya özel yapılandırılması önerilir.
Etkiler ve Davranış
Compression Profilleri kapsamında tanımlanan parametreler, TR7 üzerinde trafik akışı sırasında yanıtların kontrollü bir şekilde sıkıştırılmasını sağlar. Süreç hem performans artışı hem de kaynak kullanımı açısından kritik davranışlar sergiler.
Aşağıdaki sequence diyagramı, bir HTTP isteğinin TR7 üzerinden geçişi sırasında sıkıştırma kararının nasıl alındığını gösterir:
Aşağıdaki bölümlerde sürecin her adımının davranışı ayrıntılı olarak açıklanmaktadır.
INFO
İstemci Uyumluluk Kontrolü
TR7, istemciden gelen Accept-Encoding başlığını kontrol eder. İstemci GZIP veya DEFLATE desteği belirtmişse yanıt ilgili algoritma ile sıkıştırılır. Desteklemiyorsa yanıt sıkıştırılmadan gönderilir.
INFO
MIME Türü Eşleşmesi
Yalnızca profilde tanımlanan MIME türleri sıkıştırılır. Örneğin text/html ve application/json tanımlıysa, bu türdeki yanıtlar sıkıştırılır; image/png gibi zaten sıkıştırılmış içerikler etkilenmez.
INFO
Compression Seviyesi Etkisi
Düşük seviyeler (1-3) hızlı sıkıştırma ve düşük CPU kullanımı sağlar. Yüksek seviyeler (7-9) daha iyi sıkıştırma oranı sunar ancak CPU kullanımını artırır.
INFO
Offloading Davranışı
Aktif edildiğinde Kurum Servisi tarafından yapılan sıkıştırma devre dışı bırakılır ve işlem tamamen TR7 üzerinde gerçekleştirilir. Bu, tutarlı sıkıştırma politikası uygulamak için kullanılır.
INFO
Yanıt Başlıkları
Sıkıştırılmış yanıtlara Content-Encoding: gzip veya Content-Encoding: deflate başlığı eklenir. İstemci bu başlığı okuyarak içeriği açar.
Bu davranış modeli sayesinde Compression Profilleri, bant genişliği kullanımını azaltırken yanıt sürelerini iyileştirir ve sistem kaynaklarının verimli kullanılmasını sağlar.
Önerilen Değerler ve Ayarlama Rehberi
Sıkıştırma parametrelerinin doğru yapılandırılması, TR7 üzerinde çalışan servislerin performansı ve kaynak verimliliği açısından kritik öneme sahiptir. Varsayılan değerler genel kullanım senaryoları için dengeli bir başlangıç sunar; uygulama türüne, içerik karakteristiğine ve sunucu kapasitesine bağlı olarak ayarlanması gerekebilir.
TIP
Yüksek Trafikli Web Siteleri
CPU kaynakları kritik olan yüksek trafikli ortamlarda:
- Compression Level düşük tutulmalıdır (1-3).
- GZIP algoritması tercih edilmelidir (daha geniş istemci desteği).
- Yalnızca metin tabanlı MIME türleri hedeflenmelidir.
Bu yaklaşım, CPU yükünü minimize ederken kabul edilebilir sıkıştırma sağlar.
TIP
API Servisleri
JSON ve XML yanıtları sunan API'lerde:
- Compression Level orta seviyede tutulabilir (4-6).
application/json,application/xml,text/xmlMIME türleri eklenmelidir.- API yanıtları genellikle küçük olduğundan yüksek seviye gereksiz olabilir.
API yanıtlarında sıkıştırma, özellikle mobil istemciler için önemli performans artışı sağlar.
TIP
Statik İçerik Servisleri
CSS, JavaScript ve HTML dosyaları sunan servislerde:
- Compression Level yüksek tutulabilir (6-9).
text/html,text/css,application/javascript,text/javascriptMIME türleri eklenmelidir.- Statik içerikler önbelleklenebileceğinden, yüksek sıkıştırma oranı uzun vadede fayda sağlar.
Statik içeriklerde yüksek sıkıştırma, önbellekleme ile birleştiğinde maksimum verimlilik sunar.
TIP
Düşük CPU Kapasiteli Ortamlar
Sınırlı CPU kaynağına sahip ortamlarda:
- Compression Level minimum tutulmalıdır (1).
- Yalnızca en kritik MIME türleri sıkıştırılmalıdır.
- Kurum Servisi sıkıştırma yapabiliyorsa Offloading değerlendirilmelidir.
CPU darboğazı yaşanan ortamlarda sıkıştırma dikkatli yapılandırılmalı; gerekirse yalnızca en yüksek kazanç sağlayan içeriklerle sınırlandırılmalıdır.
Sıkıştırma değerleri belirlenirken uygulama davranışı, içerik türleri ve sunucu kapasitesi birlikte değerlendirilmelidir. TR7 üzerinde Compression profillerinin vService bazlı tanımlanabilmesi, farklı servisler için farklı optimizasyonların güvenli ve merkezi şekilde uygulanmasına olanak tanır.
Modify Response Content aksiyonu sıkıştırmayı devre dışı bırakır
Aynı vService'te Modify Response Content aksiyonu tanımlıysa, içeriğin okunabilmesi için Kurum Servisinden sıkıştırılmamış yanıt istenir. Bu istek koşuldan bağımsız olarak tüm trafiğe uygulandığından, Compression profili atanmış olsa bile yanıtlar sıkıştırılmaz.
İki özelliğin birlikte kullanılması gerekiyorsa, içerik değişikliği ve sıkıştırma ayrı vService'ler üzerinde konumlandırılmalıdır.
Sıkıştırma işlem yükü sınırlandırılmaz
Sıkıştırma için otomatik bir işlemci kullanım sınırı uygulanmaz. Yüksek seviyeler (7–9) yoğun trafikte belirgin işlemci yüküne yol açabileceğinden, seviye artırıldıktan sonra sistem kaynakları izlenmelidir.
Operasyonel En İyi Uygulamalar
- Zaten sıkıştırılmış içerikleri hedeflemeyin. Resimler (JPEG, PNG, GIF), videolar ve PDF dosyaları zaten sıkıştırılmış formatlardır; eklemek gereksiz CPU kullanımına yol açar.
- Metin tabanlı içeriklere odaklanın. HTML, CSS, JavaScript, JSON, XML ve düz metin sıkıştırmadan en çok fayda sağlayan türlerdir.
- CPU kullanımı izlenir. Yüksek seviyeler (7-9) CPU kullanımını önemli ölçüde artırır; yüksek trafikli ortamlarda metrikler takip edilerek en uygun seviye belirlenir.
- "Used in" bilgisi kontrol edilmeden değişiklik yapılmaz. Bir profil, canlı ortamda hangi vService'lerde kullanıldığı bilinmeden güncellenmemelidir.
- Offloading dikkatli kullanılır. Kurum Servisi zaten yeterli sıkıştırmayı yapıyorsa TR7'de Offloading etkinleştirilmez.
- İstemci uyumluluğunu göz önünde bulundurun. GZIP neredeyse tüm tarayıcılarda desteklenir; DEFLATE daha az yaygındır.
- Sıkıştırma ve Önbellek Birlikte Kullanılırken. Önbelleğe sıkıştırılmamış içerik yazılır; önbellekten sunulan her yanıt yeniden sıkıştırılır. Bu nedenle önbellek bant genişliği kazandırır ancak sıkıştırma işlem yükünü ortadan kaldırmaz.
Kullanılabildiği vService Tipleri
Nasıl Eklenir?
Yeni bir Compression Profili, TR7 web yönetim arayüzü üzerinden aşağıdaki adımlarla eklenir:
- Sol altta bulunan TR7 logosuna tıklanarak Configuration Menu açılır.
- Load Balancer → Profiles → Compression → Add adımları takip edilir.
- Profil için benzersiz ve açıklayıcı bir isim girilir.
- Uygulama gereksinimlerine uygun değerler yapılandırılır.
Addbutonuna tıklanarak profil eklenir.
TIP
Hızlı arama ile sayfaya ulaşma
Menüde adım adım gezmek yerine, ekranın sol alt köşesindeki arama çubuğu kullanılarak ilgili sayfaya doğrudan ulaşılır. Arama çubuğu Windows'ta Alt + T, macOS'ta Opt + T kısayolu ile açılır; ardından aranan özelliğin adının yazılması yeterlidir.
Oluşturulan profil, bir veya birden fazla vService üzerinde kullanılabilir.
Profilleri Listeleme Ekranı
Load Balancer → Profiles → Compression yolu izlenerek TR7 cihazı üzerinde ekli olan tüm Compression Profillerinin listesine ulaşılır. Bu ekran üzerinden profil ekleme, düzenleme ve silme işlemleri yapılır.
Compression Profillerini Listeleme Formu
Tablo varsayılan olarak şu kolonlarla açılır:
| Kolon | Açıklama |
|---|---|
| Name | Profilin adı. |
| Compression Algorithm | Sıkıştırma algoritması: GZIP ya da DEFLATE. |
| File Types | Sıkıştırılacak içerik türlerinin sayısı, Total of N biçiminde; tam liste hücrenin üzerine gelindiğinde ipucunda görünür. |
| Compression Level | Sıkıştırma seviyesi, Level N biçiminde; seviye seçilmemişse Default. |
Varsayılan olarak gizlenen kolon bulunmaz; kolon seçicisinde bu dört kolon yer alır. Tablo açılışta sıralanmamıştır; bir kolon başlığına tıklandığında önce azalan, sonra artan sıralama uygulanır, üçüncü tıklamada sıralama kalkar.
Araç çubuğundaki öğeler soldan sağa aşağıdaki sırayla yer alır; son iki öğe (Page Information ve Page Size) tablonun altındaki bilgi şeridinde bulunur.
Columns
Tabloda hangi kolonların gösterileceği seçilir; dört kolon da varsayılan olarak açıktır. Aynı panelde kolonlar sürüklenerek yeniden sıralanır ve kolon başına hizalama seçilir; Fit rows to the page butonuyla satır yüksekliği sayfaya sığdırılır, Reset butonuyla kolon düzeni varsayılana alınır. Düzen kullanıcı bazında saklanır.
Filter
Filter butonu, listede gösterilen profilleri belirli kriterlere göre süzmek için kullanılır; buton etkin filtre sayısını rozetle gösterir. Şeritte üç kart bulunur: Compression Algorithm, Compression Level ve Used in. Kart başlığında filtre adı ile değer sayısı yer alır; karta tıklandığında değerler satır sayılarıyla altında listelenir ve birden fazla değer birlikte seçilebilir. Seçimler kart şeridinin altında, tablonun hemen üstünde kapatılabilir etiketler olarak görüntülenir.
Used in kartı profilin kullanıldığı vService adlarını listeler; hiçbir vService'te kullanılmayan profiller için Unused Entries seçeneği bulunur. Şeridin solundaki düzenleme simgesine tıklanarak kart düzenleme modu açılır; bu modda kartlar sürüklenerek yeniden sıralanır, yeniden adlandırılır ya da şeritten kaldırılır.
Export
Export butonuna tıklanarak tablo Excel, CSV veya PDF olarak dışa aktarılır. Açılan pencerede Filename, Format ve Data Source ile dışa aktarılacak Columns belirlenir; kalan alanlar biçime göre görüntülenir: CSV'de CSV Separator, Excel'de Excel Sheet Name, PDF'te Page Orientation ve Page Size.
Add
Add butonuna tıklanarak yeni bir profil oluşturma formu Add sekmesinde açılır.
Delete
Bir veya birden fazla profil seçilip Delete butonuna tıklandığında ilgili profiller silinir.
WARNING
Kullanımda olan bir profil de silinebilir ve onay penceresi kullanım yerlerini göstermez. Silinen profili kullanan vService'lerde sıkıştırma sessizce kapanır; varsayılan profile geri dönülmez. Silmeden önce önizleme panelindeki Used in sekmesi kontrol edilmelidir.
Edit
Edit butonuna tıklanarak seçili profilin düzenleme formu Edit sekmesinde açılır. Buton yalnızca tek bir profil seçildiğinde etkinleşir.
Search
Tablodaki tüm bilgilerde arama yapmak için kullanılır.
RegExp Search
Tabloda bulunan tüm bilgilerde düzenli ifade (RegExp) ile arama yapmak için kullanılır. Sütun bazlı arama ya da kullanım filtresi etkinken bu buton gizlenir.
Column Based Search
Tabloda bulunan bilgilerde sütun bazlı arama yapmak için kullanılır.
Usage Filter
Profillerin hangi vService'lere bağlı olduğunu filtrelemek için kullanılır; seçilen vService'te kullanılan profiller listelenir, hiçbir vService'te kullanılmayanlar için Unused Entries seçeneği bulunur. Filtre etkinken arama kutusunun yerini seçici alır; simgeye yeniden tıklandığında arama kutusu geri döner.
Page Information
Tanımlı toplam profil sayısı ile listede görüntülenen profil sayısına ait bilgiler yer alır: Showing N-M of T records ve seçili profil sayısı (N selected, seçim yokken Nothing selected). Filtre şeridinde seçim yapılmışsa aynı satıra uygulanan filtre sayısı ile gösterilen/toplam satır bilgisi eklenir.
Page Size
Sayfada görüntülenecek maksimum profil sayısı seçilir. Varsayılan 20; seçenekler 5, 10, 20, 50, 100, 200, 500 ve All.
Sağ Tık Menüsü
Bir satıra sağ tıklandığında, başlığında profilin adı bulunan bir menü açılır. Menüdeki iki işlem de yalnızca sağ tıklanan profile uygulanır; listede yapılmış seçim menüyü etkilemez.
| İşlem | Ne yapar |
|---|---|
| Edit | Profilin düzenleme formunu Edit sekmesinde açar; araç çubuğundaki Edit butonunun açtığı formun aynısıdır. |
| Delete | Sağ tıklanan profili siler; araç çubuğundaki silme ile aynı onay sorusu görüntülenir. |
Seçilen Profilin Önizlemesi
Listede bir satıra tıklandığında ekranın sağında profilin önizlemesi açılır; seçili satıra yeniden tıklandığında panel kapanır. Başlıkta profil simgesi, profilin adı ve Compression profile alt başlığı, sağ üstte ise tek bir işlem bulunur.
Seçilen Profilin Önizlemesi
| İşlem | Ne yapar |
|---|---|
| Edit | Profilin düzenleme formunu Edit sekmesinde açar. |
Panelde üç sekme bulunur; sonuncusu yalnızca profili kullanan bir vService varsa görüntülenir:
Profilin ayarlarını satır satır listeler (aşağıdaki tablo).
Profil üzerindeki kullanıcı işlemlerini (ekleme, düzenleme, silme) zaman çizelgesi olarak listeler.
Profilin kullanıldığı vService'leri listeler. Sekme adının yanındaki rozet kullanım sayısını gösterir; profili kullanan bir vService yoksa sekme hiç görüntülenmez.
Details sekmesindeki satırlar sırasıyla aşağıdaki gibidir:
| Satır | Açıklama | Görünme koşulu |
|---|---|---|
| Name | Profilin adı. | Her zaman |
| Compression Algorithm | GZIP ya da DEFLATE. | Her zaman |
| File Types | Sıkıştırılacak içerik türlerinin tam listesi. | Her zaman |
| Compression Level | Level N ya da Default. | Her zaman |
| Offloading | Yes. | Yalnızca açıkken |
"Used in" sekmesi mutlaka kontrol edilmelidir
Used in sekmesi, profilin hangi vService'lerde aktif olduğunu gösterir. Canlı ortamda profil ayarlarında yapılacak güncellemeler tüm bağlı servisleri anında etkileyeceğinden, değişiklik öncesi olası servis etkilerinin değerlendirilmesi kritik öneme sahiptir.
Profil Ekleme Formu
Load Balancer → Profiles → Compression → Add adımları takip edilerek TR7 cihazı üzerine yeni bir Compression Profili eklenir.
Compression Profili Ekleme Formu
INFO
Compression Algorithm Varsayılan: GZIP
Sıkıştırma işleminde kullanılacak algoritma seçilir.
- Geniş istemci uyumluluğu
- Dengeli sıkıştırma oranı
- Standart HTTP
Content-Encoding: gzip
- Daha az header overhead'i
- İstemci desteği daha sınırlı
- HTTP
Content-Encoding: deflate
INFO
Compression Level Varsayılan: Default
Listenin başında Default seçeneği, ardından Level 1 – Level 9 seçenekleri yer alır. Default seçildiğinde seviye yapılandırmaya hiç yazılmaz ve motorun kendi varsayılanı geçerli olur. Formda yeni oluşturulan profil Default ile gelir; yerleşik varsayılan profil ise Level 1 kullanır.
Seviye değişikliği servisi yeniden başlatır
Sıkıştırma seviyesi, vService'in genel yapılandırmasına yazılan bir ayardır. Bu alanda yapılan değişiklik kesintisiz yenileme ile uygulanamaz; kayıt sırasında ilgili yük dengeleyici servisi otomatik olarak yeniden başlatılır ve kısa bir kesinti oluşur. Diğer alanlardaki değişiklikler kesintisiz uygulanır.
Sıkıştırma oranı ile CPU kullanımı arasındaki dengeyi belirler.
| Seviye | Sıkıştırma Oranı | CPU Kullanımı | Kullanım Senaryosu |
|---|---|---|---|
| 1-3 | Düşük | Düşük | Yüksek trafikli, CPU kritik ortamlar |
| 4-6 | Orta | Orta | Genel kullanım, dengeli performans |
| 7-9 | Yüksek | Yüksek | Bant genişliği kritik, düşük trafikli ortamlar |
INFO
Offloading Varsayılan: Devre dışı
Aktif edildiğinde Kurum Servisinin sıkıştırma yapılandırması geçersiz kılınır ve işlem tamamen TR7 üzerinde gerçekleştirilir. Tutarlı bir sıkıştırma politikası uygulamak için kullanılır.
INFO
File Types Varsayılan: text/plain
Alan serbest metin girişidir ve en az bir tür tanımlanması zorunludur. Yazarken bir öneri listesi açılır; liste text/html, text/plain, text/css, text/javascript gibi metin türleriyle başlar, görsel, ses, video ve arşiv türleriyle devam eder; ancak application/json, application/xml, application/javascript gibi sıkıştırılması önerilen türleri içermez; bu türler elle yazılmalıdır.
Sıkıştırılacak içerik türlerini (MIME types) tanımlar.
File Types Seçimi
Yaygın olarak sıkıştırılan MIME türleri:
| MIME Türü | İçerik |
|---|---|
text/html | HTML sayfaları |
text/css | CSS dosyaları |
application/javascript, text/javascript | JavaScript dosyaları |
application/json | JSON yanıtları |
application/xml, text/xml | XML içerikler |
text/plain | Düz metin dosyaları |
Hangi dosya türleri dahil edilmez?
Zaten sıkıştırılmış formatları (JPEG, PNG, GIF, PDF, ZIP vb.) listeye eklemeyin. Bu türler sıkıştırmadan fayda sağlamaz ve gereksiz CPU kullanımına neden olur.
vService'e Nasıl Eklenir?
Compression Profili, bir vService'e aşağıdaki adımlar takip edilerek atanır.
TR7 web arayüzünden Load Balancer → Load Balancer vService List yolu izlenir.
Profilin ekleneceği vService'e sağ tıklayıp Edit seçilir; veya vService'in üzerine tıklanıp sağda açılan pencereden Edit ikonuna tıklanır.
vService'in düzenleme ekranının sağındaki Details panelinde Compression seçeneği işaretlenerek özellik devreye alınır. İlk etkinleştirmede Default Profile seçili gelir.
vService Düzenleme Ekranında Compression Seçimi
Default Profile dışında bir profil kullanmak için satırın yanındaki ok işaretine tıklanır ve genişleyen bölümdeki listeden ekli profillerden seçim yapılır.
İstenirse Add butonuna tıklanarak vService düzenleme ekranı üzerinden yeni bir profil de eklenebilir.
Save butonuna tıklanarak değişiklikler kaydedilir; yapılandırma vService'e uygulanırken "vService düzenleniyor" bildirimi görüntülenir.
