SharedIT | 묻고 답하기(AMP)

디스크 read/write IO

OS 단에서 디스크 IO rate 체크하는 툴들이 많이 있는데요.


디스크 타입별로 당연히 퍼포먼스들이 다 다르겠지만..(SAS, SATA, SSD, NVMe 등등)

read/write rate에 대해서 부하가 있다 없다를 판단하려면 어떤 수치들을 비교해봐야하나요?


예를들어서 intel 240GB SSD 6Gb/s 제품이라고 치면,

read, write 퍼포먼스는 어느정도로 이해하면 되는지와 해당 수치 대비하여 OS에서 찍히는 rate 값들을 모니터링할 때 어떻게 판단을 하면 될까요?


Tags : 태그가 없습니다.

6개의 답변이 있습니다.

deerokgo
  0 추천 | 일 년 이상 전

DISK I/O는 읽고 쓰는 대상이 되는 데이터에 따라서 판단을 해야 합니다. 

Block 단위로 체크 해야 하는지

File 단위로 체크해야 하는 지에 따라

I/O 체크 방법과 결과 판단을 달리 해야 합니다

명동쓰레빠
  0 추천 | 일 년 이상 전

디스크 I/O 을 비교한다고 해도 수치일 뿐일것 같네요 

제조사에서 테스트 한결과이고 실제 런닝시는 환경에 따라 다를수 있으니

topkslee
  0 추천 | 일 년 이상 전

말씀하신 read, write IO 값으로 퍼포먼스를 알기는 어렵습니다.

disk type, disk interface가 어떤종류에 따라 값이 다르고 실시간으로 계속 변하기때문에

판단하기 어렵습니다.

먼저 전체적인 io 모니터링하면서 io 수치가 좋지 않으면 topdown 방식으로 내려가면서

보시는게 좋습니다.


disk IO는 모니터링 툴은 여러가지가 있습니다.

iotop, iostat, vmstat, top...

iostat 에서 %util 100%에 가까울수록 한계값이 가깝다고 보시면 됩니다.

그리고 %iowait 값이 높아질수록 좋지 않구요. 이 값은 (1/core수)*100 보다 높으면 안되구요.

이런 수치가 좋지 않다면 disk 단위로 모니터링하면서 topdown으로 내려가면서

원인을 찾으시는게 도움되십니다.

Genghis Khan
  0 추천 | 일 년 이상 전

서비스를 위해 disk iops를 체크하죠

여유율이 중요합니다

read/write에 모니텅링 수치를 보고 확인하고

초당 mb 데이터 넘기는 속도도 체크 해야합니다

Simon.Park
  0 추천 | 일 년 이상 전

디스크의 성능을 판가름 하는데는 어려움이 많이 있습니다. 

읽기 & 쓰기의 Throughput (MB/s) 을 가지고 이 디스크(SAS, SSD 등)의 성능이 좋다 나쁘다 

판단하기가 어려운 점은, 디스크 마다 최대 Throughput 이 다르기 때문이죠.

그리고, I/O 를 어떻게 일으키느냐에 따라서 성능은 천차 만별입니다.

Sequential 하게 I/O 를 일으키느냐, Random 하게 I/O를 일으키느냐,

Block 의 크기가 4k, 8k, 16k 등 I/O를 일으키는 단위에 따라서도 성능이 다르구요.

그렇기 때문에 Throughput 에 대해서는 해당 디스크의 최대 Throughput 가 얼마냐는

최대 성능만으로 해당 디스크를 판단하게 됩니다. 

그러면 디스크에 부하가 있느냐 없느냐는 어떻게 판단하느냐...

CPU와 비슷하게 Busy 율을 가지고 나타낼 수도 있구요, 

(일부 Vendor 에서는 70% 정도의 Busy율을 최대로 이 이상 넘어가면 Read/Write 속도가 

상당히 느려 진다고 판단합니다.)

그 다음은, Response Time 으로 측정을 하는데요,

Response time은 I/O 를 일으켰을때 응답 시간이라고 보시면 됩니다. 

이 시간이 짧을 수록 성능이 좋은 디스크라고 볼 수 있는데,

이 기준 또한 정량화된 숫자는 없고, Vendor 마다 평균 Response time 이 있는데,

이것을 많이 넘어 선다면 해당 디스크에 병목 현상이 발생하고 있다고 판단하시면 되겠네요.

wansoo
  0 추천 | 일 년 이상 전

read/write delay가 얼마나 걸리냐 하는걸 비교해 보면 되지 않을까 싶어 보이네요.

linux vmstat로 측정해 볼 경우에는 b ( block ) 되는 수치가 어떻게 되는지를 기준으로 삼는것도 괜찮아 보이고요.


얼마나 많은 데이터를 읽고 기록하냐는 장치 성능에 따라 다르기 때문에 부하 측정의 기준으로 삼을 수 있지는 않겠고요.