asterisk-sw.log
로그인
asterisk-sw.log
로그인
I/O Stack 및 병목 현상
From_A_To_Z
·
2026년 1월 24일
팔로우
0
File System
Multi-core
block layer
i/o stack
1. Multi-Core (멀티 코어 계층)
CPU는 여러 개의 코어(Core)로 구성
각 코어는 독립적으로 작업을 처리하며 동시에 I/O 요청(데이터 읽기/쓰기)을 발생
흐름: 여러 코어에서 발생한 요청들이 아래 계층인 페이지 캐시로 전달
2. Page Cache (페이지 캐시 계층)
디스크의 데이터를 메모리(RAM)에 임시 저장하여 속도를 높이는 역할
주요 이슈 (Lock for shared page): 여러 코어가 동시에 같은 메모리 페이지에 접근하려고 할 때 데이터의 무결성을 위해 락(Lock) 필요
NUMA (Non-Uniform Memory Access) Scalability: 코어 수가 많아질수록 락으로 인한 경합이 심해져 성능 확장이 어려움 (=병목 지점)
3. File System (파일 시스템 계층)
데이터는 단순한 덩어리가 아니라 파일 시스템(예: ext4, xfs 등)에 의해 관리
Metadata (노란색): 파일의 크기, 위치, 권한 등 정보.
Journal (초록색): 시스템 충돌 시 복구를 위한 로그 기록.
Data (주황색): 실제 사용자 데이터.
주요 이슈 (Locking): 파일 시스템에 데이터를 쓸 때도 락이 필요
Lock for Metadata: 파일 정보 갱신을 위한 락.
Lock for Journaling: 데이터 안전성을 위한 저널 기록 시 발생하는 락.
4. Block Layer (블록 계층)
파일 시스템이 보낸 요청을 실제 디스크가 이해할 수 있는 블록 단위로 변환하고 스케줄링
Software Queues: 그림의 파란색 큐(Queue)들은 각 CPU 코어 또는 코어 그룹별로 할당된 소프트웨어 큐
Flush: 그림 오른쪽의 write -> flush -> write 흐름은 데이터의 순서를 보장하고 확실히 디스크에 기록하기 위해 캐시를 비우는(Flush) 작업. 이 과정은 필수적이지만 I/O 성능에 지연(Latency) 발생
5. Block Device (블록 디바이스 / 하드웨어 계층)
실제 물리적인 저장 장치(SSD, HDD 등)입니다.
Writeback Cache: 장치 내부에도 속도 향상을 위한 자체 캐시(DRAM 등)가 있음
저장 매체: 캐시를 거친 데이터는 최종적으로 물리적인 미디어(그림 하단의 칩 또는 플래터 모양)에 영구적으로 저장됨.
From_A_To_Z
What goes around comes around.
팔로우
이전 포스트
프록시 서버 개념 및 분류
다음 포스트
DAT (Direct Access Table)
0개의 댓글
댓글 작성