DISK 벤치마크의 무작위 쓰기는 iostat에서 높은 읽기 속도를 보여줍니다.

DISK 벤치마크의 무작위 쓰기는 iostat에서 높은 읽기 속도를 보여줍니다.

일부 디스크(HDD 및 SDD)에서 직접 무작위 쓰기 벤치마크를 실행하고 있는데 iostat 모니터에 이상한 출력 데이터가 표시됩니다. 일반적인 쓰기 속도 외에 왜인지 이해할 수 없는 읽기 속도가 있습니다.

다음은 테스트를 위해 C로 작성한 벤치마크 프로그램입니다(이 문제의 핵심 코드).

fd=open("/dev/sda", O_WRONLY|O_CREAT|O_TRUNC, 0666); 
for (;;) {
    offset2=DLIMIT * (double)random() / RAND_MAX;
    retval = lseek64(fd, offset2, SEEK_SET);
    handle("lseek64", retval == (off64_t) -1);
    retval = write(fd, buffer, BLOCKSIZE);
    handle("write", retval < 0);
}

예를 들어 60초 벤치마크 동안 iostat는 다음과 같은 평균 결과를 보여주었습니다.

54467,27(kB/초) | 38147,37(주)

실행 중인 프로그램을 한 번 실행해 보니 write 및 lseek의 내용만 표시되었습니다.

또 다른 좋은 정보는 이 프로그램을 파일(SDA에서 마운트된 파일 시스템)에서 실행하면 읽기 속도가 표시되지 않는다는 것입니다. 이 "/dev/sda" 경우에만요.

이 고스트 읽기 비율에 대한 아이디어나 설명이 있습니까?

관련 정보