장치에 대한 Debian max_ratio 설정이 작동하지 않습니다.

장치에 대한 Debian max_ratio 설정이 작동하지 않습니다.

내 Debian 8 컴퓨터에는 2개의 드라이브가 있습니다. 가끔 A 드라이브에서 B 드라이브로 파일을 이동/복사합니다. B 드라이브가 매우 느리기 때문에 파일 시스템 캐시가 가득 차서 대용량 파일을 복사할 때 시스템이 느려지거나 응답하지 않게 됩니다. 이를 방지하기 위해 장치 B에서 사용하는 파일 시스템 캐시를 제한하고 싶습니다. 그래서 /sys/class/bdi/MAJOR:MINOR/max_ratio설정을 에서 로 변경 100했습니다 20. 그러나 Dirty Pages에 따르면 더티 페이지가 여전히 이전과 같은 방식으로 채워지고 있으므로 이는 적용되지 않는 것 같습니다 /proc/meminfo.

내가 무엇을 놓치고 있나요? 이 설정을 다시 로드하려면 어떤 조치를 취해야 합니까? 파일 시스템 캐시를 특정 장치로 제한하는 다른 방법이 있습니까?

설치 옵션 "동기화"를 사용해 보았습니다. 이것은 작동하지만 드라이브 B를 매우 느리게 만듭니다.

답변1

이러한 설정은 총 쓰기 저장 캐시가 가득 찬 후에만 적용됩니다(dirty_ratio + dirty_ground_ratio / 2). 인용하다:

  • Jan Kara의 LKML 게시물
  • 5fce25a9df48 제출v2.6.24에서. "시스템에 공간이 많으면 bdi 제한을 위반하는 것을 허용합니다. 전체 제한의 절반에 도달하면 bdi 제한을 적용하기 시작합니다..." 이것은 내부 공간을 추가하는 동일한 커널 버전의 일부입니다. -장치 "한계" . 따라서 "제한 사항"은 사전 릴리스 v2.6.24-rc1 및 -rc2를 제외하고 항상 이와 같이 작동합니다.
  • 더욱 스마트해진 쓰기 제한LWN.net 작성 - 원본 패치 시리즈에 대한 참조를 원하는 경우. 이 특정 제한 사항은 설명하지 않습니다.

단순화를 위해 vm.dirty* sysctls의 기본값: dirty_Background_ratio = 10 및 dirty_ratio = 20을 가정해 보겠습니다. 이 경우 시스템 전체가 15% 지점에 도달할 때까지 프로세스는 속도를 늦추지 않고 더티 페이지를 허용합니다.

관련 정보