GH GambleHub

Dəmir və resursların optimallaşdırılması

Qısa xülasə

Optimallaşdırma «bir şeyi sürətləndirmək» deyil, performans dəyərini balanslaşdırmaqdır. Əsas addımlar: SLI/SLO və profilləri ölçmək, dar yerləri tapmaq, gücləri «düzgün ölçmək», ölçməni avtomatlaşdırmaq və şəkillərdə/hit-paradlarda/siyasətlərdə təkmilləşdirmələri möhkəmləndirmək.

Məqsədlər və prinsiplər

UX-dən dəmirə: SLO-dan başlayırıq (p95 latency, əməliyyatların uğuru) → məhdudlaşdırıcı resurs axtarırıq.
Düzgün ölçüsü (rightsizing): resurslar və yükləmə xarakteri altında instansiyaların növləri.
Cache və yaxınlıq: saxlama və şəbəkələrə «bahalı» səfərləri azaltın.
Avtomatlaşdırma: autoscaling, həyat dövrü siyasəti, IaC.
Müşahidə: «dörd siqnal» metrikləri, CPU/alloc profilləri, Trace.
Təhlükəsizlik = performans: mTLS/imzalar/limitlər - hardware sürətləndirilməsi ilə mümkün olan yerdə.

CPU və planlaşdırma

Vəzifələr: kontenşensiyanı və cache səhvlərini minimuma endirmək, NUMA və fasilələri nəzərə almaq.

NUMA məlumatlılığı: düyünlər üzrə pinning ('numactl --cpunodebind --membind'), DB/brokerlər üçün - düyün üzərində fiksasiya.
IRQ/softirq: nüvələri (RSS/RPS) paylayın, CPU üçün isti növbələri məşq edənlərlə rəqabət olmadan təyin edin.
Hiper axınlılıq: «gecikməyə həssas olanlar» üçün - fiziki nüvələrə vorkeri düzəltmək.
Kontekst-switchs: Uzun növbələr/batchings/asinchron vasitəsilə azaldın.
Kompilyatorlar/JIT: PGO/LTO (C/C + +), Graal/HotSpot profilləri (Java), 'GOMAXPROCS' və worker seçimi (Go) daxil edin.

Linux-tuning nümunələri (fraqmentlər):
bash
IRQ affinity: bind NIC queue to specific CPU echo 2 >/ proc/irq/XX/smp_affinity # kernel mask
Softirq balance on sysctl -w net network cores. core. netdev_budget=600 sysctl -w net. core. netdev_max_backlog=5000

Yaddaş və alokasiyaların idarə edilməsi

THP/HugePages: JVM/DB üçün - adətən THP-ni söndürün və hugepages əl ilə istifadə edin (TLB səhvlərini azaldır).
NUMA balans: stateful üçün - yaddaşı lokal qovşaqda qeyd etmək.

GC/allocator:
  • JVM: G1/ZGC, '-Xms = -Xmx' bərabər, ağıllı 'MaxGCPauseMillis'.
  • Go: 'GOGC' (100-200 ilə başlayın), lazımsız alokasiyalardan qaçın, 'pprof' profilləri.
  • Python: 'uvloop', 'asyncio', C-uzantıları, qoşulma hovuzundan istifadə edin.
  • Swap/zswap: prod adətən kritik xidmətlər üçün swap off; ümumi təyinatlı qovşaqlarda - «yumşaq» yüklər üçün zswap.

Saxlama və I/O

Disk növləri: hot-path altında NVMe, log/çekapoint/temp üçün ayrı hovuzlar.
FS: Böyük fayllar/BD jurnalları üçün XFS; ext4 kiçik/universal üçün.
RAID/EC: aşağı gecikmələr üçün RAID10, soyuq məlumatlar üçün RAID6/EC.
I/O planlayıcıları: NVMe üçün 'none '/' mq-deadline'.
Async/Batch: Qeydləri qruplaşdırın, Write-Behind/Group-Commit istifadə edin.

Qiymətləndirmə üçün fio (nümunə):
bash fio --name=randread --filename=/data/test --size=20G --bs=4k \
--iodepth=64 --rw=randread --ioengine=libaio --numjobs=4 --time_based --runtime=60

Şəbəkə

MTU və offload: 9000 MTU datacenter (əgər end-to-end), GRO/LRO-ya icazə verildiyi yerdə daxil edin.
RSS/RPS/RFS: NIC-də çox kanallı növbələr, nüvələrin paylanması; irqbalance - nəzarət altında.
SO_REUSEPORT: nüvə paylanması ilə miqyaslı listen-soket.
Müştəri taymautları və pullinqləri: qısa TCP-keepalive, açıq konnektlərin limiti, backpressure.
TLS: TLS 1. 3, AES-NI hardware təlimatları, session resumption, OCSP stapling.

Şəbəkə sazlaması (fraqmentlər):
bash sysctl -w net. core. rmem_max=268435456 sysctl -w net. core. wmem_max=268435456 sysctl -w net. ipv4. tcp_rmem="4096 87380 134217728"
sysctl -w net. ipv4. tcp_wmem="4096 65536 134217728"

GPU/FPGA/SmartNIC (uyğun olduqda)

GPU: antifrod inferens, tövsiyələr, CV; 'util', 'mem', 'sm _ efficiency'.
SmartNIC/eBPF/DPDK: nüvəyə keçmədən L4/L7 boşaltma, filtrasiya, telemetriya.
Enerji profilləri: sabit gecikmə altında tezliklər qeyd; aqressiv güc qənaət qarşısını almaq.

Proqramlar və INRS

Bağlantı hovuzları: 'max _ conns' məhdudlaşdırın, connection pooling (PgBouncer/Hikari) tətbiq edin.
Indekslər/planlaşdırıcılar: indeksləri əhatə edən EXPLAIN/ANALYZE profilləri, partiyalaşdırma.
Caching: Redis/in-cache prosesi, statik üçün CDN, «isti» API üçün edge-cache.
İdempotentlik və növbələr: retraj kaskadlarından çəkinin, dedup-u yandırın.
Gzip/Brotli: CPU dəyərini nəzərə alaraq cavab sıxışdırılması; balans seçin.

Konteynerlər və Kubernetes

Requests/Limits и bin-packing

Requests = «zəmanət», Limits = «tavan». CPU → throttling və p99 ilə səhv Limits.
Burst yüklərini nəzərə alın (turnirlərin/matçların zirvələri) - p95 ehtiyatı.
Bin-packing: düyün hovuzlarını bölün (latency-crit, batch, GPU, spot). Topologiyadan (anti-affinity, spread) istifadə edin.

Avtomatik ölçmə

Xüsusi metrlərə görə HPA (RPS/p95 deyil, CPU).
«Uzunömürlü» və «qeyri-kik» işçilər üçün VPA.
Cluster Autoscaler + fərdi node qrupları (on-demand/spot).
Hadisə yükləri üçün KEDA (növbələr, Kafka, cron).

Planlaşdırıcı və menecerlər

CPU Manager: latency-kritik pod tam nüvələri pinning üçün 'static'.
Topology Manager: NUMA ilə bərabərləşdirmə.
HugePages/Device Plugins: DB/aşağı gecikmə və GPU/FPGA üçün.

HPA nümunəsi (latency-aware, metrik adapter vasitəsilə):
yaml apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: { name: api-gw }
spec:
scaleTargetRef:
apiVersion: apps/v1 kind: Deployment name: api-gw minReplicas: 6 maxReplicas: 60 metrics:
- type: Pods pods:
metric:
name: http_latency_p95_ms target:
type: AverageValue averageValue: 120

FinOps və dəyəri

Tarif profilləri: CPU/RAM/disk/şəbəkə (compute-optimized, memory-optimized, storage-optimized) vasitəsilə instansiyaları seçin.
Spot/Preemptible: multizon artıqlığı ilə batch/staging/caches üçün.
Reservation/Savings: «daimi» hissə üçün 1-3 il üçün ehtiyatlar.
Isti/soyuq: tiered-storage, arxiv obyekt, log retenshn.
İdle-resurslar: kritik olmayan mühitlərin gecə/həftə sonu dayanması.

Enerji səmərəliliyi (GreenOps)

Power profiles: performance vs balanced services.
Birgə yerləşdirmə: «soyuq» saatlarda möhürləmə, istifadə olunmayan düyünlərin söndürülməsi.
KPI: sorğu üçün vat, p95/vat, CO ₂ -metrika provayderi.

Müşahidə və test

Метрики: CPU steal/throttle, `cycles/instructions`, LLC miss, RSS/working set, page faults, disk lat p95/99, NIC drops, retransmits.
Trace: «qızıl yollar» üçün paylanmış treys.
Profil: eBPF/Perf/Flamegraphs, 'pprof '/YourKit/JFR.
Yükləmə testləri: SLO yönümlü, real qarışıq əməliyyatlar, «qızdırma» fazası, fault-inyeksiya.

PromQL (fikirlər):
promql
CPU throttling доля sum(rate(container_cpu_cfs_throttled_seconds_total[5m])) by (pod)
/ sum(rate(container_cpu_usage_seconds_total[5m])) by (pod)

Network loss sum (rate (node_net_dropped_total[5m])) by (instance)

Optimizasiya çek siyahısı

  • müəyyən SLO və «qızıl yollar» (API/ödənişlər/ödənişlər).
  • CPU/alloc/IO/şəbəkə profilləri toplanmış, top-N dar yerləri tapılmışdır.
  • NUMA/IRQ/RSS latency-kritik qovşaqlarda qurulmuşdur.
  • THP off (lazım olduqda), DB/Java xidmətləri üçün hugepages.
  • NVMe isti məlumat altında, XFS/IO-sched xüsusi, fio-bench təsdiq.
  • Şəbəkə yığını: MTU, RPS/RFS, SO_REUSEPORT; taymautlar/hovuzlar.
  • Kubernetes: Requests düzgün, Limits boğucu deyil, HPA biznes metrik, VPA/CA daxildir.
  • «bahalı» yollarda caching və CDN; Redis/edge-cache.
  • FinOps: rightsizing/ehtiyatlar/spot hovuzlar; idle-mühit dayandırılması.
  • CI-də avtomatik performans testləri, p95/p99-da reqressiya.

iGaming/Fintech üçün xüsusiyyətlər

Cədvələ görə zirvələr: turnirlər/matçlar/promosyonlar → «elastik» ön hovuz, ön-qızdırma cache/CDN, RPS/gizli HPA.
Ödənişlər və ödənişlər: ayrı-ayrı «qızıl» IP/domenlər, prioritet növbələr, resursların təcrid edilməsi (taints/tolerations), baza ehtiyatı.
Antibot/antifrod: ağır modellər - GPU işçilər; 50 ms p95 ≤ onlayn hesab; cache fich.
Tənzimləyici: dəyişməz qeydlər və şifrələmə SLO-nu pozmamalıdır - avadanlıq sürətləndirmələri və asenxron paylaynları daxil edin.

Mini playbuklar

Latentlik ↑ buraxılışdan sonra:

1. Burn-rate SLO-nu müqayisə edin; 2) 'cpu/alloc' profilləri; 3) geri/fichflag; 4) replikalar/API cache artırmaq; 5) RCA və test fiksasiya.

Pik yük (matç/turnir):

1. CDN/cache qızdırmaq; 2) minReplicas qaldırmaq; 3) burst-limitləri daxil etmək; 4) növbələri ayırmaq; 5) ikinci dərəcəli funksiyalar üçün read-only rejimi daxil edin.

Tipik səhvlər

Limits CPU pik workloads → yüksək p99 «boğulur».
Səhv düyün hovuzu: latency-kritik və batch qarışdırın.
DB/brokerlərdə NUMA/IRQ parametrlərinin olmaması.
Alqoritmləri/cache/SQL-i düzəltmək əvəzinə «simptomları müalicə edin» (CPU əlavə edin).
HPA CPU əvəzinə RPS/latency → çox gec.
Prodda CI → regressiya performans testləri yoxdur.

Yekun

Optimallaşdırma sistemli bir işdir: SLI/SLO ölçün, profil edin, alqoritmləri düzəldin, dəmir (NUMA/IRQ/IO/şəbəkə), resursları «düzgün ölçün» və ölçü avtomatlaşdırın. Şablonlarda (şəkillər, qrafiklər, siyasətlər) təkmilləşdirmələri təmin edin, xərcləri və enerjini idarə edin - platformanız hətta ekstremal zirvələrdə də sürətli, qənaətli və davamlı olaraq qalacaq.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

Telegram
@Gamble_GC
İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.