hdparm 최적의 옵션은 무엇입니까?

beprog의 이미지

얼마전 '리눅스가 느리다'라는 주제의 글들을 보다가 hdparm이란 걸 알게 되었습니다. 제 컴퓨터도 조금 더 빠르게 할 수 있을까 하고 hdparm 맨페이지를 보는데 조금 불안했습니다. 잘 알지도 못하면서 건드려서 리눅스를 다시 깔아야 하는 불상사가 생기지나 않을까 하는 생각이 들더군요. 뭐.. 약간의 귀차니즘도 부인할 수는 없을 것 같습니다만.. :wink:

제 컴퓨터에 꼭 맞는 hdparm설정에 대한 질문입니다. 2D, 3D 가속을 말씀하시던데 그 방법도 좀 알려주세요.

Quote:

# hdparm /dev/hda

/dev/hda:
multcount = 16 (on)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 9729/255/63, sectors = 156301488, start = 0

# hdparm -i /dev/hda

/dev/hda:

Model=ST380021A, FwRev=3.75, SerialNo=3HV4EK9B
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=unknown, BuffSize=2048kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=156301488
IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
AdvancedPM=no WriteCache=enabled
Drive conforms to: device does not report version: 1 2 3 4 5

700메가 짜리 영화파일을 다른 파티션으로 카피했더니 67초가 걸리네요. 10MByte/s가 맞는 것 같습니다. 더 빠르게 가능할까요?

제 컴 사양:
1.7 셀러론
DDR 256
80G HDD
Gforce4 mmx400
LG 32X10X40X CD-RW
samsung DVD-ROM

RH9씁니다.

dmesg 에서 눈에 띄는 것들을 모았습니다.

Quote:

# dmesg
...
0MB HIGHMEM available.
255MB LOWMEM available.
...
Kernel command line: ro root=LABEL=/ hdc=ide-scsi
ide_setup: hdc=ide-scsi
Initializing CPU#0
Detected 1691.161 MHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 3368.55 BogoMIPS
...
CPU: Trace cache: 12K uops, L1 D cache: 8K
CPU: L2 cache: 128K
...
CPU: Intel(R) Celeron(R) CPU 1.70GHz stepping 03
...
PCI: PCI BIOS revision 2.10 entry at 0xfb1a0, last bus=2
PCI: Using configuration type 1
PCI: Probing PCI hardware
...
Uniform Multi-Platform E-IDE driver Revision: 7.00beta-2.4
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ICH2: IDE controller at PCI slot 00:1f.1
ICH2: chipset revision 5
ICH2: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA
hda: ST380021A, ATA DISK drive
blk: queue c03c9f40, I/O limit 4095Mb (mask 0xffffffff)
hdc: HL-DT-ST GCE-8321B, ATAPI CD/DVD-ROM drive
hdd: SAMSUNG DVD-ROM SD-616Q, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: host protected area => 1
hda: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=9729/255/63, UDMA(100)
ide-floppy driver 0.99.newide
Partition check:
hda: hda1 hda2 hda3 < hda5 hda6 hda7 hda8 hda9 hda10 hda11 hda12 hda13 hda14 > hda4
ide-floppy driver 0.99.newide
...
hdd: ATAPI 48X DVD-ROM drive, 512kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.12
SCSI subsystem driver Revision: 1.00
scsi0 : SCSI host adapter emulation for IDE ATAPI devices
Vendor: HL-DT-ST Model: CD-RW GCE-8321B Rev: 1.04
Type: CD-ROM ANSI SCSI revision: 02
parport0: PC-style at 0x378 [PCSPP,TRISTATE]
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0
sr0: scsi3-mmc drive: 40x/40x writer cd/rw xa/form2 cdda tray
icmplayer의 이미지

Seagate 바라쿠다 하드를 사용하시는 것 같은데, 저도 그 하드 사용하고 있거든요 ^^.
그 10 mb/s 는 파티션 두개가 하나의 하드있어서 느리게 나온거겠죠. 이 경우엔 해드가 자주 움직여야 되서 느리거든요.
DANGEROUS나 EXPERIMENTAL이라고 되있는건 삼가 하시고 테스트 해보세요.
-c 옵션으로 IO_support옵션을 32Bit로 바꿔 주시던가
-m 옵션으로 멀티플 섹터 카운트를 올려 주시던지... 이런 식으로 시작해보세요. man페이지 보시면 '5-50%까지 속도 향상가능 / 30-50%까지 CPU 오버해드를 줄여줌'.
속도가 향상 되었나 보시려면:

# hdparm -t /dev/hdg
/dev/hdg:
 Timing buffered disk reads:  64 MB in  2.49 seconds = 25.70 MB/sec

제 컴퓨터 사양은 D-PII-350MHz에다 Promise IDE 컨트롤러 (UDMA66)를 달은건데 내장형(UDMA33)에선 같은 하드로 15.5 mb/s정도 나옴니다.
이 결과를 보면 어떤 컨트롤러를 쓰는 지에도 속도차이가 많은 것 같네요.
beprog의 이미지

-t 옵션으로 테스트 해봤습니다.
40.25 MB/sec 에서 40.51 MB/sec나옵니다.
-m 옵션을 16까지 다양하게 설정해서 테스트 해보고 -a 옵션을 0~8까지 해서 테스트 해봤습니다. 그런데 속도에 변화가 없네요.. :(

익명 사용자의 이미지

서지훈의 이미지

Quote:
Hard Drive 빠르게 만들기

사용할 명령어는 hdparm 입니다.

man page를 보시면 아시겠지만, 하드디스크의 다양한 입출력 컨드롤을 명령행에서 제공해 주는 명령입니다.

좀 오래된 하드디스크는 300%, 그리고, 최신 모델인 경우에는 700% 까지도 하드디스크 Access속도를 높여준다니 다같이 해보겠습니다.

hdparm 명령을 사용하려면, root 로 login 해야 합니다. 그리고, 아무도 사용하지 않는 상태에서 작업을 합니다. 단, SCSI 하드는 지원을 하지 않는다는군요. 뭐, 나쁜일이 생길지도 모른다니, 용감한 분은 해보시구요.

먼저, 현재 32-bit I/O(off 상태에서는 16-bit)와 DMA 지원 모드가 turm on 상태인지 확인하기 위해 다음과 같은 옵션으로 명령을 실행합니다.

#hdparm -c -d /dev/hda

초기 인스톨 후 아무것도 해주지 않았다면, setting 값이 0으로 나왔을 것입니다. 즉, turn off, 꺼져있다는 뜻입니다.

자, 다음으로는 나중의 값과 비교해 보기 위한 하드디스크 벤치마크를 해보겠습니다.

#hdparm -t /dev/hda

저는, 이런 결과가 나옵니다. 결과가 나오기까지 10초 정도 시간이 걸리는군요.

/dev/hda

Timing buffered disk reads: 64 MB in 13.02 seconds = 4.92 MB/sec

결과값이야 시스템의 성능에 따라 다르게 나올 것입니다.

자, 이제 DMA와 32-bit access 모드를 켜보겠습니다.

#hdparm -c 1 -d 1 /dev/hda

결과 값 확인은 아까와 똑 같이…

#hdparm -t /dev/hda

저의 결과값은 이렇게 나왔습니다.

/dev/hda

Timing buffered disk reads: 64 MB in 2.22 seconds = 28.83 MB/sec

대략 7배 정도 속도가 향상되었습니다. 정말 훌륭히 향상된 속도군요…

이것을 리부팅 후에도 지속시키려면, /etc/rc.d/rc.local 파일에 다음과 같이 적어 줍니다.

#hdparm -c 1 -d 1 -k 1 /dev/hda

설정이 끝났습니다.

어떠세요? 하드디스크를 Access하는 속도가 향상된 것이 피부에 와 닿으시나요?

하드디스크가 여러 개 있으시다면, 모두 같은 식으로 Speed Up 해보세요.

* 참고

http://www.frankenlinux.com/guides/tweaks.html

이거 몇 년전에 pcbee 에서 받은 문서 인거 같은데...
참고 들 하시길...

#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.