린아저씨의 잡학사전

TMPFS(Temp File Storage)

 

tmpfs는 유닉스 계열 운영 체제의 임시 파일 스토리지(Temp File Storage) 기능을 일컫는 이름이다.

 

마운트된 파일 시스템 처럼 보이지만 영구적인 기억 장치가 아닌 휘발성 메모리에 저장 된다.

 

덜 사용되는 페이지들을 스왑공간으로 스왑 아웃 처리를 하며, 메모리 부족현상을 피하고자 올라오는 페이지의 크기와 inode를 제한한다.

(물리 RAM의 절반, RAM페이지 수의 절반)

 

간혹 메모리 영역이 부족으로 Target Error가 나면, tmpfs의 공간을 늘림으로 해결도 가능하다.

 

# mount -o remount,size=10G tmpfs

 


ramfs와 tmpfs의 차이

 

기본적으로 ramfs와 tmpfs는 몇가지 세세한 사항을 제외하고는 거의 동일하다.

 

ramdisk는 동적으로 공간을 할당한다. 그래서 ramfs에 데이터를 쓰는 작업은 스스템에서 사용가능한 메모리의 크기를 넘어가지 않도록 해야한다.

 

예를 들어 시스템에 2G의 RAM을 가지고 있고 1G의 ramfs를 생성하고 /tmp/ram의 지점에 mount 되어 있다고 하자.

 

/tmp/ram의 전체 크기가 1G를 상회할 때도 여전히 데이터를 저장할 수 있다. 시스템은 1G를 넘는 데이터 저장 행위를 멈추지 못한다.

 

그러나 시스템의 RAM의 전체 크기 2G를 넘는 데이터를 저장하게 되면 시스템은 멈추고 RAM에는 더 이상 데이터를 저장할 공간이 없어지게 된다.



tmpfs는 동적으로 공간을 할당하지 않는다. tmpfs를 mount할 때 설정한 용량을 넘어서서 데이터 저장을 허용하지 않는다. 그래서 데이터를 쓰는 작업이 용량이 넘지 않도록 신경 쓰지 않아도 된다.

 

하지만 용량을 넘어서는 작업을 하게되면 "No space left on device"라는 메시지를 내보낸다.

 

tmpfs는 swap을 사용한다. (swap은 파일 시스템의 swap 디스크를 일컷는다.)

 

ramfs는 swap을 사용하지 않는다.

 


ramfs와 tmpfs의 단점

 

ramfs와 tmpfs의 단점은 시스템이 재시동하거나 멈추게 될 떄 다 지워지게 된다. 그래서 주기적으로 disk에 저장하는 작업을 해주어야한다. 

 

Experimentation 

Tmpfs 

Ramfs

허용량이상의 데이터 쓰기

에러 메시지 

쓰기 작업 허용

고정된 총 용량

고정된 총크기

변동적인 총 크기

Swap 디스크 사용

사용

무사용

휘발성 저장

 

공유하기

facebook twitter kakaoTalk kakaostory naver band