728x90
반응형
hdparm
◆시스템에 장착된 하드디스크의 설정을 확인하거나 하드디스크의 설정을 하고자 할 때에 사용하는 명령어
◆IDE 또는 SCSI하드디스크의 ACCESS속도를 측정할 때에 많이 사용
◆ 명령어위치 : /sbin/hdparm
hdparm명령어로 버퍼링되어 있지않은 데이터의 디스크 ACCESS 속도 체크하기
[root@bible root]# hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 64 MB in 0.99 seconds = 64.65 MB/sec [root@bible root]# |
SCSI하드디스크의 경우 실제로 디스크에 존재하는 데이터를 읽는 속도는 초당 약64MB
IDE디스크의 속도 체크
[root@ bible root]# hdparm -t /dev/hda /dev/hda: Timing buffered disk reads: 64 MB in 2.42 seconds = 26.45 MB/sec |
IDE디스크의 경우 실제로 디스크에 존재하는 데이터를 읽는 속도는 초당 약26MB임을 알수 있음
◆ 위의 두가지 테스트로 인하여 각각의 하드디스크의 속도를 체크
◆ SCSI하드디스크가 IDE하드디스크보다는 데이터의 읽은 속도에 있어서 현저하게 높은 성능을 나타내고 있다는 것도 알 수 있음
(위의 예는 디스크에 존재하는 데이터 가운데 버퍼링이 되어 있지 않은 데이터를 대상으로 점검한 것)
hdparm명령어로 버퍼링되어 있는 데이터와 되어있지않는 데이터의 ACCESS 속도 비교하기
◆ 캐쉬에 버퍼링되어 있는 데이터를 읽는다면 실제 속도는 엄청나게 빨라질 것
◆ 캐쉬에 저장된 데이터를 읽는다는 것은 실제로 디스크에서 읽어오는 것이 아니라 캐쉬메모리에서 읽어오기 때문
◆ SCSI디스크의 캐쉬에 버퍼링되어 있는 데이터와 실제 디스크에서 데이터의 읽는 속도를 각각 비교한 예
[root@ bible root]# hdparm -tT /dev/sda /dev/sda: Timing buffer-cache reads: 128 MB in 0.58 seconds =220.69 MB/sec Timing buffered disk reads: 64 MB in 0.97 seconds = 65.98 MB/sec [root@ bible root]# |
캐쉬에 버퍼링되어 있는 데이터(T옵션)를 읽을 때에는 초당 약 220MB
실제로 디스크에서 데이터(t옵션)를 읽어오는 속도는 초당 약 65MB
이 예에서 캐쉬메모리가 시스템의 속도에 얼마나 막대한 영향력을 행사하는가를 알 수 있음
IDE디스크의 캐쉬에 버퍼링되어 있는 데이터와 실제 디스크의 읽는 속도를 각각 비교한 예
[root@ bible root]# hdparm -tT /dev/hda /dev/hda: Timing buffer-cache reads: 128 MB in 0.59 seconds =216.95 MB/sec Timing buffered disk reads: 64 MB in 2.48 seconds = 25.81 MB/sec [root@ bible root]# |
◆이번 IDE디스크의 경우 캐쉬에 버퍼링되어 있는 데이터(T옵션)를 읽을 때에는 초당 약 216MB를 읽을 수 있으며 실제로 디스크에서 데이터(t옵션)를 읽어오는 속도는 초당 약 25MB임을 알 수 있음
◆ 이번 예에서도 캐쉬메모리가 시스템의 속도에 얼마나 막대한 영향력을 행사하는가를 알 수 있음
◆ 그리고 앞의 예와 비교해 보시면 당연히 SCSI하드디스크가 IDE보다는 성능이 뛰어남을 알 수 있음
hdparm명령어로 CD-ROM드라이브의 읽는속도 테스트하기
◆ CD-ROM드라이브의 읽는 속도를 다음과 같이 확인
◆ CD-ROM드라이브의 장치명이 /dev/cdrom이므로 아래와 같이 점검
[root@bible root]# hdparm -t /dev/cdrom /dev/cdrom: Timing buffered disk reads: 64 MB in 14.77 seconds = 4.33 MB/sec [root@bible root]# |
리눅스 시스템에 장착되어 있는 CD-ROM드라이브는 초당 약 4MB의 속도로 데이터를 읽을 수 있음
#hdparm으로 테스트한 결과값이 절대값이라고는 생각하시면 안됨#
옵션
-a
파일 시스템의 미리 읽기(read-ahead) 섹터 수의 정보를 보여주거나 정할수 있습니다.
이 옵션으로 큰 화일이 연속되는 경우의 성능이 증대될수 있으며, 그것은 실행중인 작업이 필요하게 되는 예상의 추가적인 블럭을 미 리 가져 옴으로써 성능을 증대시킵니다
-A
IDE 장치의 미리 읽기(read-lookahead) 기능을 on/off 할수 있습니다. (대개 기본적으로 기능이 켜져(ON) 있습니다).
-c
(E)IDE 장치의 32-bit 입출력(I/O) 기능을 켜거나 알아볼수 있습니다.
이 옵션에서 숫자로 32-bit 입출력(I/O)을 조정할수 있습니다:
32-bit 입출력(I/O)를 끄려면 0
32-bit 입출력(I/O)를 켜려면 1
여러 칩셋에서 요구되는 특별한 동기 배열(syncsequence)을 포함한 32-bit 입출력(I/O)를 켜려면 3
이 값(3) 은 거의 모든 32-bit IDE 칩셋에서 동작하지만, 좀 더 부담(overhead)를 줄수 있습니다.
-C
IDE 장치의 전원 모드 상태를 검사합니다. 이것은 항상 이 중 하나의 상태가 될 것 입니다.
unknown (장치가 이 명령어를 지원하지 않습니다.)
active/idle (보통 상태입니다.)
standby (저 전력 상태입니다. 장치의 모터 회전이 멈춥니다.)
sleeping (장치가 완전히 정지합니다.).
-S,-y,-Y,-Z 옵션으로 IDE 장치의 전원 모드를 조정 할 수 있습니다.
-d
장치의 직접 메모리 접근(DMA) 옵션을 켜거나 끌수 있습니다.
-E
CD-ROM의 속도를 설정합니다.
이것은 CD-ROM이 자동적으로 속도를 바꾸기 때문에 일반적으로 필요한 옵션은 아닙니다.
-f
장치가 나갈때 버퍼 캐쉬(buffer cache)를 동기화 시키고 비웁니다.
이 동작은 또한 -t 와 -T 옵션이 동작할때 같이 실행됩니다.
-g
장치의 구조 (실린더, 헤드, 섹터), 장치의 크기 (섹터), 그리고 장치의 시작 변위(offset) (섹터)를 장치의
시작부분에서 표시합니다.
-h
사용 방법을 간결하게 표시합니다.
-i
가능하다면 부트 시간에 얻을수 있는 확인 정보를 표시합니다.
이것은 지금의 IDE 장치의 특징이고, 오래된 장치에서는 아마 지원하지 않을 것 입니다.
-I
장치로 부터 직접 어떠한 변화나 수정이 없는 본래의 확인 정보를 요청합니다.
-k
장치의 리셋에도 셋팅을 유지하는 옵션(keep_settings_over_rest)을 설정하거나 보여줍니다.
-K
리셋에도 특징을 유지하는 옵션(keep_features_over_reset)을 설정합니다.
모든 장치가 이것을 지원하는 것은 아닙니다.
-L
장치의 도어락을 설정합니다.
이 옵션을 으로 설정하므로써 도어락을 풀 수 있습니다. 일반적으로 리눅스는 디스크 사용에 따라 도어락을 자동적으로 유지합니다.
-m
장치의 다중 섹터 입출력(I/O)을 위해 섹터 수를 설정하거나 정보를 알아냅니다.
이 옵션을 끄기 위해서는 0 을 사용합니다.
-P
장치의 내부적인 선전달(prefetch) 구조를 위한 최대 섹터 수를 설정합니다.
모든 장치가 이 기능을 지원하는 것은 아닙니다.
-q
이어지는 옵션을 화면에는 출력하지 않습니다.
이것은 /etc/rc.d/rc.local 에서 실행될 때 화면의 출력을 줄여서 유용합니다.
이것은 -i 옵션 -v 옵션 -t 옵션 -T 옵션에는 적용되지 않습니다.
-r
장치의 읽기 전용(read-only)을 설정하거나 정보를 얻습니다. 설정할때, 이 장치의 쓰기는 허가되지 않습니다.
-S
드라이브의 standby (spindown) 시간을 설정합니다.
이 수치는 드라이브에게 전원 절약을 위해 스핀들 모터를 멈출때 까지 얼마나 기다릴 것인가를 결정하게 됩니다.
이런 상황에서 드라이브는 연속되는 디스크 접근에 반응하기 위해 30초정도 걸릴 것 이지만 대부분의 드라이브는 더 빠릅니다.
timeout 수치는 좀 특이합니다.
* 1-240까지는 5초 단위로 증가하고 (결국 5초부터 20분까지),
* 241~251까지는 30분 단위로 증가(30분에서 5.5시간까지에 해당)합니다.
* 252는 21분을 의미하고
* 253은 특별히 제조사에서 설정한 값으로 8시간에서 12시간사이의 timeout 시간.
* 254는 다른 설정값을 위해서 남겨져 있고
* 마지막으로 255는 21분 15초
-T
비교를 목적으로 벤치마크를 위해 캐쉬를 읽는 시간을 잽니다.
정확한 결과를 위해 이것을 적어도 수 메가 바이트의 메모리 자원이 남은 상태의 사용하지 않는 시스템에서 2-3번 정도 반복해서 수행합니다.
이 옵션은 디스크 접근(access)없이 리눅스 버퍼 캐쉬로 부터 직접적으로 읽어오는 속도를 표시해줍니다.
이 측정법은 본래 테스트 상태의 시스템의 프로세서, 캐쉬, 메모리의 결과물의 표시입니다.
-t 옵션과 같이 사용한다면, 수정된 요인에 기초한 -T 의 결과에 -t 의 결과를 함께 보고할 것 입니다.
-t
비교를 목적으로 벤치마크를 위해 장치를 읽는 시간을 잽니다.
정확한 결과를 위해 이것을 적어도 수 메가 바이트의 메모리 자원이 남은 상태의 사용하지 않는 시스템에서 2-3번 정도 반복해서 수행합니다.
이 옵션은 어떠한 사전의 캐쉬가 되지 않은 데이터를 디스크에서 버퍼 캐쉬를 통해 읽는 속도를 표시합니다.
이 측정법은 리눅스에서 파일시스템의 어떠한 부담을 주지않고 얼마나 빠르게 드라이브가 연속되는 데이터를 지속적으로 읽을수 있는지의 표시입니다.
정확한 측정법을 확실히 하기 위해서는, BLKFLSBUF ioctl 를 사용하여 -t 가 수행되는 동안 버퍼 캐쉬가 비워져야 합니다. -T 옵션과 같이 사용한다면, 수정된 요인에 기초한 -T 의 결과에 -t 의 결과를 함께 보고할 것 입니다.
-u
장치의 interrupt-unmask 를 설정하거나 정보를 얻습니다.
이 옵션을 1 로 설정할 경우 장치에게 디스크의 인터럽트가 진행되는 동안 다른 인터럽트를 unmask 하도록 허락합니다. 이것은 리눅스의 반응성을 크게 증가시키고 "serial port overrun" 에러를 제거합니다. 이 기능을 사용할때는 주의하십시오: 어떤 드라이브/콘트롤러 조합은 이 기능이 켜졌을때(enable) 입출력(I/O) 대기시간이 증가하는 것에 관대하지 않을수 있습니다.
결과적으로 파일시스템을 크게 손상시킵니다. 특별히 CMD-640B 와 RZ1000 (E)IDE 인터페이스는 커널 2.0.13 이전 버젼에서는 이 옵션이 사용될 때 신뢰할수 없습니다.
이전 버젼의 커널을 사용 할때 이런 문제를 고치기 위해서는 IDE prefetch 기능을 이런 인터페이스 에서 꺼 주시길 바랍니다.
-v
-i 옵션을 제외하고 모든 셋팅을 표시합니다.( IDE 에서는 -acdgkmnru , SCSI 에서는 -gr , XT 에서는 -adgr 과 같습니다.)
또한 이것은 특별히 어떠한 옵션도 주지 않았을때 기본 동작입니다.
-W
IDE 드라이브의 쓰기-캐쉬(write-caching) 기능을 끄거나 켭니다.( 대개 기본적으로 꺼져(OFF) 있습니다.)
-X
새로운 (E)IDE/ATA2 드라이브를 위해 IDE 전송 모드를 설정합니다.
-y
강제로 IDE 드라이브를 신속히 저 전력 소모의 standby 모드로 들어가게 합니다.
대개는 스핀들 모터를 멈추게 합니다. 현재 전원 모드 상태는 -C 옵션에서 체크할 수 있습니다.
-Y
강제로 IDE 드라이브를 신속히 가장 적은 전력을 소모하는 sleep 모드로 들어갑니다.
완전히 shut down을 합니다. 드라이브가 다시 접근(access)할수 있으려면 하드 혹은 소프트 리셋이 필요합니다.
(리눅스 IDE 드라이버는 필요할 때 자동적으로 리셋을 조절합니다.)
현재 전원 모드 상태는 -C 옵션에서 체크할 수 있습니다.
-Z
불편한 시간에 idle/spin-down 을 막기위해 Seagate 드라이브의 자동 전력-보호 기능을 끕니다.
반응형
'Linux' 카테고리의 다른 글
Linux fsck (0) | 2018.08.08 |
---|---|
Linux badblocks (0) | 2018.08.08 |
Linux smartctl (0) | 2018.08.08 |
Linux tune2fs (0) | 2018.08.08 |
Linux LVM 명령어 리스트 (0) | 2018.08.08 |