Linux

리눅스에서 하드디스크 Reading 속도 올리기

aucd29 2013. 9. 26. 20:47
리눅스에서 하드디스크 Reading 속도 올리기

윈도우를 사용하다가 리눅스를 처음 사용해보면 뭔가 짜증나는 일이 있을 것이다.

윈도우에서는 프로그램을 실행하면 바로 팍! 팍! 뜨던 것이 리눅스에서는 왜 천천히 뜰까?

그 이유는 하드디스크의 Reading 속도에 문제가 있었던 것이다.

리눅스(6.2까지 7.0은 테스트를 아직 못했다)는 설치될 때 Default로 I/O support는 16bit 상태로 설정되고 DMA는 off 상태로 설정되기 때문에 하드디스크의 실제 성능을 발휘하지 못하는 것이다.

컴퓨터가 프로그램을 실행할 때는 하드디스크의 data를 메모리에 올려놓고 작업을 하기 때문에 하드디스크의 Reading 속도가 느리면 프로세서와 상관없이 그만큼 처리속도가 느려지는 것이다.

그래서 요즘은 울트라 DMA 100 까지 지원되는 보드와 하드디스크들이 출시되고 있다.

그럼 하드디스크의 속도를 올리기 위해서 DMA 설정을 On으로 바꿔주자

다음에 나오는 명령어들은 #(쉘 프롬프트)상에서 입력하면 된다.(당연히 루트로 작업해야 한다.)

리눅스가 마운트된 파티션이 hda라고 가정하에 설명한다. 리눅스가 hdb에 마운트된 사용자는 아래에 나오는 hda를 모두 hdb로 바꿔서 입력해야 한다.

우선 I/O support 설정이 어떻게 되어있는지 확인해보자

#hdparm -c /dev/hda(#은 쉘 프롬프트를 가리킨다)

위와 같이 입력하면 아래와 같이 나올것이다.

/dev/hda:
I/O support = 0 (default 16-bit)
[root@mysql /root]# hdparm -d /dev/hda

위와 같이 나오면 I/O suppot는 off 상태

/dev/hda I/O support = 1 (32bit)

위와 같이 나오면 I/O support는 on인 상태

다음으로 DMA 설정을 확인해보자

쉘 프롬프트상에서 아래와 같이 입력한다.

#hdparm -d /dev/hda

위와 같이 입력했으면 아래와 같이 나온다

/dev/hda:
using_dma = 1 (on) 또는 0 (off)

(DMA가 off 상태이면 0이 on 상태이면 1이 된다 on 상태로 나오는 분은 설정할 필요가 없다)

마지막으로 현재 하드디스크의 Reading속도를 확인해 보자

쉘 프롬프트상에서 다음과 같이 입력하자

#hdparm -t /dev/hda

위와 같이 입력했으면 다음과 같이 속도 정보가 나온다

/dev/hda

(이 text가 나타나고 조금 기다려야 아래와 같이 속도체크 결과가 나타나기 때문에 조금 기다려야 한다. 1시간을 기다려도 아래와 같은 텍스트가 나오지 않는다면 자기 컴퓨터를 의심해 보라.)

Timing buffered disk reads: 64 MB in 19.33 seconds = 3.31 MB/sec

(위의 19.33seconds 는 제가 DMA 설정을 하기 전의 체크결과이다. 설정후의 체크결과는 6.61seconds(초)정도가 나왔다. 그만큼 빨라진다는 야그다.)

그럼 이제 설정을 바꿔보자

쉘 프롬프트상에서 아래와 같이 입력한다.

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

위와 같이 입력했으면 아래와 같은 설정 text들이 나타날것이다.

/dev/hda:
setting 32-bit I/O support flag to 1
setting using_dma to 1 (on)
I/O support = 1 (32-bit)
using_dma    = 1 (on)


이제 설정이 끝났습니다.

그리고 부팅될 때마다 자동으로 위 명령을 실행해주기 위해서 /etc/rc.d/rc.local파일의 마지막줄에 다음과 같이 추가한다.

hdparm -c 1 -d 1 /dev/hda


설정된 것을 확인해 보자

쉘 프롬프트상에서 다음과 같이 입력하자

#hdparm -t /dev/hda

위와 같이 입력했으면 좀더 향상된 결과가 나타날 것이다.
/dev/hda:
Timing buffered disk reads: 64 MB in 6.61 seconds = 9.68 MB/sec

위에서 보듯이 제 경우는 3배 이상 빨라졌다.

hdparm 명령에 대해 더 알고 싶으면 man hdparm을 입력해서 도움말을 보기바란다.