Желі кідірістерін оңтайландыру
Қысқаша түйіндеме
Жасырындылық = тізбек бойынша кішігірім кідірістердің қосындысы. Жақсаруға жүйелі түрде қол жеткізіледі: «секіруді» қысқартыңыз (Anycast/CDN), RTT-ні азайтыңыз (бағыттар/QoS), «болтты» азайтыңыз (DNS/TLS/TCP), кезектерді қысқа ұстаңыз (AQM/ECN), байттарды азайтыңыз (сығу/кэш)) және үнемі p95/p99 өлшеңіз. Өлшемсіз кез келген оңтайландыру - болжам.
Жасырындылық бюджеті: кідіріс неден тұрады
TTFB (Time To First Byte) ыдырауын жеңілдетейік:
TTFB ≈ t_DNS + t_connect + t_TLS + t_queue + t_routing + t_app + t_first_byte
Қай жерде:
- t_DNS - атаудың жиынтығы.
- t_connect - L4 (TCP/QUIC) орнату.
- t_TLS - TLS қол алысу.
- t_queue/t_routing - кезектер/өткелдер (буферлеу, жүктеме, NAT).
- t_app - бірінші байтқа дейін серверлік өңдеу.
Мақсаты - әрбір құрамдас бөлік бойынша SLO орнату және ұдайы салыстырып отыру.
SLO/метриктер (бағдарлар)
DNS p95: жергілікті ≤ 20-30 мс, жаһандық ≤ 80-120 мс.
TCP connect p95: ≤ 80-120 мс аймақтық, ≤ 200-250 мс аймақаралық.
TLS handshake p95: ≤ 80–120 мс (с OCSP stapling, resumption).
TTFB p95 (статик): аймақтық 120-150 мс ≤.
TTFB p95 (API): ≤ 200-300 мс.
Jitter p95 (UDP/RT): ≤ 15–30 мс; ≤ жоғалту 0. 1–0. 3%.
Алерттар: өсуі p95/p99, «SYN retries», құлауы 'resumption', өсуі 'ECN CE' немесе 'packet loss'.
DNS: жылдам бастау
Anycast-беделдер + жақын рекурсорлар (қажет болған жағдайда DoH/DoT).
Динамикалық аттарға арналған қысқа TTL (60-300 с); negative-TTL бақылауда.
'prefetch' бағдарламасының жанындағы DNS кэші.
CNAME → CNAME → A/AAAA артық ауысуларын болдырмау.
TLS/HTTP: қол алысу аз, сессиядан жылдам
TLS 1 дегенді қосыңыз. 3. OCSP stapling, CA қысқа тізбектері.
Session resumption (tickets/IDs) и ALPN (`h2`, `h3`).
HTTP/2: мультиплексиялау, аз коннектілер → p95 төмен.
HTTP/3 (QUIC): 0-RTT (тек демпотенттік үшін), жоғалтуға/джиттерге ең жақсы төзімділік.
Preconnect/Prewarm (edge/клиент): «ыстық» домендер үшін қосылымдарды алдын ала ашыңыз.
Көлік: TCP vs QUIC және ядро стегі
TCP
Қазіргі Congestion Control: BBR v2 (немесе CUBIC, егер консервативті болса).
RACK/TLP жылдам ретрансмитке арналған; SACK қосыңыз.
ECN + AQM (CoDel/FQ_CoDel): буферблоат пен джиттерді азайтады.
TCP Fast Open - state-changing сұрауларын болдырмау; пайдасы даулы.
QUIC (HTTP/3)
TCP + TLS + HTTP/2-мен салыстырғанда «бас бұғаттау» аз.
Реордерингке/шығындарға төзімді; іске асыруды жаңартыңыз (мысалы, H3-пен Envoy/HAProxy).
UDP/443 және MTU/фрагменттеуді қадағалаңыз.
MTU/PMTUD және фрагменттеу
Бірыңғай MTU end-to-end; туннелдер үшін (IPsec/WireGuard/VXLAN) оверхедті ескеріңіз.
PMTUD және ICMP «Fragmentation needed» қосу.
QUIC үшін - max datagram-ды қадағалау және ICMP-ны периметрде кесуге болмайды.
Маршруттау және жол физикасы
Көпшілік IP API/edge фронттары үшін Anycast.
Geo/Latency routing (GSLB) + health-checks.
Фабрикада ECMP және BFD (Leaf-Spine), <1 с.
Пайдаланушылар шоғырланған аймақтардағы аплинкаларды/пирлерді (IX) келісіңіз.
Кезектер мен QoS: буферлерді қысқа ұстаңыз
Сыныптар: real-time (RT/VoIP), interactive (API), bulk (бэкаптар/ETL).
LLQ/WRR, API/төлемдерді bulk.
ECN (CE-таңбалау) + AQM (CoDel/FQ_CoDel) шекара кезектерінде.
«Ең жоғары минуттардан» бэкаптарды және үлкен көгершіндерді кесу/тасымалдау.
NAT, прокси және middleboxes
NAT/сүзгілер каскадын барынша азайтыңыз.
Stateful middlebox жолдардың ассиметриясына сыни: баланс бойынша 5-tuple, pin-ning ағындары.
keepalive қолдау және ұзақ өмір сүруге арналған ақылға қонымды idle-таймауттар (gRPC/WebSocket).
Кэш және деректерді орналастыру
CDN/origin-shield/tiered-cache - origin-ге барудан аз.
Нұсқаланған ассеттер (immutable, 1 жыл).
Жартылай динамика үшін қысқа TTL + 'stale-while-revalidate'.
Geo-placement: ыстық деректер пайдаланушыға жақын (read-replica/edge-KV), ал жазба - «шындық көзіне».
Бағдарлама деңгейінде оңтайландыру
Сұраулар санын қысқартыңыз (bundling/HTTP/2 push енді модада емес - prefetch/preconnect жақсы).
Payload: қысу (Brotli), веб-кескін пішімдері, бинарлық протоколдарды (gRPC) азайтыңыз.
Сұраулардың теңсіздігі → қауіпсіз ретрациялар және агрессивті таймауттар.
TTFB төмендету үшін Async/streaming (SSE/gRPC streaming).
Бақылау қабілеті: не өлшеу керек
Клиенттік телеметрия (RUM): DNS/connect/TLS/TTFB, Geo/ASN, құрылғы.
Желілік: RTT, жоғалту, джиттер, ECN CE/ECT (0/1), интерфейс кезектері, қателер/толып кету.
Транспорт: retransmits, out-of-order, cwnd/BBR state, handshake stats, resumption.
L7: p50/p95/p99, error rate, payload size, маршруттар бойынша гистограммалар/РоР.
Аймақтың/ASN/байланыс операторының өлшемдерін саралаңыз - дәл сол жерде «ыстық нүктелер» жасырынады.
Шағын ойнатқыштар
1) Жылдам аудит p95
1. RUM-дан латенттілік бюджетін (DNS/TLS/connect/TTFB) жасаңыз.
2. PoP/ASN бойынша желілік өлшемдермен (RTT/loss/ECN) салыстырыңыз.
3. Егер 'connect' және 'TLS' үстем болса → preconnect/resumption/HTTP/3 қосыңыз.
4. Егер 'TTFB' жоғары болса → кэш/edge/реплика және бағдарламаны оңтайландыру.
2) Ысыраптардың/джиттердің көбеюі
1. uplink/интерфейстерді (дроптарды/кезектерді) тексеру.
2. AQM (FQ_CoDel) қосу/айналдыру, bulk сыныбын төмендету.
3. BFD/ECMP-жолын тексеру, флапталатын линкті болдырмау.
4. Клиенттер үшін - ретрацияны уақытша көтеріп, олардың арасындағы уақытты азайту.
3) Өңірлік тозу
1. GSLB бағдарламасын көрші PoP-ге ауыстыру; withdraw Anycast/32 деградацияда.
2. TTL төмендету, белсендіру 'stale-while-revalidate'.
3. Мәртебені мәртебе бетіне жіберу, RCA бағдарламасын іске қосу.
4) HTTP/3 көші-қон
1. UDP/443 ашу, 'h3' H3/ALPN қосу.
2. A/B жүргізу: p95 TTFB және error rate салыстыру.
3. 'udp loss '/белсенді клиенттер/cwnd осцилляцияларын бақылау.
Шпаргалка
Nginx (HTTP/2, OCSP, TLS 1. 3, Brotli)
nginx server {
listen 443 ssl http2 reuseport;
ssl_protocols TLSv1. 2 TLSv1. 3;
ssl_stapling on; ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=31536000" always;
Compression brotli on; brotli_comp_level 5; gzip on;
Cache static location/static/{
add_header Cache-Control "public, max-age=31536000, immutable" always;
try_files $uri =404;
}
Proxy to API location/api/{
proxy_set_header Connection "";
proxy_http_version 1. 1;
proxy_read_timeout 5s;
proxy_connect_timeout 1s;
proxy_pass https://backend;
}
}
sysctl (Linux желісі: ECN/SACK/RACK ядро кіші жүйесі - болжамды параметрлер)
bash
SACK/RACK/TLP are typically included in modern cores; specify sysctl -w net for your distribution. ipv4. tcp_sack=1 sysctl -w net. ipv4. tcp_ecn=1 sysctl -w net. ipv4. tcp_fastopen=0 # carefully with TFO sysctl -w net. core. default_qdisc=fq_codel sysctl -w net. ipv4. tcp_congestion_control=bbr
QoS (Cisco-стиль, тұжырымдама)
class-map match-any REALTIME match dscp ef class-map match-any INTERACTIVE match dscp af31 af21 class-map match-any BULK match dscp cs1 policy-map WAN-QOS class REALTIME priority percent 10 class INTERACTIVE bandwidth percent 50 class BULK bandwidth percent 20 random-detect ecn
Процестер және операциялық практикалар
Capacity planning: өткізу қабілеті бойынша қор ең жоғары сағаттарда 30% ≥.
Change-control: маршруттардың/РоР/шлюздердің канареялық өзгерістері.
Тұрақты PMTUD-тест және ICMP бақылау.
Жолдардың құжаттамасы: қайда NAT/прокси/AQM/QoS, қандай MTU, кімнің иесі.
L7 және желілік ретралар арасындағы таймауттар келісімі.
iGaming/финтех ерекшелігі
Оқиғалар уақыты (матчтар/турнирлер): CDN/PoP жылыту, критикалық домендерге preconnect, resumption-пулдың уақытша ұлғаюы, боттарға арналған «сұр» маршруттар.
Төлем қадамдары: бөлінген QoS-класс, Anycast-эндпойнттар, TLS қысқа тізбектері және қатаң нұсқалары/шифрлары; ретрайлер тек идемпотентті.
Өңірлік шектеулер/PSP: geo-routing + ASN/IP ақ тізімдері; бекітілген egress-пулдар.
Мобильді желілер: ChaCha20-Poly1305 артықшылығы (клиенттерде AES-NI әлсіз болғанда), агрессивті компрессия және HTTP/3.
Енгізу чек-парағы
- Әрбір буын бойынша латенттілік бюджеті (DNS/TLS/connect/TTFB) және SLO.
- Көпшілік API/edge үшін Anycast/Geo-routing, резервтік PoP.
- TLS 1. 3. OCSP stapling, resumption ≥ 70%, HTTP/2/3 қосылған.
- BBR + FQ_CoDel, ECN, SACK; PMTUD жұмыс істейді, ICMP бұғатталмайды.
- Тізбегі бойынша бірыңғай MTU, туннельдердің оверхед есебі.
- QoS: жүктеу интерфейстеріндегі real-time/interactive/bulk, AQM кластары.
- CDN/Tiered-cache/Origin-shield; нұсқаланған ассеттер және SWR.
- RUM + Geo/ASN бойынша желілік метриктер; p95/p99/ECN/шығынға арналған алерттар.
- Плейбуктер: өңірдің құлдырауы, шығындардың артуы, трафикті аудару.
Типтік қателер
ICMP/PMTUD блоктау → фрагменттеу/қайта жіберу және жоғары p95.
AQM-сіз «қалың» буферлер → буферблоат және джиттер.
CA ұзын тізбектері және OCSP stapling → қымбат TLS жоқ.
NAT-каскадтар және stateful-сүзгілерге арналған асимметрия → ретра/таймауттар.
Артық 'Vary '/неверсио ассета → төмен hit-ratio CDN.
QoS → API сегментациясы жоқ.
Жиынтығы
Кідірістерді оңтайландыру - желілік инженерияның, дұрыс көліктің және DNS/TLS/кэште «бұрандамаларды» үнемдеудің комбинациясы. Anycast/Geo-routing, TLS енгізіңіз 1. 3 + resumption, HTTP/3, BBR + FQ_CoDel/ECN, MTU келісіңіз, QoS және SLO белгілеңіз, p95/p99 өлшеңіз және ойнатқыштарды автоматтандырыңыз. Сонда пайдаланушылар ең «жанған» минуттарда да жылдам жауап алады, ал платформа - болжамдылық пен беріктік қоры.