본문 바로가기

OS/Linux

IOPS(Input/Output Operations Per Second) 계산 방법

반응형

 

IOPS 계산법


초당 데이터 전송량 = IOPS * 블록크기

or

IOPS = 초당 데이터 전송량 / 블록크기

 

 

 

 

 

볼록크기(Block Size) 확인 방법


 

Linux

파일시스템이 xfs의 경우

"xfs_info /dev/sda2" 의 명령어로 "bsize=4096" 을 확인 할수 있다.(단위는 byte)

# xfs_info /dev/sda2
meta-data=/dev/sda2              isize=512    agcount=9, agsize=6422464 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=51904251, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=12543, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

 

 

파일시스템이 ext4의 경우

"tune2fs -l /dev/sda1" 의 명령어로 "Block size: 1024"을 확인 할 수 있다.(단위는 byte)

# tune2fs -l /dev/sda1
tune2fs 1.42.9 (4-Feb-2014)
F...
Filesystem OS type:       Linux
Inode count:              48768
Block count:              194560
Reserved block count:     9728
Free blocks:              146986
Free inodes:              48470
First block:              1
Block size:               1024
Fragment size:            1024
Reserved GDT blocks:      256
Blocks per group:         8192
Fragments per group:      8192
Inodes per group:         2032
Inode blocks per group:   254
RAID stride:              4
...
Inode size:	          128
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      b670d36b-18f5-4a69-8c4b-2a21284e5a5c
Journal backup:           inode blocks

 

 

 

 

windows

powershell에서

> Get-wmiObject -Class win32_volume | Select-object Label, BlockSize | Format-Table –AutoSize

Label   BlockSize
-----   ---------
             4096
             4096
새 볼륨      4096

 

 

cmd에서

"fsutil fsinfo ntfsinfo c:" 명령어로 "클러스터 당 바이트 :  4096  (4 KB)" 을 확인할 수 있다.

>fsutil fsinfo ntfsinfo c:

NTFS 볼륨 일련 번호 :        0x54e2d949e2d92fca
NTFS 버전      :                3.1
LFS 버전       :                2.0
총 섹터     :                998,302,584  (476.0 GB)
전체 클러스터    :                124,787,823  (476.0 GB)
무료 클러스터    :                103,917,421  (396.4 GB)
전체 예약 클러스터 :           1,177,984  (  4.5 GB)
저장소 예약을 위해 예약됨 :       1,167,165  (  4.5 GB)
섹터 당 바이트  :                512
실제 섹터 당 바이트 :        4096
클러스터 당 바이트 :               4096  (4 KB)
FileRecord 세그먼트 당 바이트    :  1024
FileRecord 세그먼트 당 클러스터 :  0
Mft 유효한 데이터 길이 :            836.75 MB
Mft 시작 Lcn  :                  0x00000000000c0000
Mft2 시작 Lcn :                   0x0000000000000002
Mft 구역 시작 :                   0x0000000001bf7ba0
Mft 영역 끝   :                   0x0000000001c02c00
MFT 영역 크기  :                  176.38 MB
최대 장치 자르기 익스텐트 수 :     256
최대 장치 자르기 바이트 수 :       0xffffffff
최대 볼륨 자르기 익스텐트 수 :     62
최대 볼륨 자르기 바이트 수 :       0x40000000
리소스 관리자 식별자:      88936A45-387E-11ED-BF3C-AFECC85C093D

 

 

 

 

 

SSD의 IOPS 계산


SSD 스펙으로 IOPS 계산

 

삼성전자 870 QVO (500GB) 제품을 기준으로 스펙은 아래와 같다. 

순차읽기 : 560MB/s

순차쓰기 : 530MB/s

읽기IOPS : 98K

쓰기IOPS : 88K

 

순차 읽기 속도와 Linux 4K 블록 크기를 가지고 IOPS를 계산 했을때

IOPS = 560MB/s / 4K = 140K IOPS

 

순차 쓰기 속도와 Linux 4K 블록크기를 가지고 IOPS를 계산 했을때

IOPS = 530MB/s / 4K = 132.5K IOPS

 

읽기 IOPS와 Linux 4K 블록크기를 가지고 초당 데이터 전송량을 계산 했을때

초당 데이터 전송량 = 98K * 4 = 382.8125MB/s

 

쓰기 IOPS와 Linux 4K 블록크기를 가지고 초당 데이터 전송량을 계산 했을때

초당 데이터 전송량 = 88K * 4 = 343.75MB/s

 

 

 

 

실제 OS 상에서 초당 전송속도를 기준으로 IOPS 계산

Linux 4K 에서 1.02GB 의 데이터를 복사하는데 아래와 같은 결과가 나왔다.

sent 1.02G bytes  received 35 bytes  226.78M bytes/sec

 

 

IOPS를 계산해보면

IOPS = 226.78MB/s / 4K = 56695 IOPS

 

 

 

 

참고 


블록사이즈가 클수록

전송속도 ↑

디스크 공간 가용성 ↓

 

블록사이즈가 작을 수록

전송속도 ↓

디스크 공간 가용성 ↑

 

반응형