# IO 장치 및 지연 문제

> Clean Markdown view of GeekNews topic #19756. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=19756](https://news.hada.io/topic?id=19756)
- GeekNews Markdown: [https://news.hada.io/topic/19756.md](https://news.hada.io/topic/19756.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-03-15T08:38:26+09:00
- Updated: 2025-03-15T08:38:26+09:00
- Original source: [planetscale.com](https://planetscale.com/blog/io-devices-and-latency)
- Points: 1
- Comments: 1

## Topic Body

### IO 장치와 지연 시간

- **비휘발성 저장 장치**는 현대 컴퓨터 시스템의 핵심 요소로, 전원이 꺼져도 데이터를 저장할 수 있음. CPU 레지스터, CPU 캐시, RAM과 같은 휘발성 저장 장치와 달리 지속적인 전원이 필요하지 않음.

#### 테이프 저장 장치

- 1950년대부터 컴퓨터는 비휘발성 디지털 저장을 위해 **테이프 드라이브**를 사용해 왔음. 테이프는 긴 시퀀스의 데이터를 저장하는 데 적합하며, 대량의 데이터를 안전하게 저장해야 하지만 자주 읽을 필요가 없는 상황에 적합함.
- 테이프는 저렴한 비용과 긴 수명을 제공하며, CERN과 AWS와 같은 대규모 데이터 저장소에서 여전히 사용됨.

#### 하드 디스크 드라이브 (HDD)

- **하드 디스크 드라이브**는 테이프에 비해 더 빠른 데이터 접근을 제공하며, 원형의 금속 디스크에 데이터를 저장함. 디스크의 모든 표면적이 항상 사용 가능하여 데이터 읽기 및 쓰기 지연 시간이 감소함.
- HDD는 명령 큐잉을 지원하여 여러 명령을 병렬로 실행할 수 있음.

#### 솔리드 스테이트 드라이브 (SSD)

- **솔리드 스테이트 드라이브**는 기계적 부품 없이 전자적으로 데이터를 읽고 쓰며, NAND 플래시를 사용하여 비휘발성 저장을 제공함.
- SSD는 병렬 처리와 가비지 컬렉션을 통해 성능을 최적화할 수 있음. 데이터의 배열이 성능에 영향을 미칠 수 있음.

#### 클라우드에서의 저장

- 클라우드로의 이동은 IO 성능에 변화를 가져왔으며, 많은 기업들이 클라우드로 서버와 데이터베이스 시스템을 이전함.
- 클라우드 환경에서는 **스토리지와 컴퓨팅의 분리**가 일반적이며, 이는 데이터의 안전성과 유연성을 제공하지만 성능 저하를 초래할 수 있음.

#### 스토리지와 컴퓨팅의 분리

- 전통적으로 서버는 비휘발성 저장 장치를 직접 연결하여 사용했으나, 클라우드에서는 네트워크를 통해 스토리지를 연결하는 방식이 일반적임.
- 네트워크 연결 스토리지는 데이터의 안전성을 제공하지만, IO 성능에 부정적인 영향을 미칠 수 있음.

#### 로컬 vs 네트워크 스토리지

- 로컬 NVMe SSD는 매우 빠른 IO 속도를 제공하며, 네트워크 연결 스토리지에 비해 지연 시간이 적음.
- 네트워크 연결 스토리지는 IO 작업에 제한이 있을 수 있으며, 이는 성능 저하로 이어질 수 있음.

#### 해결책: Metal

- **Metal**은 PlanetScale에서 제공하는 솔루션으로, 직접 연결된 NVMe SSD 드라이브를 사용하여 뛰어난 성능과 확장성을 제공함.
- Metal 클러스터는 기본적으로 주 서버와 두 개의 복제본으로 구성되어 데이터의 내구성을 보장하며, 저장 용량을 쉽게 확장할 수 있음.
- Metal 데이터베이스는 IO 작업에 인위적인 제한이 없으며, 최소한의 지연 시간으로 IO 작업을 수행할 수 있음.

## Comments



### Comment 35919

- Author: neo
- Created: 2025-03-15T08:38:27+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=43355031) 
* 블로그 작성자가 이 글을 쓰면서 매우 즐거웠음을 언급함. 수천 줄의 자바스크립트를 사용하여 인터랙티브한 비주얼을 만들었음
* SQLite+NVMe를 오랫동안 지지해왔음을 밝힘. 이는 새로운 패턴으로, 수평 확장 없이도 문제를 해결할 수 있는 가능성을 제공함
  - 성능 문제에서는 지연 시간이 가장 중요함
  - 특히 순차적으로 처리해야 하는 경우에 더욱 중요함
  - NVMe에서 SQLite를 실행하면 다른 제공자가 제공할 수 없는 지연 시간 이점을 얻을 수 있음
  - 대부분의 실제 사용 사례에서 메모리 실행이 NVMe 지속성보다 큰 이점을 제공하지 않음
* 제품 홍보라는 것을 잊을 정도로 정보가 풍부했음을 칭찬함. 훌륭한 비주얼과 상호작용성을 언급함
* 디스크 IO 애니메이션을 보면서 Melvin Kaye를 떠올림
  - Mel은 시간 지연 루프를 작성하지 않았음
  - Flexowriter가 출력 문자 사이에 지연이 필요할 때도 마찬가지였음
  - 드럼에 명령어를 배치하여 필요할 때마다 읽기 헤드 바로 뒤에 위치하도록 했음
  - 드럼은 다음 명령어를 찾기 위해 완전한 회전을 수행해야 했음
* 블로그가 좋음을 언급함. 일반적으로 클라우드 스토리지가 "비정상적으로 느림"을 지적함
  - 최근 S3/오브젝트 스토리지에 증분 인덱스를 저장하는 지원을 추가했음을 언급함
  - NVMe를 더 오래 사용한 이유는 이전 기사에서 언급한 성능상의 이점 때문임
  - 더 나은 제공으로 이 분야를 혁신할 누군가가 있으면 좋겠다고 밝힘
* 분산 스토리지에 대해 이 기사에서 충분히 다루지 않은 점을 지적함
  - 일부 시스템은 기본적으로 복제를 지원하지 않음
  - Cassandra 클러스터와 MySQL은 마스터 슬레이브 복제를 할 수 있지만, 많은 시스템은 그렇지 않음
  - 클라우드에서 NVMe 스토리지를 사용할 때 유지보수 간격과 클라우드에서 시작된 드레인을 존중해야 함
  - 스토리지를 컴퓨팅과 분리하면 클라우드 운영자가 필요에 따라 컴퓨팅을 이동할 수 있음
  - 데이터가 컴퓨팅과 독립적이므로 클라우드 운영자가 데이터 시스템과 드레인을 관리할 수 있음
* Metal이 매우 멋져 보임. 이전 직장에서 GCP의 인스턴스 로컬 SSD를 사용하려 했을 때 심각한 신뢰성 문제가 있었음을 언급함
  - 장치의 블록이 데이터를 잃는 문제가 있었음
  - 이 상황이 개선되었는지 궁금해함
  - 사용 중인 머신 타입을 묻고 있음
  - 해결책으로 Discord의 네트워크 디스크를 사용하는 방법을 언급함
* PlanetScale Metal이 매우 견고해 보임. 릴리스에서 지연 시간이 크게 감소하는 것을 보는 것이 항상 흥미로움
* 매우 훌륭한 기사임. 랜덤 쓰기의 시각화가 매우 잘 되어 있음
  - 클라우드에서 네트워크 연결 스토리지의 또 다른 문제는 IOPS 제한임
  - AWS와 Google Cloud를 포함한 많은 클라우드 제공자가 이 모델을 사용하며, 전송할 수 있는 IO 작업의 양을 제한함
  - 스토리지가 컴퓨팅 인스턴스에 직접 연결되어 있으면 IO 작업에 인위적인 제한이 없음
  - 하드웨어가 허용하는 한 빠르게 읽고 쓸 수 있음
  - "IOPS" 제한이 특정 네트워크 트래픽에 대한 제한인지 궁금해함
  - EBS 볼륨 네트워크 트래픽을 의미하는지 묻고 있음
  - 비용 절감이 가능한지, AWS의 이상한 차익 거래 때문인지, 아니면 EBS 네트워킹을 덜 함으로써 효율성을 얻는 것인지 궁금해함
  - 스토리지와 컴퓨팅을 같은 머신에 두는 것이 지연 시간 측면에서 이점이 있음을 명확히 봄
  - 비용 대비 처리량 측면에서도 이점이 있는지 궁금해함
* "서버리스" 데이터베이스 제공자가 어떻게 "저지연" 액세스를 광고하는지 궁금해함
  - S3와 같은 오브젝트 스토리지를 사용하며, 이는 네트워크 스토리지보다 지연 시간이 훨씬 나쁠 것으로 예상됨
  - 캐싱 레이어를 구축했음을 언급하며, 로컬에 연결된 NVMe에 데이터를 유지하겠다고 밝힘
