728x90
반응형
CentOS 리눅스 디스크 속도 측정 / hdparm
서버를 운영하다보면 디스크의 성능을 측정해야할 때가 있습니다. 이 때 간단히 사용할 수 있는 명령어로 hdparm
가 있습니다. hdparm
은 원래 리눅스에서 하드디스크의 하드웨어 매개변수(절전관리, 드라이브 캐시 등)를 설정할 수 있는 명령어인데 성능 테스트의 목적으로도 사용 될 수 있습니다.
다양한 옵션이 존재하지만 임의로 설정할 시 어떠한 문제가 생길지 예상할 수 없으므로 되도록이면 성능 측정에만 이용하도록 해야겠습니다.
hdparm
의 옵션항목은 다음과 같습니다.
Options:
-a Get/set fs readahead
-A Get/set the drive look-ahead flag (0/1)
-b Get/set bus state (0 == off, 1 == on, 2 == tristate)
-B Set Advanced Power Management setting (1-255)
-c Get/set IDE 32-bit IO setting
-C Check drive power mode status
-d Get/set using_dma flag
-D Enable/disable drive defect management
-E Set cd/dvd drive speed
-f Flush buffer cache for device on exit
-F Flush drive write cache
-g Display drive geometry
-h Display terse usage information
-H Read temperature from drive (Hitachi only)
-i Display drive identification
-I Detailed/current information directly from drive
-J Get/set Western DIgital "Idle3" timeout for a WDC "Green" drive (DANGEROUS)
-k Get/set keep_settings_over_reset flag (0/1)
-K Set drive keep_features_over_reset flag (0/1)
-L Set drive doorlock (0/1) (removable harddisks only)
-m Get/set multiple sector count
-M Get/set acoustic management (0-254, 128: quiet, 254: fast)
-n Get/set ignore-write-errors flag (0/1)
-N Get/set max visible number of sectors (HPA) (VERY DANGEROUS)
-p Set PIO mode on IDE interface chipset (0,1,2,3,4,...)
-P Set drive prefetch count
-q Change next setting quietly
-Q Get/set DMA queue_depth (if supported)
-r Get/set device readonly flag (DANGEROUS to set)
-R Get/set device write-read-verify flag
-s Set power-up in standby flag (0/1) (DANGEROUS)
-S Set standby (spindown) timeout
-t Perform device read timings
-T Perform cache read timings
-u Get/set unmaskirq flag (0/1)
-U Obsolete
-v Use defaults; same as -acdgkmur for IDE drives
-V Display program version and exit immediately
-w Perform device reset (DANGEROUS)
-W Get/set drive write-caching flag (0/1)
-x Obsolete
-X Set IDE xfer mode (DANGEROUS)
-y Put drive in standby mode
-Y Put drive to sleep
-z Re-read partition table
-Z Disable Seagate auto-powersaving mode
--dco-freeze Freeze/lock current device configuration until next power cycle
--dco-identify Read/dump device configuration identify data
--dco-restore Reset device configuration back to factory defaults
--direct Use O_DIRECT to bypass page cache for timings
--drq-hsm-error Crash system with a "stuck DRQ" error (VERY DANGEROUS)
--fallocate Create a file without writing data to disk
--fibmap Show device extents (and fragmentation) for a file
--fwdownload Download firmware file to drive (EXTREMELY DANGEROUS)
--fwdownload-mode3 Download firmware using min-size segments (EXTREMELY DANGEROUS)
--fwdownload-mode3-max Download firmware using max-size segments (EXTREMELY DANGEROUS)
--fwdownload-mode7 Download firmware using a single segment (EXTREMELY DANGEROUS)
--idle-immediate Idle drive immediately
--idle-unload Idle immediately and unload heads
--Istdin Read identify data from stdin as ASCII hex
--Istdout Write identify data to stdout as ASCII hex
--make-bad-sector Deliberately corrupt a sector directly on the media (VERY DANGEROUS)
--offset use with -t, to begin timings at given offset (in GiB) from start of drive
--prefer-ata12 Use 12-byte (instead of 16-byte) SAT commands when possible
--read-sector Read and dump (in hex) a sector directly from the media
--repair-sector Alias for the --write-sector option (VERY DANGEROUS)
--security-help Display help for ATA security commands
--trim-sector-ranges Tell SSD firmware to discard unneeded data sectors: lba:count ..
--trim-sector-ranges-stdin Same as above, but reads lba:count pairs from stdin
--verbose Display extra diagnostics from some commands
--write-sector Repair/overwrite a (possibly bad) sector directly on the media (VERY DANGEROUS)
성능 측정
hdparm
을 이용해 성능측정을 할때 사용하는 많이 사용하는 옵션 중 -T
와 -t
가 있습니다. 각각 -t
는 캐쉬에 버퍼링 되지 않는 데이터의 read 속도를 측정하며 -T
는 캐쉬된 데이터의 read속도를 측정합니다.
먼저 -t
옵션으로 캐쉬되지 않은 디스크 데이터의 read속도를 측정해 보았습니다.
[root@localhost ~]# hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 570 MB in 3.01 seconds = 189.53 MB/sec
제가 사용하는 서버 기준 초당 약 189MB의 read속도를 보이고 있습니다.
다음은 -T
옵션으로 캐쉬된 데이터의 read속도를 측정해 보았습니다.
[root@localhost ~]# hdparm -T /dev/sda
/dev/sda:
Timing cached reads: 16300 MB in 2.00 seconds = 8161.14 MB/sec
캐쉬된 데이터는 주로 메인메모리에 상주하기 때문에 비교가 안될 정도로 빠른 속도를 보여주고 있습니다. 초당 약 8161MB의 속도를 보여주고 있습니다.
이렇게 hdparm
으로 디스크의 read속도를 측정해 볼 수 있었습니다. 하지만 이 속도는 시스템의 상황에 따라 크게 달라질 수 있으며 절대적인 기준으로 삼는데는 무리가 있습니다. 하지만 간단히 대략적인 성능을 알고자 할 때는 유용한 것 같습니다.
참고
728x90
반응형
'개발 > Linux' 카테고리의 다른 글
CentOS7 exFAT 파일시스템 마운트하기 / exfat-utils fuse-exfat (0) | 2020.08.28 |
---|---|
CentOS7 호스트네임(hostname) 변경 / hostnamectl (0) | 2020.07.29 |
라즈베리파이 펌웨어 업데이트하기 (0) | 2020.06.13 |
리눅스에서 SSD / HDD(하드디스크) 구분하기 (0) | 2020.06.09 |
libvirt 자주 쓰는 명령어 정리 virsh (0) | 2020.05.08 |
댓글