고속 I/O 에 대해서

Gunju Kim·2025년 7월 24일

work

목록 보기
3/3

고속 디스크 I/O는 로컬 저장소가 OS와 물리적으로 가까이 있으며, OS가 디스크를 직접 제어할 수 있기 때문에 가능합니다. 반대로 네트워크 환경에서는 OS가 파일 I/O를 직접 제어하지 못하고, 중간 계층(네트워크, 공유 프로토콜, 원격 장치)의 영향을 받기 때문에 처리 속도에서 큰 차이가 발생합니다.

고속 디스크 I/O(입출력)가 가능한 이유는 디스크가 운영체제와 얼마나 직접적으로 연결되어 있는지와 관련이 있습니다. 로컬 디스크나 USB 같은 직접 연결 장치는 OS 수준에서 최적화된 I/O 처리를 지원하며, 이는 다음과 같은 기술적 요인 덕분입니다:

✅ 고속 디스크 I/O가 가능한 핵심 이유

1. 커널 레벨 접근 (Kernel-Level I/O Control)

  • 로컬 디스크는 운영체제 커널이 직접 제어합니다.

  • 파일 시스템, 캐시 관리, 블록 할당, 쓰기 버퍼 등이 커널 공간에서 동작하기 때문에 지연(latency)이 최소화됩니다.

  • 반면 SMB 등 네트워크 파일 시스템은 유저 공간에서 네트워크를 통해 명령이 전달되므로 I/O가 느립니다.

2. 디스크 캐시 및 버퍼링 활용

  • 로컬 디스크는 OS 또는 하드웨어 수준에서 쓰기 버퍼(write-back buffer), 읽기 캐시(read-ahead)를 활용합니다.

  • 예시: Windows는 NTFS 파일 시스템을 통해 쓰기 캐시를 활성화하여 실제 디스크 쓰기 전에 메모리에 기록 → 고속 처리 가능.

  • 반면, 네트워크 경로의 공유 폴더는 이러한 버퍼링을 제약받거나 아예 사용할 수 없음.

3. Direct I/O 및 Memory Mapping 지원

  • InfluxDB와 같은 DB는 고성능을 위해 mmap(memory-mapped file), direct I/O를 사용합니다.

  • 이러한 기능은 로컬 디스크에서만 안정적으로 작동합니다.

  • 네트워크 디스크는 이러한 low-level 기능을 지원하지 않거나, 일부만 제한적으로 지원하여 성능 저하 유발.

4. 대역폭의 절대 차이

  • SATA, NVMe, USB 3.x 등은 5Gbps ~ 32Gbps까지의 대역폭을 제공합니다.

  • 반면 100Mbps ~ 1Gbps 수준의 네트워크는 이미 프로토콜 오버헤드가 포함되어 실제 사용 대역폭이 더 적습니다.

  • 특히 SMB는 파일 시스템 수준의 제어 정보를 주고받는 통신량까지 포함되므로 실효 속도는 더 떨어집니다.

5. 낮은 I/O 대기 시간 (Latency)

  • 로컬 디스크는 microseconds(μs) 단위의 응답속도.

  • 네트워크 디스크는 milliseconds(ms) 단위의 왕복 시간이 필요 → 다수의 I/O 요청 시 지연 누적.

6. I/O 병렬성 및 큐 처리 최적화

  • OS는 로컬 디스크에 대해 I/O 스케줄링, 동시 처리, 우선순위 조정 등을 내부적으로 제어합니다.

  • 반면 네트워크 드라이브는 OS가 직접적으로 명령 큐를 제어하지 못하므로 이러한 최적화가 적용되지 않습니다.

profile
처음이라서 그래 가본적 없던 길에

0개의 댓글