![ionice는 비동기 쓰기(예: 일반 쓰기)에는 영향을 미치지 않습니다.](https://linux55.com/image/144203/ionice%EB%8A%94%20%EB%B9%84%EB%8F%99%EA%B8%B0%20%EC%93%B0%EA%B8%B0(%EC%98%88%3A%20%EC%9D%BC%EB%B0%98%20%EC%93%B0%EA%B8%B0)%EC%97%90%EB%8A%94%20%EC%98%81%ED%96%A5%EC%9D%84%20%EB%AF%B8%EC%B9%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
대용량 MySQL 데이터베이스(덤프 크기는 약 10GB)를 덤프하면 거의 즉시 디스크에 나타나지만 나중에 커널이 이를 디스크에 플러시하기로 결정하면 서버가 거의 정지되고 기타 IO 요청이 발생합니다. 많은 리소스를 사용합니다. mysqldump가 ionice -c3을 사용하여 실행하면 완료하는 데 시간이 더 오래 걸리므로 ionice를 사용해도 실제 효과는 없습니다.
페이지 캐시에 데이터를 쓸 때 IO 우선 순위를 저장할 필드가 없습니다. 따라서 ionice
아무런 영향을 미치지 않습니다. 나한테 이런 권리가 있는 걸까?
내 최신 커널 버전은 4.18.16-200.fc28.x86_64
.
답변1
예.
이론적으로 Nice(1)가 이론적으로 CPU 사용량을 우선시하는 것처럼 ionice를 사용하면 명령에 대해 IO의 우선 순위를 지정할 수 있습니다. 이는 기계의 대화형 사용을 방해하지 않고 백그라운드에서 대규모이지만 상대적으로 중요한 편집을 수행할 수 있는 편리한 방법입니다.
(그렇습니다. 저는 종종 소스에서 Firefox를 다시 컴파일합니다.)
[...]
다음 문제는 디스크에서 직접 실행하는 경우에도
ionice
비동기 쓰기 IO의 우선순위가 해제되지 않는다는 것 입니다. 이는 대부분의 프로그램에서 수행하는 쓰기 IO의 대부분입니다. Ionice는 동기식 쓰기 속도를 늦출 수 있으며(프로그램을 테스트하지는 않았습니다) 읽기에는 확실히 작동하지만 그게 전부입니다.