Uzun süren işlemlerde (rapor, dosya yükleme) istek neden yarıda kesiliyor; hangi timeout'u artırmalıyım?
Kısa cevap
Kurum Servisi yanıtı hazırlarken uzun süre hiç veri göndermiyorsa Server Timeout dolar ve istemci 504 alır; yükleme sırasında istemci uzun süre veri göndermezse Client Timeout dolar. İki süre de toplam işlem süresi değil, veri akışındaki en uzun sessizliktir. Çözüm, işlemin en uzun sessiz süresinden büyük Server timeout (gerekiyorsa Client timeout) içeren bir Timeouts profili oluşturup ilgili vService'e atamaktır (uzun süreli işlemler).
Sorun: Uzun İşlemler Hep Aynı Sürede Kesiliyor
Rapor üretme, dışa aktarma ya da büyük dosya yükleme gibi işlemler hep aynı saniyede hata veriyorsa bir zaman aşımı dolmaktadır. Hangi sürenin dolduğu belirti ve hata kodundan anlaşılır:
| Belirti | Dolan süre |
|---|---|
| İşlem aynı saniyede 504 ile bitiyor | Server Timeout |
| Yükleme ortasında bağlantı kopuyor | Client Timeout |
| Yoğun saatlerde bekledikten sonra 503 | Queue Timeout (Kuyruk (queue) nasıl çalışır; istekler en fazla ne kadar bekler?) |
| Kurum Servisine hiç bağlanamıyor | Connect Timeout |
Çözüm: İki Yöntem
| Durumunuz | Uygun yöntem |
|---|---|
| Arayüzden | Yöntem 1: Timeouts profili |
| Komut satırından | Yöntem 2: WEB-CLI |
Yöntem 1: Timeouts Profili Önerilen
- Nasıl çalışır Uzun işlemler için ayrı bir Timeouts profili oluşturulup yalnızca ilgili vService'e atanır; diğer vService'ler etkilenmez.
- Nerede açılırLoad Balancer → Profiles → Timeouts · vService → Details → Timeout
- Gereksinim Kurum Servisinde işlemin en uzun sessiz süresinin bilinmesi (ölçülmesi)
- vService tipi HTTP · L7 TCP
Adım adım yapılandırma
Load Balancer → Profiles → Timeouts → Add tıklanır (nasıl eklenir). vService'in kullandığı profil yalnızca bu vService'e aitse satırına sağ tık → Edit ile de açılabilir; önce önizlemedeki Used in sekmesinden profili kullanan vService'lere bakılır (Used in).
Name alanına profil adı yazılır (ör. rapor-servisi).
Server Timeout işlemin Kurum Servisindeki en uzun sessiz süresinin üstüne çıkarılır (ör. 300). Değerler saniyedir (0–60.000); boş bırakılan alanlar varsayılanı kullanır.
Yükleme ortasında kopma varsa Client Timeout de artırılır (ör. 120).
Yeni profilde Add, düzenlemede Save tıklanır.
Load Balancer → Load Balancer vService List → vService → Edit; Details panelinde Timeout kutusu işaretlenir ve listeden profil seçilir (vService'e nasıl eklenir).
Save tıklanır. Timeouts değişiklikleri açık bağlantılar kopmadan uygulanır. Cluster'da varsayılan auto-sync ile eş cihaza da gönderilir; Manual Sync Mode açıksa Synchronize ile gönderilir.
Doğrulama
İşlem tekrarlanır; vService'in HTTP Logs ekranında Status code filtresiyle 504 kayıtlarına bakılır.
504 kaydı yokvService Debug mode durumundayken (yalnızca HTTP) Debug Mode Logs kaydının Termination State değerine bakılır.
Server timeout / Client timeout görünmezYöntem 2: WEB-CLI
- Nasıl çalışır Profil komut satırından oluşturulup vService'e bağlanır.
- Nerede açılır TR7 WEB-CLI →
lb timeouts·lb service - Gereksinim WEB-CLI erişimi
- vService tipi HTTP · L7 TCP
Adım adım yapılandırma
Değerler saniyedir (Timeouts örnekleri):
lb timeouts add name rapor-servisi --serverTimeout 300 --clientTimeout 120lb service update id <vService> --timeout rapor-servisiDoğrulama
İşlem tekrarlanır; vService'in HTTP Logs ekranında Status code filtresiyle 504 kayıtlarına bakılır.
504 kaydı yokSık Yapılan Hatalar
- Süreyi toplam işlem süresi sanmak. Server ve Client timeout veri akışındaki en uzun sessizliği sınırlar; veri aktığı sürece bağlantı kesilmez.
- Varsayılan profili bütün vService'ler için büyütmek. Uzun süre yalnızca gereken vService'e ayrı profille verilir; gereksiz uzun süreler asılı kalan bağlantıları biriktirir.
- HTTP request timeout'u artırmak. Bu süre isteğin başlıklarının alınmasını sınırlar; WAF açıkken (Wait for Body işaretsiz) ya da Debug mode açıkken yükleme gövdesi de bu süreye dahildir (Büyük dosya yüklemeleri başarısız oluyor; neden?), bunun dışında uzun rapor ya da büyük yükleme için belirleyici değildir.
- Değeri körlemesine büyütmek. Kurum Servisinin gerçek süresi ölçülüp değer kademeli artırılır.
- Alanların anlamı. Bütün zaman aşımlarının açıklaması: Timeouts profilindeki değerler (HTTP Keepalive Timeout, HTTP Request Timeout, Connect, Server, Client, Queue, Tunnel(Websocket) Timeout, Client FIN, Server FIN) ne anlama gelir?
Dokümantasyonda nasıl yapılır
İlgili sorular
- Timeouts profilindeki değerler (HTTP Keepalive Timeout, HTTP Request Timeout, Connect, Server, Client, Queue, Tunnel(Websocket) Timeout, Client FIN, Server FIN) ne anlama gelir?
- WebSocket bağlantılarım belli bir süre sonra kopuyor; ne yapmalıyım?
- Kuyruk (queue) nasıl çalışır; istekler en fazla ne kadar bekler?
