이 글 공유하기

무인 에이전트를 밤사이 돌려 셀프호스트 K8s 클러스터의 GPU를 쓰는 사람, Kueue 큐와 노드 증감 정책의 비용을 직접 짊어지는 국내 클라우드/AI 엔지니어라면 이 글을 읽어야 합니다. 밤엔 사람이 큐를 보지 않기 때문에, 정적 Kueue 쿼터와 낮 기준으로 튜닝한 오토스케일러가 GPU 용량을 결정합니다. 이 결정이 한 밤에 달러로 얼마를 쓰는지, LLM 에이전트가 그 자리를 대신할 때 어디서부터 이익이 나는지는 아직 잴 수 있는 틀이 없었습니다. ThakiCloud의 논문 The Night Shift는 이 틀을 세웁니다. 정적 쿼터, 교정된 임계 휴리스틱, LLM 에이전트 컨트롤러라는 세 팔(arm)을 같은 밤의 수요에 대놓고, 완성 단위당 provisioned GPU 비용을 마감 신뢰도의 함수로 비교하는 프론티어와 그 위의 손익분점을 도출합니다.

한 줄 결론입니다. 에이전트는 forecast가 버스트마다 1분도 채 안 되는, 정확히 0.906분의 사용 가능한 선지를 줄 때만 교정된 휴리스틱을 이깁니다. 이기면 포화 시 절감은 한 밤 $6.52, 휴리스틱 보험 청구액의 84.9%입니다.

다만 한 가지를 먼저 분명히 합니다. 이 논문은 분석 논문입니다. 본문에 나오는 모든 수는 선언된 프로토콜 상수, 그 상수에 대한 정확한 산술, 외부 문헌에서 인용된 범위의 세 종류 중 하나이며 논문은 이를 한 칸 한 칸 라벨로 구분해 둡니다. 아래 두 장의 그림도 이 세 종류의 계산입니다. 실측은 선언된 시드로 재현 가능한 세 팔 비교 프로토콜이 담당하며, 계측된 셀프호스트 클러스터에서 수행한 결과는 같은 팀의 후속(companion) 연구에서 보고됩니다.

밤엔 정적 쿼터가 GPU를 움직입니다

23시부터 7시까지 무인 에이전트 루프는 배치 추론, 계속 중인 학습, 평가 스윕을 낮 트래픽이 쓰는 Kueue 큐로 쏟아냅니다. 요구량은 낮과 전혀 다른 형태입니다. 일주기 기반 수요 위에 버스트 에피소드가 겹쳐 같은 GPU 풀이 아침에는 놀고 한밤중에는 넘칩니다.

ThakiCloud의 자체 H200/H100 플릿에서도 이 압력은 실제로 보입니다. 가장 빠른 GPU 큐가 한밤중에 가득 차면 새 작업은 느린 모델 티어로 밀려나고 병목은 액셀러레이터가 아니라 큐 관리자의 쿼터와 blocked 상태가 됩니다. 낮에는 SRE가 큐를 지켜볼 수 있습니다. 밤에는 불을 끄기 전에 설정해 둔 정적 쿼터와 낮의 수요에 맞춘 임계값만 남습니다.

그렇다면 LLM 에이전트가 그 용량을 직접 운영해야 하는가. 에이전틱 SRE 연구는 이미 반응 축(reactive axis)에서 크게 움직였습니다. 벤치마크는 결함을 주입해 진단과 복구 성공률을 점수화하는 것입니다. 멀티 에이전트 복구 시스템, 권한과 안전성을 둘러싼 에이전틱 운영 리뷰까지 나옵니다. 같은 팀의 K8s 에이전트 계열도 인시던트 복구의 복잡도 층분할, 서빙 엔진 동시성 재튜닝, 큐 회계 밖에 머물던 GPU 용량의 회수를 이미 잴 수 있었습니다.

이 측정들은 모두 인시던트가 터진 뒤의 이야기이거나 고정된 용량 안에서만 움직이는 셈입니다. 큐 접근 쿼터와 노드 수 자체를 레버로 삼아 선제적으로 비용을 움직이는 축은 아직 열려 있습니다. 마감 신뢰도 ρ를 고정했을 때 에이전트 컨트롤러가 완성한 일 단위당 얼마를 쓰는지, 그 비용이 정적 정책과 잘 교정된 휴리스틱에 비해 어디서 손익분점을 넘는가. The Night Shift는 이 선제적 경제 축을 처음 형식화하는 것이다.

세 팔이 같은 밤을 비교합니다

논문은 이 문제를 시간 불균일 MDP로 세웁니다. 상태는 큐 깊이, 켜져 있는 노드 수, Kueue LocalQueue 쿼터 벡터, forecast 잔차입니다. 행동은 보류, 노드 증감 1, 쿼터 벡터 설정으로 제한합니다. 8시간 밤을 끝낼 때의 비용은 켜져 있는 GPU 시간의 provisioned 비용, 마감 초과 작업의 페널티, 에이전트 팔에만 붙는 결정 비용(decision bill) 세 항입니다.

핵심은 비용의 의미 선택입니다. 과금 대상은 켜져 있는 GPU 시간입니다. scale-to-fit 의미론 아래에서 쿼터 결정은 곧 비용 결정이고, 큐의 여유를 위해 노드를 붙들어 두면 그 큐가 실제로 쓰든 말든 청구됩니다. 정적 정책이 수요 정점에 맞춰 풀을 한 밤 내내 켜 두는 동안 overnight 수요는 대부분 평균으로 돌아오므로, 낮에는 작던 차이가 밤에는 프론티어의 크기가 됩니다.

세 팔의 구성은 이렇습니다. P1은 정적 쿼터로, 노드 수와 쿼터를 한 밤 내내 고정하고 노드는 overnight 수요 정점에 마진 0으로 맞춥니다. 사람이 보지 않을 때 클러스터가 실제로 실행하는 정책이며 프론티어의 기준점입니다. P2는 교정된 임계 휴리스틱입니다. HPA 스타일 컨트롤러가 60초마다 utilization을 읽고 0.6을 넘으면 노드를 하나 올리고 0.4를 밑돌면 하나 내립니다. 이 휴리스틱은 선언된 수요 regime에 대해 실행 전에 튜닝을 거칩니다. 기존 연구가 honest bar(정직한 기준선)를 정합니다. 잘 교정된 규칙 기반 오토스케일러가 메인스트림 심층 강화학습 컨트롤러 여섯 개를 모두 비용에서 이겼다는 연구입니다. P2의 버스트 대응 총 지연 R은 탐지 1분에 실행 5분을 더한 6분입니다.

P3은 LLM 에이전트 컨트롤러입니다. 180초마다 로컬 vLLM으로 서빙하는 27B급 instruct 체크포인트에 큐 깊이, utilization, Metis 토큰 미터의 속도, 선언된 단기자 forecast 잔차, 현재 쿼터와 노드 상태를 구조화해 넘기고 쿼터 벡터와 노드 증감과 리스크 타겟 κ(작업 deadline slack 배율 1.5, 2.5, 3.5 중 하나)를 제한된 구조화된 행동으로 돌려 받습니다. κ는 admission 버퍼로, 예상 큐 지연이 남은 deadline slack의 κ*배 이내일 때만 작업이 큐에 들어갑니다. 결정 하나당 $0.001의 청구액이 미터로 붙고 다음 사이클에 되돌리는 잘못된 경보도 선언된 비용(1개 GPU를 30분 붙들고 있는 것)으로 잡힙니다.

Night-shift control loop and three-arm comparison protocol 밤사이 에이전트 수요가 Kueue가 관리하는 GPU 큐로 들어오고, 세 컨트롤러 팔(P1 정적 쿼터, P2 교정된 임계 휴리스틱, P3 LLM 에이전트)이 상태와 forecast 잔차를 읽어서 쿼터 벡터와 프로비저닝된 노드 수를 움직이며, provisioned 비용과 마감 신뢰도가 프론티어 점으로 집계되는 구조입니다. 개념 예시(정성적 구조)이며 정량적 주장을 담지 않습니다.

비교 프로토콜은 선언된 수요와 시드로 재현되도록 고정한다. overnight 수요는 합성 포아송 과정으로 선언한다. 일주기 기반 2.0 + 2.5sin(π(t - 0.5)/7.5) 작업/시간 위에 버스트 세 개를 얹는다. 초과 6/8/5 작업/시간, 지속 35/40/30분, 시작 2.3/4.8/6.5시간, 시드 20261031이다. 이 형태는 프로덕션 trace 재현이 아니다. 팀의 overnight 플릿에서 실제로 보이는 운영 양상(낮 기반, manifest 기반 배치 런치, 모델 폴백 서지)에 맞춰 선언한 것이다. 실행은 총 14회이며 설정마다 시드 두 개씩이다. P1은 8개 GPU 풀 위에서 쿼터 3/5/8 스윕, P2는 단일 설정, P3은 리스크 타겟 3개 스윕이다. P3의 결정은 실제 LLM 호출이고 호출 지연과 토큰 청구와 파싱 결과를 호출마다 미터링해 결정 비용에 포함한다. 실행 한 번당 기록하는 지표는 마감 신뢰도 ρ, admission 지연 p50/p95, 시간 평균과 정점 utilization이다. provisioned GPU 시간과 그 $, 에이전트 결정 비용, 완성한 일 작업당 달러도 함께 기록한다.

손익분점은 버스트당 0.906분의 forecast 선지입니다

분석은 선언된 fluid 모델에서, 상수에 대한 정확한 산술로 간다. 선언된 상수는 8개 GPU 풀, GPU 시간당 $2, 서비스율 μ=2 작업/GPU-시간, 밤 길이 T=8시간, 버스트 초과 b=8 작업/시간, median 지속 τ_b=35분, 최소 slack 배율 κ_min=1.5이다.

먼저 static premium이다. 선언된 trace의 정확한 산술에서 overnight 평균 수요는 4.91 작업/시간이고 정점은 12.43 작업/시간이다. 정점 대 평균 비율 r은 2.53으로, 증감 없이 풀을 한 밤 내내 켜 둔 플릿은 평균 최적 비용의 2.53배를 청구한다. static premium은 정적 청구액의 60.5%를 차지하며 다른 팔이 전부 경쟁하는 상이 바로 이것이다.

두 번째는 휴리스틱의 보험이다. P2가 시점이 adversarial인 버스트에 대해 마감 신뢰도 1을 보장하려면, 대응 지연 R=6분을 버텨 줄 상시 유휴 헤드룸 h_h = bR/D를 붙들어 두어야 한다. D는 deadline slack과 버스트 지속이 주는 총 배수 능력을 분과 서비스율로 환산한 값이며 선언된 상수에서는 100이다. 헤드룸은 0.48개 GPU, 한 밤 $7.68이다. 버스트가 약한 밤에도 청구된다. 휴리스틱은 그 밤의 버스트가 작을지 알아듣지 못하기 때문이다.

핵심 결과인 break-even은 이 보험을 forecast 선지가 얼마나 떼어 내는가로 쓴다. forecast가 버스트마다 사용 가능한 선지 L분을 주면 에이전트의 보험은 b·max(R-L, 0)/D로 줄고 밤 비용은 g·T·b·max(R-L, 0)/D + OV이다. 에이전트가 honest bar를 넘는 조건은 정확히 L ≥ L이며 L = OV·D/(g·T·b)분이다. 선언된 상수에서는 결정 비용 OV가 한 밤 160회 결정에 $0.001씩, 잘못된 경보 1회에 $1.00을 붙인 $1.16이고 L*는 0.906분이다.

이 숫자의 모양이 본문에서 더 중요하다. L는 실행 지연 R에 무관하다. 노드 기동이 오래 걸리면 휴리스틱의 보험 비용과 에이전트의 선지 가치가 같은 비율로 늘어나 기준선은 제자리에 멈춘다. 인용된 GPU 기동 2~10분은 에이전트 팔에게는 오히려 자산이다. L는 버스트 초과 b와 horizon T가 크면 작아지고 결정 비용 OV에는 선형이다. L=0에서는 에이전트가 정확히 OV만큼 지고 forecast 선지가 없는 에이전트 컨트롤러는 휴리스틱에 자기 청구액이 붙은 것에 불과하다. 그것이 논문의 내장 negative-result guard이다.

Break-even structure: heuristic insurance bill vs agent cost and net advantage 교정된 휴리스틱의 한 밤 $7.68 일정한 보험 청구액, 선지 L=0에서 $8.84로 시작해 L=R=6분에서 결정 비용 $1.16까지 떨어지는 에이전트의 밤 비용, 그리고 honest bar L=0.906분에서 0을 건너 포화 시 $6.52/밤(보험의 84.9%)까지 오르는 순 이익이다. 선언된 상수에 대한 정확한 산술이며 실측이 아닌 분석 모델입니다.*

선지가 R=6분 이상이면 순 이익은 포화합니다. 보험 $7.68에서 결정 비용 $1.16을 뺀 $6.52, 휴리스틱 보험의 84.9%가 한 밤의 최대 절감입니다.

프론티어의 shape과 상한도 함께 나옵니다. 절감 S(ρ)는 모든 팔에서 ρ가 오르면 내려갑니다. 에이전트의 상대 이익은 낮은 ρ에서는 음수이며 자기 청구액만 남기 때문입니다. 높은 ρ에서는 모든 팔이 마지막 신뢰도 점을 초선형 비용으로 사기 때문에 소멸합니다. 상대 이익이 가장 큰 곳은 보험 용량이 청구액을 지배하는 중간에서 높은 ρ 구간입니다. 에이전트는 프론티어 위의 운영점을 움직입니다. 프론티어의 모양은 바뀌지 않습니다. 그리고 에이전트의 총 이익은 forecast 선지 가치에 큐 간 유휴 오버랩 항을 더한 값으로 위에서 막혀 있습니다. 이 두 항은 telemetry만으로 계산되므로 프론티어에는 점검 가능한 상한이 붙습니다. 실측 절감이 이 상한을 넘으면 미터링 오류가 있다는 뜻입니다.

회사가 먼저 얻는 것과 사회와 과학에 남는 것

ThakiCloud는 이 문제를 남의 사례로 세우지 않습니다. 자체 H200/H100 플릿에서 overnight 용량 압력이 실제로 나타납니다. 2026년 9월 1일 b200 큐가 8/8로 가득 차 h100 폴백을 강제하는 밤이 있었고 Kueue 쿼터와 blocked 큐 상태는 팀의 자체 gpu_queue.py에서 그대로 보입니다. Metis 토큰 미터와 데모 클러스터는 이 프로토콜을 돌릴 수 있는 계측 환경을 이미 갖추고 있습니다. 후속 실측은 에이전트 컨트롤러의 admit/scale/idle 정책을 확인합니다. GPU 시간과 완성 단위당 달러를 줄이고 만 큐를 정리하던 SRE의 overnight 트리아지를 루프에서 빼내는지 보는 것입니다.

사회 쪽은 자율 용량 운영이 안전뿐 아니라 경제 목적에서도 idle GPU 낭비와 에너지를 줄인다는 점을 측정 가능한 형태로 줍니다. 셀프호스트 AI 인프라를 돌리는 조직에서 overnight 무인 에이전트 작업이 더 쌈지고 예측 가능해지면, 들어가는 전력비와 청구액이 함께 내려갑니다.

과학 쪽은 에이전틱 SRE 측정에 선제 축을 추가합니다. 기존 측정이 인시던트 진단과 복구 성공률, 즉 반응 축을 가격한다면, 이 논문은 가격하는 대상이 다릅니다. LLM 에이전트를 비정적 수요 하의 선제적 용량·비용 컨트롤러로 놓고 cost 절감과 마감 신뢰도의 프론티어를 admission 지연, utilization, SLO 위반, 달러 비용으로 분해합니다. 이 프론티어를 controlled measurement로 보고하는 framework가 기존 문헌에서 첫 사례입니다. static/heuristic/agent 세 팔 비교 프로토콜은 다른 클러스터에서도 재사용할 수 있습니다. 반응 축 문헌이 인시던트로 에이전트를 점수화한다면, 이 프로토콜은 밤을 완성 단위당 달러로 점수화합니다.

에이전트에 용량 이동 권한을 주는 것은 안전 문제이기도 합니다. 프로토콜은 세 갈래로 권한을 묶습니다. 행동 세트는 구조화되어 있고 쿼터는 풀 안에서, 증감은 ±1로 제한됩니다. 긴급 scale-down은 결정론 guard가 거부하며 큐가 활성인 동안 provisioned 용량에는 하드 바닥이 놓입니다. 모든 행동은 telemetry 컨텍스트와 함께 로그에 남습니다.

이 논문이 주장하지 않는 것과 한계

이 논문은 에이전트 팔이 이긴다는 주장은 하지 않습니다. 이 질문에 점검 가능한 달러 답이 존재한다는 것만 주장합니다. 기준선은 P2(교정된 휴리스틱), 선지 통계는 L, 손익분점은 L*=0.906분, 상한은 telemetry로 계산 가능한 절감 상한이며 네 이름이 모두 정해져 있습니다.

한계는 다섯입니다. 첫째, 수요는 선언된 합성 trace입니다. 팀 overnight 플릿의 운영 형태에 맞췄을 뿐이고 프로덕션 재현은 아닙니다. 후속 연구가 교정하는 몫입니다. 둘째, GPU 가격 g와 LLM 호출 단가는 선언 상수입니다. L는 g에 반비례하므로 기준선은 가능한 한 비싼 GPU 가격에서 가장 보수적입니다. 셋째, 에이전트의 신뢰성은 결정 비용에 포함됩니다. 파싱 실패와 지연은 모두 미터링되며 180초 예산을 넘긴 결정은 무행동(no-action)입니다. 넷째, P2는 단일 큐입니다. 다중 큐를 아는 휴리스틱이 나오면 큐 간 유휴 오버랩 채널은 줄어 듭니다. 상한이 telemetry에서 나오므로 그 후퇴는 숨겨지지 않고 보입니다. 다섯째, break-even 전체가 L 위에 서 있습니다. overnight manifest가 L를 넘어서까지 예측 불가능하면 에이전트는 정확히 자기 청구액만큼 지고 프로토콜은 버스트마다 L을 재도록 해 둡니다.

이 논문의 두 장의 그림과 모든 숫자는 선언된 상수와 그 위의 정확한 산술입니다. 실측 프론티어는 선언된 시드의 세 팔 프로토콜이 계측된 셀프호스트 클러스터에서 수행하는 몫입니다.


논문 상세 페이지와 수반 자료는 여기에서 볼 수 있습니다: The Night Shift

이 논문은 분석 논문입니다. 본문의 모든 값은 선언된 프로토콜 상수, 그 상수에 대한 정확한 산술, 인용된 범위이며 실측이 아닙니다. 실측 프론티어는 같은 팀의 후속 연구에서 계측된 셀프호스트 클러스터 위 세 팔 비교 프로토콜의 실행 결과로 나옵니다.

이 글 공유하기

태그: autonomous-k8s-operations, capacity-control, 비용 최적화, deadline-reliability, finops, gpu-queue-management, kueue, llm-agent-sre, overnight-automation, self-hosted-cluster

카테고리:

업데이트: