디스크 읽기 속도가 느린 경우 특정 간헐적 버그만 나타날 수 있습니다. 안정적으로 재현 할 수 없기 때문에 문제 해결이 어렵습니다.
우선 순위가 높은 프로세스에서 단순히 IO를 고갈시키지 못하는 경우, 느린 하드 드라이브 사용을 시뮬레이션 할 수있는 방법이 있습니까?
man hdparm
-X 옵션을 보시겠습니까? 거기에는 드라이브 속도를 늦추기 위해 사용할 수있는 몇 가지가 있지만 그중 일부는 데이터에 불쾌한 일을 할 위험이 있습니다!
디스크 읽기 속도가 느린 경우 특정 간헐적 버그만 나타날 수 있습니다. 안정적으로 재현 할 수 없기 때문에 문제 해결이 어렵습니다.
우선 순위가 높은 프로세스에서 단순히 IO를 고갈시키지 못하는 경우, 느린 하드 드라이브 사용을 시뮬레이션 할 수있는 방법이 있습니까?
man hdparm
-X 옵션을 보시겠습니까? 거기에는 드라이브 속도를 늦추기 위해 사용할 수있는 몇 가지가 있지만 그중 일부는 데이터에 불쾌한 일을 할 위험이 있습니다!
답변:
사용 NBD 말을 사용하려면 네트워크 차단 장치, 다음 속도 제한 액세스 trickle
.
sudo apt-get install nbd-client nbd-server trickle
# echo 1> / proc / sys / vm / drop_caches
그것은 당신을 느리게 할 것입니다 :)
캐시 된 페이지를 이용하는 대신 디스크에서 읽어야합니다.
정말로 정교 해지고 싶다면 scsi 결함 주입 프레임 워크를 사용하여 매 n 번마다 가짜 읽기 오류와 같은 작업을 수행 할 수 있습니다.
USB 1.1 허브가 있습니까? 아니면 느린 SD 카드? 그들은 당신을 10mbps 이하로 떨어 뜨릴 것입니다.
이것은 완전한 솔루션은 아니지만 다른 측정과 관련하여 도움이 될 수 있습니다. 프로세스 스케줄러와 매우 유사한 I / O 스케줄러가 있으며 조정할 수 있습니다.
가장 주목할만한 것은 실제로 다른 스케줄러 중에서 선택할 수 있습니다.
~# cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]
~# echo "deadline" > /sys/block/sda/queue/scheduler
~# cat /sys/block/sda/queue/scheduler
noop anticipatory [deadline] cfq
~#
deadline
더 강력하게 재현 가능한 결과를 얻는 데 도움이 될 수 있습니다.
noop
이름에서 알 수 있듯이 멍청한 일이며 약간의 노력으로 I / O 성능에 절대적인 혼란을 줄 수 있습니다.
anticipatory
그리고 cfq
비록 모두의 시도는, 그것에 대해 현명하게 cfq
일반적으로 두 가지의 똑똑한입니다. (제 생각 anticipatory
에는 커널이 여러 스케줄러를 지원하기 직전의 레거시 스케줄러입니다.)
Virtual Machine 및 스로틀 디스크 액세스를 사용할 수 있습니다. 여기 Virtualbox 5.8에서 가상 머신을 사용하는 방법에 대한 팁이 있습니다. 디스크 이미지의 대역폭 제한 https://www.virtualbox.org/manual/ch05.html#storage-bandwidth-limit
최근에 내가 설정을 알아 냈습니다.
google-drive-ocamlfuse
경우 16초는 대기 시간이 느린 충분하지, 당신은 당신의 라우터를 분리 할 수 있습니다.
참고로 다음은 원래 사용 사례입니다. https://github.com/goavki/apertium-apy/pull/76#issuecomment-355007128