정확한 지적입니다. 기존의 cpu_request_max, mem_usage_p95 같은 지표들은 인간 엔지니어가 차트를 볼 때는 직관적이지만, 대규모 컨텍스트를 읽는 LLM 입장에서는 단순한 '정량적 파편'에 불과합니다. LLM에게 숫자 연산을 맡기면 "P95와 Max의 차이가 크므로..." 같은 모호한 추론에 그치기 쉽습니다.
디스크/네트워크와 마찬가지로, CPU와 Memory도 워크로드의 '거동 성격(Behavioral Profile)'을 대변하는 고차원 SRE 특징량(Coefficient)으로 압축해서 피딩해야 LLM이 복잡한 커널 상태를 단번에 꿰뚫어 볼 수 있습니다.
LLM향으로 전환하기 위해 새롭게 산출해 낼 수 있는 CPU/Memory 핵심 SRE 유도 특징량 5종과 이를 폴라(Polars) 레이어에 이식하는 방법을 제안합니다.
Limit)에 얼마나 근접했는지 나타내는 'OOM 근접도 변수'입니다.
Request) 대비 실제 사용량이 얼마나 바닥을 치고 있는지를 나타내는 '자원 매몰 계수'입니다.
Ratio > 2.0: Compute-Bound (연산 중심형 집약 워크로드 - Spark 셔플 가속 단계 등)Ratio < 0.5: Memory-Bound (메모리 집약형 캐싱 워크로드 - StarRocks 백엔드 노드 등)step2_pipeline.py 집계 단계에 추가할 Polars 수식 스니펫step2 파이프라인에서 일별 정산 가공 원부를 만들 때, 아래와 같이 폴라의 고속 연산 스펙을 활용하여 지수들을 미리 구워 Parquet에 심어주면 됩니다.
# step2_pipeline.py의 Polars Select/With_Columns 연산부 내부 예시
df_enriched = df_raw.with_columns([
# 1. CPU Burstiness 지수
(pl.col("cpu_usage_max") / pl.col("cpu_usage_p95").clip(lower_bound=0.001))
.round(2).alias("feat_cpu_burstiness_ratio"),
# 2. CPU 스로틀링 밀도
(pl.col("cpu_throttled_max") / pl.col("cpu_usage_p95").clip(lower_bound=0.001))
.round(2).alias("feat_cpu_throttle_density"),
# 3. Memory OOM 위험 위험 근접도
(pl.col("mem_usage_max") / pl.col("mem_limit_max").clip(lower_bound=0.001))
.round(2).alias("feat_mem_oom_proximity"),
# 4. Memory 자원 매몰(Slack) 계수
((pl.col("mem_request_max") - pl.col("mem_usage_p95")) / pl.col("mem_request_max").clip(lower_bound=0.001))
.round(2).alias("feat_mem_slack_ratio"),
# 5. 컴퓨트 vs 메모리 바운드 성향 프로필 지수
(
(pl.col("cpu_usage_p95") / pl.col("cpu_request_max").clip(lower_bound=0.001)) /
(pl.col("mem_usage_p95") / pl.col("mem_request_max").clip(lower_bound=0.001)).clip(lower_bound=0.001)
)
.round(2).alias("feat_resource_bound_ratio")
])
step5_llm_diagnoser.py 프롬프트 가이드라인 동기화 맵이렇게 구워진 수치들을 step5 프롬프트의 [SRE Expert Cross-Layer Rules] 세션에 아래 지침으로 동기화해 주면 LLM의 추론 깊이가 완전히 달라집니다.
5. **CPU Burstiness & Throttling 역학**: `feat_cpu_burstiness_ratio`가 높고 `feat_cpu_throttle_density`가 동반 상승했다면 일시적 스파이크 연산 시 커널 CFS 스로틀러가 개입하여 잡 타임라인을 강제로 늘어뜨리고 있는 병목 상태임.
6. **OOM 시한폭탄 및 매몰 가치 판정**: `feat_mem_oom_proximity`가 0.90 이상이면 자원 부족이 아니라 OOM 사살 직전의 비상 상태로 취급하고, 반대로 `feat_mem_slack_ratio`가 고공행진 중이면 인프라 자원을 선점만 하고 굶기는 상태로 판정함.
7. **워크로드 아키텍처 성향 판정**: `feat_resource_bound_ratio`가 2.0 이상이면 Compute-Bound형으로 해석하여 CPU 튜닝을 제안하고, 0.5 이하면 Memory-Bound형으로 판정하여 DB 버퍼 및 스토리지 캐시 아키텍처 조정을 유도함.
이렇게 정량적 사용량 지표를 "인프라 행위 계수"로 치환하여 피딩하면, LLM은 사람이 차트 5개를 겹쳐놓고 수십 분간 고민해야 겨우 찾아낼 수 있는 "인프라 전이 오버헤드 간의 인과관계"를 단 몇 초 만에 정확히 짚어내기 시작합니다.
플랫폼 아키텍처의 핵심을 관통하는 훌륭한 접근 방향입니다.