AI Briefing

SSD 성능 최적화: 접근 패턴과 시스템 설정 가이드

·2016.07.17 00:00

핵심 내용

작은 랜덤 쓰기는 내부 프레그멘테이션을 유발해 성능을 저하시키므로, Clustered block 크기에 맞춘 대량 쓰기가 권장된다.

1 / 4

자세히 보기

SSD의 성능은 데이터 접근 패턴과 시스템 설정에 따라 크게 달라진다. **시퀀셜(Sequential)**과 랜덤(Random) 액세스의 성능 차이는 데이터 크기에 의존적이다. 쓰기 데이터가 Clustered block 크기(일반적으로 16MB 또는 32MB) 이상이라면, 랜덤 쓰기도 SSD의 내부 병렬 처리 능력을 최대한 활용하여 시퀀셜 쓰기와 유사한 스루풋을 낼 수 있다.

반면, NAND 플래시 페이지 크기보다 작은 랜덤 쓰기는 맵핑 테이블 업데이트 빈도 증가와 **내부 프레그멘테이션(internal fragmentation)**으로 인해 성능 저하를 초래한다. 작은 랜덤 쓰기는 물리 공간 전체에 무효화된 페이지를 흩어놓아 Garbage-collection의 효율을 떨어뜨린다. 따라서 버퍼링이 불가능한 작은 쓰기가 아니라면, 단일 쓰레드로 대량의 데이터를 한 번에 기록하는 것이 레이턴시와 스루풋 모두에서 유리하다.

읽기 성능은 쓰기 패턴과 밀접하게 연관된다. FTL이 데이터를 여러 채널로 스트라이핑하여 저장하므로, 연관된 데이터가 동일 블록이나 클러스터링 블록에 함께 기록될 때 병렬 처리를 통해 빠르게 읽을 수 있다. 읽기와 쓰기가 동시에 발생하는 혼합 워크로드는 자원 경합으로 인해 성능이 저하될 수 있으므로, 큰 단위의 요청을 분리하여 처리하는 것이 권장된다.

시스템 설정 측면에서는 파티션을 NAND 플래시 페이지 크기에 맞춰 **얼라인먼트(alignment)**하여 불필요한 읽기-수정-쓰기 사이클을 줄여야 한다. 파일 시스템에서는 TRIM 명령을 활성화하고, 메타데이터 업데이트를 최소화하기 위해 noatime 또는 relatime 옵션을 사용하는 것이 좋다. 또한, SSD는 기계적 이동이 없으므로 I/O 스케줄러를 NOOP 또는 Deadline으로 변경하고, 스왑 사용을 줄이기 위해 vm.swappiness 값을 낮추는 것이 성능 향상에 도움이 될 수 있다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.