반응형
웹 서버
-
Linux I/O 스케줄러(cfq, deadline, noop)커널(Kernel) 2022. 12. 26. 21:14
환경 정보 OS: ubuntu18.04 I/O 발생 흐름 1. 사용자는 읽기나 쓰기를 통해서 I/O를 발생시킨다. 2. 발생한 I/O는 가상 파일 시스템이나 로컬 파일시스템 경로를 거친다. 3. 파일 시스템을 거친 I/O는 I/O 스케줄러를 통해 가공되고(병합, 정렬) 언제 블록 디바이스에 접근할지 정해진다. 4. 블록 디바이스에 접근해서 데이터를 읽거나 쓴다. I/O 스케줄러가 필요한 이유 우리가 사용하는 디스크는 크게 HDD와 SSD가 있다. HDD의 경우, 디스크 헤더를 움직여 데이터가 저장되어 있는 섹션에서 데이터를 읽거나 쓴다. 여러 데이터를 읽거나 쓰기 위해 헤더를 이리저리 움직이는 것은 시간을 많이 사용하게 되고, 결국은 성능 저하를 만든다. 마찬가지로 SSD 또한 한 번에 읽을 수 있는 데..