티스토리 뷰
IOPS는 단위 시간(1초) 동안 디스크로부터 Input/Output을 수행한 수치를 의미한다.
즉, 초당 입출력 횟수라 볼 수 있다.
기본적으로 HDD, SSD, SAN 같은 컴퓨터 저장장치를 벤치마크 하는 데 사용하는 성능 측정 단위이기도 하다.
IOPS는 Iometer, IOzone, FIO 등 응용프로그램으로 측정할 수 있다고 한다.
IOPS를 구할 수 있는 기본 수식은 다음과 같다.
IOPS = 1000 / (Average Read Seek Time + (Maximum Rotational Latency / 2))
디스크를 읽고 쓰기 위해서 "탐색 시간 + 회전 대기 시간"이 필요하다.
이런 평균 탐색 시간을 구하고, 회전 대기 시간은 최대 값을 구해서 2로 나누는 방식으로 평균 회전 대기시간을 구한 것이다.
7200 rpm의 하드 디스크를 가지고 계산을 한번 해 보자.
rpm은 분당 회전수를 나타내므로 1분에 7200번 회전을 한다는 것이다.
그러면 1번 회전하는데 최대 걸리는 시간은 어떻게 될까?
이것이 바로 회전 대기 시간(Rotational Latency)이 된다.
1분:7200번 = x:1번
7200x = 1분
x = 1분 / 7200 = 60초 / 7200 = 60000ms / 7200
x = 8.3 ms (최대 회전 대기 시간)
만약 평균 탐색 시간이 8ms라고 가정하면
7200 rpm의 하드디스크의 IOPS는 다음과 같다.
IOPS = 1000 / (8ms + (8.3ms/2)) = 82,3
그러나 실제 IOPS의 구체적인 숫자는 프로그램에 입력한 변수에 따라 달라진다고 한다.
예를 들어, Bus의 대역폭, 사용 가능한 메모리 양, 메모리 캐시의 데이터 보유량, Utilization 고려 등도 영향을 줄 수 있기 때문이다.
IOPS를 줄이면, 단위 시간 동안 많은 양의 데이터를 한번에 전송할 수 있으므로 시스템의 응답시간을 줄일 수 있다고 한다.
'프로그래밍 > 리눅스' 카테고리의 다른 글
nohup 명령어 활용하기 (0) | 2015.07.08 |
---|---|
SSH 암호 없이 로그인 하기 (0) | 2014.03.01 |
SSH 세션을 계속 유지하기 위한 설정 (1) | 2014.02.11 |
리눅스에서 at을 활용한 예약 작업 처리하기 (0) | 2014.01.19 |
자동 배치 처리를 위한 crontab 사용법 (0) | 2012.08.07 |