데일리 · 기사 03 · 4 분 읽기
- OpenAI
OpenAI, ChatGPT 저장 읽기 지연 120ms→10ms 개선 과정 공개
10월 23일 공식 발표·안내 · 원문 재확인 10월 24일 15:52 JST
요약·개요
OpenAI가 10월 23일 저장 플랫폼 Habitat의 개선 과정을 공개했습니다. 회사가 보고한 저장 읽기 중앙 지연 시간은 약 120ms에서 10ms로 줄었으며, ChatGPT 전체 응답이 12배 빨라졌다는 수치는 아닙니다.
핵심 팩트
- 발표: OpenAI가 자체 저장 플랫폼 Habitat의 설계를 설명했습니다. Microsoft의 클라우드 데이터베이스 Azure Cosmos DB 등을 활용하는 기반입니다.
- 보고한 변화: 올해 성능 개선을 거치며 전 세계 저장 읽기의 중앙 지연 시간(p50)이 약 120ms에서 약 10ms로 줄었다는 회사 측 수치입니다. 새 소비자 기능이나 독립 성능 시험의 발표는 아닙니다.
- 개선한 곳: 자료의 지역 배치·복제·캐시와 서비스 코드 등 여러 부분입니다.OpenAI 기술 글

1. 저장 공간도 읽는 속도가 필요
데이터베이스는 자료를 보관하고 조건에 맞는 항목을 찾아주는 시스템입니다. 저장할 자리가 충분한지와, 많은 요청을 제때 처리할 수 있는지는 서로 다른 질문입니다. 책장이 넓어도 안내 창구가 하나뿐이면 사람이 몰릴 때 기다리는 것과 비슷합니다.
Azure Cosmos DB는 처리에 필요한 CPU·입출력·메모리 등의 부담을 RU라는 단위로 표현합니다. RU/s는 초당 처리 용량을 말합니다. 요청마다 부담이 달라서, RU 수를 그대로 요청 건수로 바꾸면 안 됩니다.RU 설명
| 볼 항목 | 묻는 질문 |
|---|---|
| 저장량 | 자료를 얼마나 보관할 수 있나? |
| 처리 용량 | 일정 시간에 얼마나 많은 작업을 감당하나? |
| 지연 시간 | 요청 하나가 돌아오기까지 얼마나 기다리나? |
고양이와 풀어보기 Q&A
- 고양이 연구원
저장 공간이 남는데도 느릴 수 있어?
포켓 노트읽는 요청이 한꺼번에 몰리면 그럴 수 있어. 빈 책장보다 안내 창구의 처리 속도가 문제가 되는 상황을 생각하면 돼.
2. 함께 쓸 때와 따로 둘 때
여러 작업이 용량을 나눠 쓰면 한쪽의 남는 여유를 활용하기 쉽습니다. 반면 한 작업에 요청이 몰려 다른 작업까지 느려지는 ‘시끄러운 이웃’ 문제가 생길 수 있습니다. 자료의 논리적 구분과 실제 처리 자원의 구분도 같지 않을 수 있습니다.분할 구조 설명
평소 사용: A 80 + B 10 + C 10 = 100
각각 100씩 마련
전체 300 중 200이 남음
150을 함께 사용
전체 150 중 50이 남음
사용 여유 · 모든 막대는 같은 단위 척도
공유 용량 150보다 30 많습니다. 따로 둬도 A의 100은 부족하지만 B·C의 용량을 직접 쓰지는 않습니다.
고양이와 풀어보기 Q&A
- 고양이 연구원
용량을 나눠 쓰면 무엇을 더 관리해야 해?
포켓 노트어느 작업에 요청이 몰리는지와 다른 작업까지 느려지는지를 봐야 해. 그림의 빈 용량은 가상 예시이고, 실제 청구액은 요금제·복제·캐시·운영 비용까지 따져야 해.
3. 120ms에서 10ms, 무엇이 빨라졌나
120ms는 0.12초, 10ms는 0.01초입니다. p50은 요청들을 지연 시간 순서로 놓았을 때 중간에 있는 값, 즉 중앙값입니다. OpenAI가 올해 성능 개선 전후로 비교한 수치는 저장 계층의 읽기에 대한 것으로, 모든 사용자의 최악 대기 시간이나 AI 답변 생성 시간을 뜻하지 않습니다.
120을 10으로 나누면 12이고, 감소량 110ms를 기존 120ms로 나누면 약 91.7%입니다. 이것은 해당 지표의 변화입니다. 전체 응답에는 인증·자료 조회·모델 계산·전송 같은 다른 시간도 들어갑니다.
고양이와 풀어보기 Q&A
- 고양이 연구원
그럼 내 ChatGPT 답변도 12배 빨라져?
포켓 노트그 숫자만으로는 알 수 없어. 저장 읽기가 차지하는 비중과 캐시에 없는 느린 요청은 따로 봐야 해. 중앙값이 좋아져도 가장 느린 쪽의 경험은 남을 수 있어.
4. 가까운 복사본과 오래된 복사본
캐시는 자주 읽는 자료의 복사본을 가까운 곳에 두어 원래 저장소까지 가는 횟수를 줄이는 장치입니다. 다만 원본이 바뀌었는데 복사본이 남아 있으면 오래된 값을 보여줄 수 있습니다. Azure의 일반 캐시 문서도 반복 읽기, 데이터가 머무는 시간과 갱신 조건을 함께 설명합니다.일반 캐시 설명
이 문서의 Azure 전용 게이트웨이 캐시와 Habitat의 Valkey 기반 캐시는 같은 구현이 아닙니다. OpenAI는 원본의 변경 신호를 받아 캐시를 무효화하고 다음 읽기에서 새 값을 채우는 방식을 설명했습니다.
가상의 가게가 상품명을 바꾼 경우를 보면, ‘가까운 복사본을 읽기’ 뒤에는 ‘변경 신호로 낡은 복사본을 버리기’도 필요합니다. 데이터를 가까이 옮길 때는 저장 지역 요구사항과 실제 지역별 용량도 고려해야 합니다.
1 · 복사본이 없을 때
- 앱의 조회
- 원본 저장소에서 읽기
- 캐시에 복사본 채우기
2 · 같은 자료를 다시 읽을 때
- 앱의 조회
- 가까운 캐시에서 읽기
- 사용할 수 있는 복사본이면 원본 조회 생략
3 · 원본 상품명이 바뀌었을 때
- 원본 변경
- 변경 신호로 낡은 캐시 무효화
- 다음 조회 때 새 값으로 채우기
고양이와 풀어보기 Q&A
- 고양이 연구원
원본 상품명을 바꾸면 캐시는 어떻게 따라가?
포켓 노트이 그림에서는 변경 신호로 오래된 복사본을 무효화하고 다음 조회 때 새 값을 채워. 작은 서비스도 캐시를 시험할 때 원본을 바꾼 뒤 언제 새 값이 보이는지 함께 살펴볼 수 있어.
마무리
AI 서비스의 속도는 자료를 꺼내는 길에도 달려 있다
운영 지표에서 평균 하나만 보던 개발자라면, 자주 쓰는 조회와 느린 쪽의 요청을 나눠볼 수 있습니다. 모델을 바꾸기 전에 기다리는 시간이 실제로 어디에서 생기는지 보는 것이 출발점입니다.
출처
- OpenAI 기술 글openai.com
- RU 설명learn.microsoft.com
- 분할 구조 설명learn.microsoft.com
- 일반 캐시 설명learn.microsoft.com