NVMe SSD에 대한 Fio 벤치마크에서 완료 지연 시간이 다른 원인은 무엇입니까?

NVMe SSD에 대한 Fio 벤치마크에서 완료 지연 시간이 다른 원인은 무엇입니까?

NVMe SSD에 대한 fio 벤치마크의 완료 대기 시간을 계산하려고 합니다.

fio에서 벤치마크를 테스트하기 위해 다음 fio 스크립트를 만들었습니다.

다음 옵션을 사용했습니다.

rw=read, ioengine=sync, direct=1

그래서 마무리 시간에 변화를 가져올 수 있는 것이 많지 않다고 생각합니다.

그러나 결과는 내가 기대했던 것과 달랐습니다.

여기에 이미지 설명을 입력하세요.

결과는 1번째 : 11us ~ 99.99번째 : 111us 입니다.

동기식 읽기는 뛰어난 IO를 생성하지 않으므로 모든 I/O가 순차적으로 처리됩니다.

direct 옵션은 운영 체제의 버퍼를 우회합니다.

대부분의 지연은 동일하다고 생각합니다.

이 결과에 대해 어떻게 생각하시나요?

답변1

당신이 말하는거야마이크로여기에는 초, 11마이크로초, 111마이크로초가 있습니다. 이렇게 민감한 내용을 읽는 데에는 많은 시간이 걸리지 않습니다.

  • 서버가 일반 크론 작업을 수행해야 할 때라고 생각하고 일부 I/O를 다른 프로세스만큼 빠르게 처리할 수 없기 때문에 fio 프로세스가 CPU 리소스를 많이 사용하고 있습니다.
  • 일부 I/O는 일종의 SSD 캐시에 있지만 나중에 I/O는 실제로 캐시 외부에서 가져와야 합니다.
  • 일부 I/O 읽기는 다른 순서로 기록되고 다시 읽혀집니다(예, 작성된 순서대로 다시 읽는 것이 SSD의 경우 더 좋습니다).
  • 다른 요인으로 인해 동일한 장치에 대한 I/O가 결정됩니다.

등.

귀하는 전체 작업을 포함하지 않았으므로(작업에서 또 무엇을 설정했는지 궁금하게 만드는 설정을 한 것을 알 수 있습니다 iodepth=16) 답변에 대해 너무 많은 것을 요구하고 있습니다. 그러나 나는 판독값의 95%가 3 이내에 있다는 점을 지적하고 싶습니다.마이크로서로 몇 초 간격이므로 백만 개 미만의 I/O에서 이상값이 너무 많이 표시되지 않습니다. 비실시간 시스템이 얼마나 결정적이라고 생각하시나요?

관련 정보