나는 오랜 시간 동안 일부 디스크의 IO를 망치고 블록에서 읽을 수 없을 때마다(또는 백엔드 스토리지 문제를 알려주는 다른 증상) 알고 싶습니다. 몇 초 동안 작성하여 결과를 보여주는 벤치마킹 도구도 있지만 저는 장기간 테스트를 하고 싶습니다.
지금까지 내가 생각할 수 있는 것은 dd를 통해 디스크에 쓰고 해당 파일에서 /dev/zero 로 읽는 것입니다. 초기 실행이 완료된 후에도 계속 읽고 쓸 수 있도록 반복해야 합니다. 디스크 상태에 대한 통찰력을 얻으려면 dd가 읽거나 쓸 수 없으면 종료될 수 있다고 생각합니까? 그렇지 않으면 문제가 있는지 알 수 없습니다.
다른 아이디어는 bonnie++를 루프에서 실행하는 것입니다. 백그라운드에서 무엇을 하고 있는지, 디스크 대신 실제로 얼마나 많은 RAM을 사용하고 있는지 말하기는 어렵습니다(RAM 할당보다 큰 양의 데이터를 기록하도록 지시하여 이 문제를 해결하려고 하는 것 같습니다). 그러면 그것이 제공하는 출력은 읽기가 매우 어렵습니다. 그러나 bash 루프를 사용하여 지속적으로 실행한다면 쓰기 및 읽기에 충분할 것입니다.
생각?
답변1
어때?fio
검증 및 시간 기반 작업 부하를 사용하는 작업이 있나요? 나는 다음과 같은 생각을하고있다
fio --name=2h --direct=1 --filename=/dev/sdz --verify=crc32c-intel --verify_fatal=1 --time_based=1 --runtime=2h --rw=write
이렇게 하면 블록 캐시를 우회하여 /dev/sdz에 대한 무작위 쓰기가 수행됩니다(따라서 /dev/sdz의 내용이 삭제됨). /dev/sdz가 완전히 작성된 후 해당 내용을 다시 읽고 확인합니다. 이 프로세스는 2시간 동안 계속되며 완료될 때마다 이전 단계가 반복됩니다. 이것은 명백히 불완전하지만(예: 첫 번째 쓰기 패스도 2시간이 지나야 완료된다는 보장이 없습니다. 등) 몇 가지 아이디어를 제공합니다...
당신이 어떤 종류의 일을하고 있다면스토리지 I/O 테스트 후 fio는 종종 살펴볼 가치가 있습니다..