GH GambleHub

Оптимизатсияи сахтафзор ва захираҳо

Хулосаи мухтасар

Оптимизатсия на ба "суръат бахшидан ба як чиз", балки мувозинати иҷрои кор ↔ арзиши эътимоднокӣ ↔ энергия ↔ аст. Қадамҳои асосӣ: SLI/SLO ва профилҳоро андозагирӣ кунед, мушкилотро пайдо кунед, қобилиятҳои "андозагирии дуруст", миқёси автоматӣ ва такмили лангарро дар тасвир/диаграмма/сиёсат.

Ҳадафҳо ва принсипҳо

Аз UX ба сахтафзор: сар карда аз SLO (таъхири p95, муваффақияти амалиёт) → дар ҷустуҷӯи манбаи маҳдудкунанда.
Ҳуқуқ: захираҳо ва намудҳои намуна барои табиати сарборӣ.
Нақд ва наздикӣ: сафарҳои "гарон" -ро ба анбор ва шабакаҳо кам кунед.
Автоматика: autoscaling, сиёсати давраи ҳаёт, IAC.
Мушоҳида: ченакҳои чаҳор сигнал, профилҳои CPU/alloc, пайгирӣ.
Амният = иҷроиш: MTLS/имзоҳо/маҳдудиятҳо - сахтафзор то ҳадди имкон суръат мегирад.

CPU ва банақшагирӣ

Вазифаҳо: кам кардани мундариҷа ва пазмонҳои кэш, ба назар гирифтани NUMA ва халалҳо.

Огоҳии NUMA: пинҳон кардани гиреҳҳо ('numactl --cpunodebind ---membind'), барои пойгоҳи додаҳо/брокерҳо - дар гиреҳ ислоҳ кунед.
IRQ/softirq: паҳн кардани ядроҳо (RSS/RPS), навбатҳои гарм барои CPU бидуни рақобат бо коргарон.
Гиперфлюз: барои "ҳассосияти ҳассос" - коргаронро дар ядроҳои ҷисмонӣ ислоҳ кунед.
Гузаришҳои контекстӣ: тавассути навбатҳои дароз/қассобҳо/асинхрон кам кунед.
Компиляторҳо/JIT: шомили PGO/LTO (C/C + +), профилҳои Graal/Hotspot (Java), 'GOMAXPROCS' ва тақсимоти коргарон (Go) мебошанд.

Намунаҳои танзими Linux (пораҳо):
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

Идоракунии хотира ва тақсимот

THP/Sages: барои JVM/DB - одатан THP-ро хомӯш кунед ва дастгоҳҳоро дастӣ истифода баред (пазмонҳои TLB-ро кам мекунад).
Тавозуни NUMA: барои давлатдорӣ - хотира ба гиреҳи маҳаллӣ.

GC/тақсимкунанда:
  • JVM: G1/ZGC, '-Xms = -Xmx' баробар, оқилона 'Max
  • Бирав: 'GOGC' (аз 100-200 оғоз кунед), аз тақсимоти нолозим, профилҳои 'pprof' худдорӣ кунед.
  • Python: 'uvloop', 'asyncio', C-васеъшавӣ, ҳавзи пайвастшавиро истифода баред.
  • Мубодила/zswap: дар фурӯш, одатан барои хидматҳои муҳим иваз кунед; дар гиреҳҳои умумӣ - zswap барои бори "мулоим".

Нигоҳдорӣ ва I/O

Намудҳои диск: NVM .e барои роҳи гарм, ҳавзҳои алоҳида барои гузоришҳо/гузаргоҳҳо/суръат.
FS: XFS барои файлҳои калон/гузоришҳои DB; ext4 барои хурд/бисёрҷониба.
RAID/EC: RAID10 барои таъхири кам, RAID6/EC барои маълумоти хунук.
Банақшагирандагони I/O: 'ҳеҷ '/' mq-мӯҳлати' барои NVM 'e.
Async/Batch: сабтҳои гурӯҳӣ, Write-Background/Group-Commit -ро истифода баред.

fio барои арзёбӣ (мисол):
bash fio --name=randread --filename=/data/test --size=20G --bs=4k \
--iodepth=64 --rw=randread --ioengine=libaio --numjobs=4 --time_based --runtime=60

Шабака

МТУ ва борфарорӣ: 9000 МТУ дар маркази додаҳо (агар ба охир расад), GRO/LRO-ро, ки иҷозат дода шудааст, фаъол созед.
RSS/RPS/RFS: навбатҳои бисёрканалӣ дар NIC, тақсимот аз ҷониби ядроҳо; бебозгашт - таҳти назорат.
SO_REUSEPORT: розеткаҳои гӯшии миқёсан васеъ дар байни ядроҳо.
Вақтсанҷи муштариён ва кашолакунӣ: нигоҳдории кӯтоҳи TCP, маҳдудияти пайвастҳои кушода, ақибнишинӣ.
TLS: TLS 1. 3, дастурҳои сахтафзор AES-NI, азнавбарқароркунии сессия, степлинги OCSP.

Танзими шабака (фрагментҳо):
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/Smart

GPU: хулосаи зидди қаллобӣ, тавсияҳо, CV; монитор 'util', 'mem', 'sm _ самаранокии'.

Smart

Профилҳои энергетикӣ: басомадҳоро барои таъхири устувор ислоҳ кунед; аз сарфаи қувваи хашмгин канорагирӣ кунед.

Барномаҳо ва RDBMS

Ҳавзҳои пайвастшавӣ: 'max _ conns' -ро маҳдуд кунед, муттаҳидсозии пайвастшавиро истифода баред (PGBouncer/Hikari).
Индексҳо/ҷадвалбандиҳо: Профилҳои ТАВЗЕҲ/ANALIZE, ки шохисҳо, тақсимотро фаро мегиранд.
Кэшинг: Кэши Редис/дар ҷараён, CDN барои статика, кэши канорӣ барои API-ҳои гарм.
Idempotence ва навбатҳо: аз каскадҳои ақибнишинӣ канорагирӣ кунед, тарҳро оғоз кунед.
Gzip/Brotli: фишурдани ҷавобҳо бо назардошти арзиши CPU; тавозунро интихоб кунед.

Зарфҳо ва Кубернетҳо

Дархостҳо/Маҳдудиятҳои i-bin-packing

Дархостҳо = "кафолат", Лимитҳо = "шифт. "Маҳдудиятҳои нодуруст аз ҷониби CPU → drottling ва p99.
Бори вазнинро дида бароед (қуллаҳои мусобиқа/бозӣ) - маржа дар p95.
Бастабандӣ: ҳавзҳои алоҳидаи мизбон (ниҳонӣ-крит, партия, GPU, нуқта). Топологияро истифода баред (зидди наздикӣ, паҳн).

Автоскалинг

HPA аз рӯи ченакҳои фармоишӣ (RPS/p95, на CPU).
VPA барои коргарони "дарозмуддат" ва "берун аз қулла".
Кластер Autoscaler + гурӯҳҳои гиреҳи инфиродӣ (дар дархост/ҷой).
KEDA барои сарбории чорабиниҳо (навбатҳо, Кафка, крон).

Банақшагир ва менеҷерҳо

Менеҷери CPU: 'статикӣ' барои печонидани ядроҳои пурра ба каналҳои таъхирнопазир.
Ҳамоҳангсозии менеҷери топология NUMA.
Плагинҳои калон/дастгоҳ: барои DB/таъхири кам ва GPU/FPGA.

Намунаи HPA (огоҳии ниҳоӣ, тавассути адаптери ченакҳо):
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

Арзиш ва арзиши он

Профилҳои тарифӣ: намунаҳоро аз ҷониби CPU/RAM/disk/network интихоб кунед (ҳисобкунӣ-оптимизатсия, хотира-оптимизатсия, нигоҳдорӣ-оптимизатсия).
Spot/Preemptible: барои партия/саҳна/кэш бо захираи бисёр минтақа.
Фармоиш/пасандозҳо: захираҳо барои 1-3 сол барои қисми "доимӣ".
Гарм/хунук: нигаҳдории сатҳӣ, объекти бойгонӣ, нигоҳдории журнал.
Захираҳои бекорӣ: истгоҳҳои шабона/истироҳатӣ дар муҳити ғайримуқаррарӣ.

Самаранокии барқ ​ ​ (Green

Профилҳои барқ: Иҷро ва мувозинати хидмат.
Ҷойгиршавӣ: фишурдасозӣ дар соатҳои хунук, хомӯш кардани гиреҳҳои истифоданашуда.
KPI: ватт барои як дархост, p95/ватт, CO ₂ - ченакҳои провайдер.

Мушоҳида ва озмоиш

Метрикӣ: Дуздӣ/дросселии CPU, 'давраҳо/дастурҳо', пазмони ҶДММ, RSS/маҷмӯи корӣ, камбудиҳои саҳифа, диски лат p95/99, қатраҳои NIC, ретрансмитҳо.
Пайгирӣ: роҳҳои тақсимшуда барои "роҳҳои тиллоӣ".
Профилактика: EBPF/Perf/Flamegraphs, 'pprof '/Your' Kit/JFR.
Санҷишҳои сарборӣ: SLO-нигаронидашуда, бо омехтаи воқеии амалиёт, марҳилаи "гармшавӣ", тазриқи хато.

PromQL (ғояҳо):
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)

Рӯйхати санҷиши оптимизатсия

  • SLO ва роҳҳои тиллоӣ (API/пардохтҳо/пардохтҳо) муайян карда шудаанд.
  • Профилҳои ҷамъоваришудаи CPU/alloc/IO/шабака, мушкилиҳои top-N ёфт шуданд.
  • NUMA/IRQ/RSS дар гиреҳҳои таъхирнопазир танзим карда мешаванд.
  • THP хомӯш (агар лозим бошад), hugepages барои хидматҳои DB/Java.
  • NVM .e барои маълумоти гарм, XFS/IO-sched танзимшуда, fio-bench тасдиқ карда шуд.
  • Анбори шабака: MTU, RPS/RFS, SO_REUSEPORT; вақтхушӣ/ҳавзҳо.
  • Кубернетҳо: Дархостҳо дурустанд, Маҳдудиятҳо монеъ намешаванд, HPA аз рӯи ченакҳои корӣ, VPA/CA дохил карда шудаанд.
  • Caching ва CDN дар роҳҳои "гарон"; Редис/кэши канорӣ.
  • Финҳо: росткунҷа/захираҳо/ҳавзҳои нуқта; қатъ кардани муҳитҳои бекорӣ.
  • Автотестҳои иҷро дар CI, регрессия дар p95/p99.

IGaming/fintech мушаххас

Қуллаҳои ба нақша гирифташуда: мусобиқаҳо/мувофиқатҳо/аксияҳо → ҳавзи "тағйирёбанда" -и ҷабҳаҳо, пеш аз гарм кардани кэшҳо/CDN, HPA аз ҷониби RPS/ниҳонӣ.
Пардохтҳо ва пардохтҳо: IP/доменҳои инфиродӣ "тиллоӣ", навбатҳои афзалиятнок, ҷудокунии захираҳо (tains/таҳаммулпазирӣ), захираи асосӣ.
Антибот/антифрауд: моделҳои вазнин - дар GPU-коргарон; баҳодиҳии онлайн ≤ 50 ms p95; кэши хусусиятҳо.
Танзимкунанда: гузоришҳои тағирнопазир ва рамзгузорӣ набояд SLO-ро вайрон кунанд - суръатбахшии сахтафзор ва қубурҳои асинхрониро фурӯзон кунед.

Китобҳои бозикунии хурд

Дертар пас аз озодшавӣ:

1. SLO-и сӯзонданро санҷед; 2) профилҳои 'cpu/alloc'; 3) баргардонидан/парчами хос; 4) зиёд кардани нусхабардорӣ/кэши API; 5) RCA ва ислоҳи санҷиш.

Сарбории баландтарин (бозӣ/мусобиқа):

1. Гарм кардани CDN/кэш; 2) бардоштани мин Реплика; 3) маҳдудиятҳои таркишро дар бар мегирад; 4) навбатҳо; 5) барои функсияҳои дуюмдараҷа танҳо хонданро фаъол созед.

Хатогиҳои умумӣ

Маҳдудиятҳои CPU сарбории баландтаринро "нафас мекашанд" → баланд p99.
Ҳавзи гиреҳи нодуруст: омехтаи таъхири интиқодӣ ва партия.
Набудани танзимоти NUMA/IRQ дар пойгоҳи додаҳо/брокерҳо.
"Табобати аломатҳо" (илова кардани CPU) ба ҷои ислоҳи алгоритмҳо/кэшҳо/SQL.
HPA аз ҷониби CPU ба ҷои RPS/ниҳонӣ → тарозуи дер.
Ягон озмоиши иҷро дар CI → регрессия дар prod.

Ҷамъ

Оптимизатсия кори систематикӣ аст: андозагирии SLI/SLO, профил, алгоритмҳои ислоҳ, сахтафзор (NUMA/IRQ/IO/шабака), захираҳои "андоза" дуруст ва автоматикунонии миқёс. Беҳтар кардани қолабҳо (тасвирҳо, диаграммаҳо, сиёсат), арзиши назорат ва энергия - ва платформаи шумо ҳатто дар қуллаҳои шадид зуд, иқтисодӣ ва устувор боқӣ хоҳад монд.

Contact

Тамос гиред

Барои саволҳо е дастгирӣ ба мо муроҷиат кунед.Мо ҳамеша омодаем!

Telegram
@Gamble_GC
Оғози интегратсия

Email — муҳим аст. Telegram е WhatsApp — ихтиерӣ.

Номи шумо ихтиерӣ
Email ихтиерӣ
Мавзӯъ ихтиерӣ
Паем ихтиерӣ
Telegram ихтиерӣ
@
Агар Telegram нависед — ҷавобро ҳамон ҷо низ мегиред.
WhatsApp ихтиерӣ
Формат: рамзи кишвар + рақам (масалан, +992XXXXXXXXX).

Бо фиристодани форма шумо ба коркарди маълумот розӣ ҳастед.