그걸로 하드디스크를 테스트하고 싶은데 , 블록 크기( 옵션)와 블록 수( 옵션) badblocks
에 어떤 값을 사용해야 할지 모르겠습니다 . 몇 가지 임의의 값을 시도했는데 프로세스 속도가 크게 변경되는 것 같습니다. 하지만 어떻게 최고의 가치를 선택할 수 있을까요?-b
-c
답변1
다음은 게시된 동일한 질문에서 관련 발췌문입니다.배드블록을 사용할 때 올바른 매개변수를 선택하는 방법은 무엇입니까?그리고badblocks
최신 디스크에 사용됩니다.
하나 있다사용 가능한 불량 블록 벤치마크 스크립트이는 귀하의 목적에 적합해야 합니다.
이 -b
옵션 정보: 디스크에 따라 다릅니다. 최신 대형 디스크에는 4KB 블록이 있으며, 이 경우 -b 4096
블록 크기를 얻을 수 있습니다.운영 체제에서(예: lsblk -o NAME,PHY-SeC /dev/sdX
), 이는 일반적으로 레이블에서 디스크 정보를 읽거나 디스크 모델 번호를 인터넷에서 검색하여 얻을 수도 있습니다. -b
블록 크기보다 크게 설정 하면 badblocks
결과의 무결성이 손상될 수 있습니다(즉, 거짓 부정이 발생할 수 있습니다. 불량 블록이 여전히 존재할 수 있는데도 발견되지 않습니다). -b
드라이브의 블록 크기보다 작게 설정 하면 작동 속도 badblocks
에 영향을 미칠 수 있습니다. 확실하지는 않지만 -b
블록 크기보다 작은 값으로 설정하면 전체 블록의 무결성을 확인하지 못하기 때문에 다른 문제가 발생할 수 있으며, 너무 작게 설정하면 여전히 오탐이 발생할 수 있습니다.
이 -c
옵션은 한 번에 검사해야 하는 블록 수에 해당합니다. 기본적으로 일괄 읽기/쓰기입니다. 이 옵션은 결과의 무결성에는 영향을 미치지 않지만 실행 속도에는 영향을 미칩니다 badblocks
. badblocks
(선택적으로) 지정된 모든 N 블록에 대해 쓰기, 읽기, 버퍼링, 확인, 반복을 수행합니다 -c
. 너무 낮게 설정 하면 개별 IO 요청을 대기열에 추가하고 처리하는 오버헤드로 인해 런타임이 평소보다 훨씬 길어 -c
지고 badblocks
디스크에서 각 요청에 대한 추가 오버헤드가 발생할 수도 있습니다. -c
너무 높게 설정 하면 badblocks
메모리가 부족해질 수 있습니다. 이런 일이 발생하면 badblocks
시작 후 곧 실패하게 됩니다. 여기에서 고려해야 할 다른 사항으로는 병렬 실행이 있습니다. badblocks
동일한 디스크의 여러 파티션에서 실행 중이거나(나쁜 생각) 동일한 IO 채널의 여러 디스크에 대해 실행하는 경우 사용 가능한 메모리를 합리적으로 높은 값으로 조정해야 할 수 있습니다. 이러한 방식으로 병렬 실행은 IO 대역폭을 놓고 경쟁하지 않으며 합리적인 방식으로 병렬화될 수 있습니다.badblocks
-c
badblocks
추가 개선을 위해 커뮤니티 위키로 이 답변을 가지고 있습니다.