tmpfs /dev/shm 이게 도데체 어떤용도의 파티션인지 한참고민하고 있었는데
역시나 검색에 잘나와아 있었다.
그런데... 문제는 2번 읽어봤는데 여전히 잘 이해가 안된다는것이댜...Orz..
과연 어떤 행간의 의미가 있는것인가... 제대로 봐야겠다.
리눅스에서는 tmpfs라는 형태의 신형 램디스크를 메커니즘을 제공한다. (커널 2.4이후)
이것은 일정크기의 램 디스크를 잡고 필요할 경우에만 램에서 공간을 할당하여 디스크로 사용된다.
즉 사용되지 않는 공간은 일반 램으로서 얼마든지 프로세스가 사용될 수 있다.
즉 2G 시스템에서 램디스크를 1.5G를 잡고 실제 디스크 사용은 0,5G를 사용한다 가정하면
기존의 램디스크시스템의 사용가능 한 메모리는 2-1.5가 된어 0.5G만큼만 사용가능하다.
그러나 새로운 방법론인 tmpfs는 2-(실제디스크사용량) = 1.5G만큼 사용해진다.
즉 디스크의 크기가 최대 크기만 지정되어 있으면 얼마든지 가변적이라는 이야기 이다.
앞으로 다른 /dev/ram을 사용하는 멍청한 램디스크는 쓸 필요가 없다.
효율적으로 메모리를 사용하는 tmpfs를 사용하는 것이 매우 효과적이라 볼 수 있다.
/etc/fstab파일을 보면
none /dev/shm tmpfs defaults 0 0
기본적으로 /dev/shm이라는 마운트 위치가 메모리파일시스템인 tmpfs로 할당되었음을 알 수있다.
옵션은 defaults로 되어 있는데 만일 크기를 변경하고자 하는 경우 defaults대신 size=1500M
를 넣으면 된다.
defaults옵션은 크기는 현재 시스템 메모리의 0.5배만큼 잡는것을 기본으로한다.
따로 명령행에서 넣고자 할 경우
mount -t tmpfs tmpfs /mount_point -o size=1500M
를 넣으면 된다.
활용처
명월이는 ram이 2G인 개발 서버를 한대 가지고 있으며 이 서버에는 자료 저장 및 인터넷 자료를
다운로드 하는 역활을 수행하고 있다. (메모리만 크다.)
여기서 1.5G를 tmpfs를 이용한 램 디스크를 사용하고있다.
그리고 samba로 다른 windows와 공유되고 있으며 nfs로 다른 유닉스들과 공유되고 있다.
그리고 다른 모든 시스템들은 임시적인파일이나 작업들을 전부 여기서 하고 있다.
장점은 전체 시스템들의 hdd의 사용량을 급격하게 줄여 시스템의 안전성이 올라간다.
HDD대신 network를 사용하는데 1G네트이기 때문에 hdd보다 느리다고 말 할 수가 없다.
초당 50Mbyte (400Mbit)정도 전송한다.
특정 시스템같은 경우 hdd를 아에 사용하지 않도록 되어 있다. 기가빗 네트워크와 원격메모리
디스크로만 되어 있다.
만일 DB를 사용한다면매우 빠른 형태의 access를 보인다.
물론 update, insert에서도 발군의 속도를 자랑하게 되지만.. 시스템 다운과 백업, 동기화의 문제가
심각하게 고려될 필요는 있다.
Oracle같은 DB를 사용한다면 굳이 램디스크를 사용하는 것 보다는 오라클 자체의 캐쉬및 메모리
관리능력을 사용하는 것이 보다 효율적이라 생각된다.
만일 고속의 응답성능을 요구하는 DB가 필요할경우 램디스크에 올라가는 DB나 혹은 메모리디비
보다는 가격이 비싸지만 인텔리전스 스토리지(EMC를 개인적 추천)를 사용을 권장한다.
물론 캐쉬용 메모리를 가득 꼽아서... 해당 SAN 전체의 속도와 시스템 신뢰성은 매우 크게
신장된다.
당연하겠지만 비싼 스토리지가 그 값어치를 분명히 한다
출처 : Tong - parkcon님의 Linux & Windows tips통
-----------------------------------------------------------
이건 IO 효율을 어떻게 올리는 메커니즘인지 어떤 상환인지...도데체...
이유를 알고 싶어효~
from 김졍균님 (http://oops.org)
커널 2.4 를 사용하신다면 /dev/shm 을 사용하면
I/O 효율을 굉장히 높힐 수 있겠죠.
/etc/rc.d/init.d 의 start 전에
if [ ! -d "/dev/shm/apachebw/master" ]; then
install -m770 -d /dev/shm/apachebw/master
chown apache.apache /dev/shm/apachebw
chown apache.apache /dev/shm/apachebw/master
fi
if [ ! -d "/dev/shm/apachebw/link" ]; then
install -m770 /dev/shm/apachebw/link
chown apache.apache /dev/shm/apachebw
chown apache.apache /dev/shm/apachebw/link
fi
과 같이 설정을 해주고, httpd.conf 의 BandWidthModul on 바로 아래에
BandWidthDataDir /dev/shm/apachebw
를 지정해 주면 아주 효율적입니다.