>source

procfs-diskstats의 결과를 어떻게 해석할 수 있는지에 관심이 있습니다. API처럼 보이지만 인터넷이나 매뉴얼 페이지 또는 Linux 커널 문서에 완전한 설명이 없습니다.

매우 간결한 설명이 있습니다.

The /proc/diskstats file displays the I/O statistics
of block devices. Each line contains the following 14
fields:
    =====================================
         1  major number
         2  minor mumber
         3  device name
         4  reads completed successfully
         5  reads merged
         6  sectors read
         7  time spent reading (ms)
         8  writes completed
         9  writes merged
        10  sectors written
        11  time spent writing (ms)
        12  I/Os currently in progress
        13  time spent doing I/Os (ms)
        14  weighted time spent doing I/Os (ms)
    =====================================
        ...

또한 iostats.rst몇 마디 더. 그러나 f.f.의 정확한 의미를 말하기는 여전히 어렵습니다. 이 측정항목:

11  time spent writing (ms)

iostats.rst에서:

Field 10 --# of milliseconds spent doing I/Os (unsigned int)
    This field increases so long as field 9 is nonzero.
    Since 5.0 this field counts jiffies when at least one request was
    started or completed. If request runs more than 2 jiffies then some
    I/O time might be not accounted in case of concurrent requests.

그러나 내 4코어 CPU VM에서 이 값을 초당보면 fe 4Gb 파일을 복사하는 동안 이 값이 100000ms 이상증가(증가)합니다.
HDD/SSD(SATA? 버스에 따라 다름?) 여러 CPU 코어 요청을 병렬로 처리할 수 있습니다.
4코어 CPU에서 이 카운터의 100000ms 증가는 초당 [모든 CPU 코어의 요청에 대해 최소 25초] 서비스를 제공하는 HDD/SDD를 나타냅니다. 또는 2개 코어에서 50초(초당) 또는 1개 코어에서 100초(초당).

상식적으로 1초보다 더 많은 시간을 일할 수는 없습니다.

관련 게시물:

나는 그것을 재현하지 못했습니다. 2개의 프로세스(2코어 프로세서에서)의 디스크에서 dd를 수행하면 최대 1004ms/1s를 얻고 sleep(1) 시스템 호출로 만든 1s 루프가 충분히 정확하지 않다고 생각합니다. Linux 4.9 소스에서 보고된 시간 100% 이상을 피하기 위해 주의를 기울였다는 의견이 있습니다. 1초 이내에 설명되어 사용률이 100%를 초과했습니다. 이를 처리하기 위해 [...]."

Frédéric Loyer2021-10-16 01:30:10

커널 버전(4.19, 5.0, 5.10 등)과 아키텍처(PC, ARM 등)의 이름을 알려주시겠습니까?

Binarus2021-10-16 01:30:10

@Binarus 질문을 업데이트했습니다.

z0lupka2021-10-16 01:30:10

알겠습니다. 업데이트해주셔서 감사합니다. VM의 커널은 꽤 오래되었습니다. 맞습니다. 카운터는 1000/초 이상 증가하지 않아야 합니다. 대충 추측해보면 게스트의 가상 디스크 드라이버가 해당 통계를 올바르게 보고하는 데 문제가 있거나 VM이 타이밍/인터럽트 손실 문제로 크게 고통받고 있다고 말하고 싶습니다. 이를 분석하려면 VM 및 해당 가상 디스크를 구성한 방법에 대한 자세한 지식이 필요합니다. /proc/diskstats가 호스트의 VM 가상 디스크에 대해 표시하는 내용은 흥미로울 것입니다(단순한 파일이 아닌 경우).

Binarus2021-10-16 01:30:10
  • 이전 Dolphin에서 디렉토리 전환 시 큰 지연
  • 다음 linux : ACK 번호 이해