GH GambleHub

하드웨어 및 리소스 최적화

간략한 요약

최적화는 "한 가지 가속화" 가 아니라 성능의 균형을 맞추는 것입니다. 기본 단계: 측정 SLI/SLO 및 프로파일, 병목 현상, "적절한 차원" 용량, 자동화 스케일링 및 이미지/차트/정책의 앵커 개선.

목표와 원칙

UX에서 하드웨어까지: SLO (p95 대기 시간, 운영 성공) 부터 → 제한 리소스를 찾고 있습니다.
Rightsizing: 부하의 특성에 대한 리소스 및 인스턴스 유형.
현금 및 근접: 스토리지 및 네트워크로의 "비싼" 트립을 줄입니다.
자동화: 자동 스케일, 수명주기 정책, IaC.
관찰 가능성: 4 신호 메트릭, CPU/alloc 프로파일, 추적.
보안 = 성능: mSL/서명/제한-가능한 경우 하드웨어가 가속화되었습니다.

CPU 및 스케줄링

작업: 컨텐츠 및 캐시 누락을 최소화하고 NUMA 및 인터럽트를 고려하십시오.

NUMA 인식: 데이터베이스/브로커를위한 노드 별 고정 ('numactl-cpunodebind-membind') - 노드를 수정합니다.
IRQ/softirq: 작업자와 경쟁하지 않고 코어 (RSS/RPS) 로 배포하고 CPU를위한 핫 큐를 보호하십시오.
하이퍼 플로: "대기 시간에 민감한" -작업자를 물리적 코어에 고정시킵니다.
상황 전환: 긴 대기열/도끼/asynchron을 통해 줄이십시오.
컴파일러/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/HugePage: JVM/DB 용-일반적으로 THP를 비활성화하고 허지를 수동으로 사용하십시오 (TLB 누락 감소).
NUMA 균형: 고마워-로컬 노드에 메모리를 투입하십시오.

GC/알로케이터:
  • JVM: G1/ZGC, '-Xms = -Xmx' 동일하고 합리적인 'MaxGCPauseMillis'.
  • Go: 'GOGC' (100-200으로 시작), 불필요한 할당, 'pprof' 프로파일을 피하십시오.
  • 파이썬: 'uvloop', 'asyncio', C- 확장, 연결 풀을 사용하십시오.
  • 교환/zswap: 판매 중이며 일반적으로 중요한 서비스로 교체됩니다. 범용 노드에서 - "소프트" 로드를위한 zswap.

스토리지와 I/O

디스크 유형: 핫 패스 용 NVMe, 로그/체크 포인트/템포 용 별도의 풀.
FS: 큰 파일/DB 로그의 경우 XFS; 작은/다재다능한 경우 ext4.
RAID/EC: 대기 시간이 짧은 RAID10, 콜드 데이터를위한 RAID6/EC.
I/O 스케줄러: NVMe의 '없음 '/' mq 마감일'.
Acinc/Batch: 그룹 레코드, Write-Behind/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

네트워크

MTU 및 오프로드: 데이터 센터의 9000 MTU (엔드 투 엔드 인 경우) 는 허용되는 경우 GRO/LRO를 사용할 수 있습니다.
RSS/RPS/RFS: NIC의 멀티 채널 대기열, 코어 별 배포; irqbalance-통제중입니다.
SO _ REUSEPORT: 코어에 분산 된 확장 가능한 청취 소켓.

클라이언트 타임 아웃 및 풀링: 짧은

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/SmartNIC (적절한 경우)

GPU: 사기 방지 추론, 권장 사항, 이력서; 'util', 'mem', 'sm _ 효율성' 을 모니터링하십시오.
SmartNIC/eBPF/DPDK: 커널로 전환하지 않고 L4/L7 오프로드, 필터링, 원격 측정.

에너지 프로파일: 안정적인 대기 시간을위한 주파수 수정; 공격적인 전원 절약을 피하십시오

응용 프로그램 및 RDBMS

연결 풀: 제한 'max _ conns', 연결 풀링 (PgBouncer/Hikari) 적용.
색인/스케줄러: 인덱스를 다루는 EXPLAIN/ANALYZE 프로파일, 파티션.
캐싱: Redis/in-process 캐시, 정적을위한 CDN, 핫 API를위한 엣지 캐시.
이데올로기 및 대기열: 퇴각의 계단식을 피하고 dedup을 켜십시오.

Ggip/Brotli: CPU 비용을 고려한 응답 압축; 균형을 선택하십시

컨테이너와 쿠 베르네 테스

빈 패킹 요청/한계

요청 = "보증", 한계 = "천장. "CPU → 스로틀 링 및 p99에 의한 잘못된 한계.
버스트로드 (토너먼트/매치 피크) -p95의 마진을 고려하십시오.
빈 패킹: 별도의 호스트 풀 (대기 시간 크릿, 배치, GPU, 스팟). 토폴로지 사용 (친 화성, 확산).

자동 스케일링

사용자 정의 메트릭 별 HPA (CPU가 아닌 RPS/p95).
"장수" 및 "피크가 아닌" 근로자를위한 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/디스크/네트워크 (계산 최적화, 메모리 최적화, 스토리지 최적화) 로 인스턴스를 선택합니다.
스팟/선점 가능: 멀티 존 중복성이있는 배치/스테이징/캐시 용.
예약/저축: "영구적 인" 부분에 대해 1-3 년 동안 준비합니다.
핫/콜드: 계층 형 스토리지, 아카이브 객체, 로그 보존.
유휴 자원: 중요하지 않은 환경의 야간/주말 정류장.

에너지 효율 (GreenOps)

전원 프로필: 성능 대 서비스 균형.
공동 위치: 추운 시간 동안 압축하여 사용하지 않는 노드를 끄십시오.
KPI: 요청당 와트, p95/와트, CO-공급자 메트릭.

관찰 및 테스트

몇 가지 사항이 있습니다: CPU 도둑질/스로틀, '사이클/명령', LLC 미스, RSS/작업 세트, 페이지 결함, 디스크 lat p95/99, NIC 드롭, 재전송.
추적: "황금 길" 을위한 분산 트레일.
프로파일 링: eBPF/Perf/Flamegraphs, 'pprof '/YourKit/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/네트워크 프로파일이 수집되었으며 상위 N 병목 현상이 발견되었습니다.
  • NUMA/IRQ/RSS는 대기 시간 크리티컬 노드로 구성됩니다.
  • DB/Java 서비스에 대한 THP 할인 (필요한 경우)
  • 핫 데이터를위한 NVMe, XFS/IO-sched 구성, fio-bench가 확인되었습니다.
  • 네트워크 스택: MTU, RPS/RFS, SO _ REUSEPORT; 타임 아웃/풀.
  • Kubernetes: 정확한 요청, 한계는 억제되지 않습니다, HPA, 비즈니스 지표 별, VPA/CA 포함.
  • "비싼" 경로에 대한 캐싱 및 CDN; 리디스/에지 캐시.
  • FinOps: 오른쪽/보호 구역/스팟 풀; 유휴 환경을 중지합니다.
  • CI의 성능 자동, p95/p99의 회귀.

iGaming/fintech 특정

예정된 피크: 토너먼트/매치/프로모션 → "탄력적 인" 전선 풀, 캐시/CDN의 예열, RPS/대기 시간별 HPA.
지불 및 지불: 개별 "골드" IP/도메인, 우선 대기열, 리소스 격리 (tains/tolerations), 기본 준비금.
Antibot/antifrah: GPU 작업자에 대한 무거운 모델; 온라인 스코어 제곱 50 ms p95; 기능의 캐시.
규제: 변경 불가능한 로그 및 암호화가 SLO를 중단해서는 안됩니다. 하드웨어 가속 및 비동기 파이프 라인을 켜십시오.

미니 플레이 북

출시 후 TP 대기 시간:

1. 연소율 SLO 확인; 2) 'cpu/alloc' 프로파일; 3) 롤백/기능 플래그; 4) 복제/API 캐시 증가; 5) RCA 및 테스트 고정.

피크로드 (일치/토너먼트):

1. 워밍업 CDNA/캐시; 2) 리프트 MinReplicas; 3) 버스트 한계를 포함하고; 4) 포스트 큐; 5) 보조 기능에 대한 읽기 전용 모드를 활성화하십시오.

일반적인 실수

CPU "질식" 피크 워크로드 → 높은 p99를 제한합니다.
잘못된 노드 풀: 대기 시간과 배치를 혼합하십시오.
데이터베이스/중개인의 NUMA/IRQ 설정 부재.
알고리즘/캐시/SQL을 수정하는 대신 "증상 치료" (CPU 추가).
RPS/대기 시간 → 대신 CPU 별 HPA가 늦게 확장됩니다.
CI → 회귀 분석에서는 성능 테스트가 없습니다.

합계

최적화는 체계적인 작업입니다. SLI/SLO, 프로파일, 수정 알고리즘, 튜닝 하드웨어 (NUMA/IRQ/IO/네트워크), "크기" 리소스를 올바르게 측정하고 스케일링을 자동화하십시오. 템플릿 (이미지, 차트, 정치), 제어 비용 및 에너지의 개선 사항을 캡처하면 플랫폼은 극한의 정점에서도 빠르고 경제적이며 지속 가능합니다.

Contact

문의하기

질문이나 지원이 필요하시면 언제든지 연락하십시오.우리는 항상 도울 준비가 되어 있습니다!

Telegram
@Gamble_GC
통합 시작

Email — 필수. Telegram 또는 WhatsApp — 선택 사항.

이름 선택 사항
Email 선택 사항
제목 선택 사항
메시지 선택 사항
Telegram 선택 사항
@
Telegram을 입력하시면 Email과 함께 Telegram에서도 답변드립니다.
WhatsApp 선택 사항
형식: +국가 코드 + 번호 (예: +82XXXXXXXXX).

버튼을 클릭하면 데이터 처리에 동의하는 것으로 간주됩니다.