저는 항상 약 50MB/s의 속도로 RAID 10 HDD 구성에 데이터를 순차적으로 쓰는 실시간 애플리케이션을 가지고 있습니다. mmap을 사용하며 쓰기는 I/O를 기다리면서 차단되지 않습니다.
그런 다음 때로는 많은 읽기가 발생합니다. 예를 들어 드라이브에서 500GB의 순차 데이터를 최대한 빨리 읽고 싶습니다. 그러나 쓰기 응용 프로그램이 I/O에서 차단되지는 않을 수 있습니다.
현재 우리는 쓰기 애플리케이션을 SCHED_FIFO로 설정한 다음 읽기 애플리케이션에서 CFQ I/O Scheduler + I/O Nice를 사용하여 이 문제를 해결합니다. 이것은 잘 작동하지만 드라이브에 쓰기와 읽기를 위해 앞뒤로 많은 시간이 필요하기 때문에 약간 비효율적입니다.
이를 개선할 수 있는 전략이 있는지 궁금합니다. 시스템 드라이브는 빠른 256GB SSD 드라이브입니다. 공간이 있고 SSD를 읽고 있을 때 Linux가 SSD에 쓰도록 할 수 있나요? bcache, dmcache 또는 기타 모듈을 통해 이를 달성할 수 있습니까? 즉, HDD에서 읽을 때만 SSD에 쓴 다음 HDD에 플러시합니다. SSD 캐시가 "가득"인 경우 HDD에 대한 쓰기가 읽기보다 우선합니다.