Linux ETC

ramdisk 사용하기

2008.05.19 20:11

호스트웨이 조회 수:28093

[ramdisk 사용하기]



일반적으로 memory는 harddisk 보다 속도가 빠르다.

harddisk의 속도가 많이 빨라지긴 했지만, 아무리 빨라졌다고 해도 memory에 비해서 약 1000배 정도 속도가 느리다.

그렇다면 이렇게 빠른 속도를 내는 memory를 harddisk 처럼 사용한다면?

그렇다! 매우 높은 퍼포먼스 향상을 기대할수 있을것이다.

어떻게하면 memory를 harddisk 처럼 사용할수 있을까?

이를 ramdisk 라고 부르며, 그 사용 방법은 간단하다.

먼저 ramdisk로 만들 디렉토리를 하나 생성한다.

*)여기에서는 ramdisk 라는 이름으로 생성을 하겠다.
---------------------------------
[root@manpage root]# mkdir -p /ramdisk (/ 디렉토리에 ramdisk라는 디렉토리 생성)

[root@manpage root]# mount -t tmpfs -o size=10000k /ramdisk /ramdisk *) 10M 크기의 ramdisk를 생성한다.

[root@manpage root]# df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda5 2016016 1371640 541964 72% /
/dev/hda1 46636 19314 24914 44% /boot
none 252464 0 252464 0% /dev/shm
/dev/hda6 703596 16420 651436 3% /tmp
/dev/hda3 3020172 2534104 332648 89% /usr
/dev/hda2 3020172 1364616 1502136 48% /var
/dev/hda8 28629084 8761736 18413068 33% /home
/ramdisk 10000 0 10000 0% /ramdisk

*) 10M의 ramdisk가 생성된것을 확인
-----------------------------------
위와 같은 순서를 통해서 10M의 ramdisk를 생성하였다.

*) 10M라는것은 실제 물리적인 ram의 10M 공간을 사용하게 되는것이므로, 메모리가 충분히 있는지 확인후에 생성하기 바란다.

이제 이곳에 data를 옮겨보자!

이곳에 있는 data는 모두 실제 메모리에 올라가 있게 되므로, ramdisk안에 있는 data를 cpu가 호출하게 된다면, disk에 있을때보다 훨씬 빠른 응답속도를 받을수 있을 것이다.

reboot을 할때에도 ramdisk가 생성되게 할려면 /etc/fstab을 아래와 같이 수정해주면 된다.
-------------------------------------
/ramdisk /ramdisk tmpfs default 0 0
-------------------------------------
추가를 해주었다면 reboot이 되어도 ramdisk를 다시 사용할수 있을 것이다.

간단하게 ramdisk를 사용하는 방법을 알아 보았다.

이제 빠른 응답속도를 기대하는 곳을 ramdisk를 사용해보자.

(특히 php나 mysql의 접속이 많은 system이라면, /tmp, /var/tmp등 ramdisk로 운영을 하면 시스템 성능의 개선 효과를 기대할수 있다.)

단 주의할것은, ramdisk는 휘발성공간인 memory를 사용하기 때문에, 시스템의 전원이 공급이 되지 않으면 (reboot이나, system 전원 off) 해당 공간의 자료가 모두 사라지게 된다.

항상 ramdisk를 사용할때에는 모든 자료가 없어져도 되지만, 사용빈도가 높은 data를 위해서 사용하도록 한다.