LINUX下tmpfs介紹及使用
tmpfs介紹
tmpfs是一種虛擬記憶體檔案系統,而不是塊裝置。是基於記憶體的檔案系統,建立時不需要使用mkfs等初始化它最大的特點就是它的儲存空間在VM(virtual memory),VM是由linux核心裡面的vm子系統管理的。
linux下面VM的大小由RM(Real Memory)和swap組成,RM的大小就是實體記憶體的大小,而Swap的大小是由自己決定的。
Swap是通過硬碟虛擬出來的記憶體空間,因此它的讀寫速度相對RM(Real Memory)要慢許多,當一個程式申請一定數量的記憶體時,如核心的vm子系統發現沒有足夠的RM時,就會把RM裡面的一些不常用的資料交換到Swap裡面,如果需要重新使用這些資料再把它們從Swap交換到RM裡面。如果有足夠大的實體記憶體,可以不劃分Swap分割槽。
關於SWAP的增加詳見:http://blog.csdn.net/haibusuanyun/article/details/16336593點選開啟連結
VM由RM+Swap兩部分組成,因此tmpfs最大的儲存空間可達(The size of RM + The size of Swap)。 但是對於tmpfs本身而言,它並不知道自己使用的空間是RM還是Swap,這一切都是由核心的vm子系統管理的。
tmpfs預設的大小是RM的一半,假如你的實體記憶體是1024M,那麼tmpfs預設的大小就是512M
一般情況下,是配置的小於實體記憶體大小的。
tmpfs配置的大小並不會真正的佔用這塊記憶體,如果/dev/shm/下沒有任何檔案,它佔用的記憶體實際上就是0位元組;如果它最大為1G,裡頭放有100M檔案,那剩餘的900M仍然可為其它應用程式所使用,但它所佔用的100M記憶體,是不會被系統回收重新劃分的。
當刪除tmpfs中檔案,tmpfs 檔案系統驅動程式會動態地減小檔案系統並釋放 VM 資源。
#########################
tmpfs的用途
例如:Oracle 中的Automatic Memory Management特性就使用了/dev/shm。
LINUX中可以把一些程式的臨時檔案放置在tmpfs中,利用tmpfs比硬碟速度快的特點提升系統效能。
調整tmpfs大小大致有以下三種方法:
1.直接掛載到需要的目錄--比如系統的臨時目錄-可以根據實際需要掛載某個程式的臨時檔案的目錄
[root@bys3 ~]# mount -t tmpfs -o size=20m tmpfs /tmp[root@bys3 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 16G 10G 4.7G 69% /
/dev/sda1 99M 21M 74M 22% /boot
tmpfs 502M 0 502M 0% /dev/shm
tmpfs 20M 0 20M 0% /tmp
由於沒有掛載之前/tmp目錄下的檔案也許正在被使用,因此掛載之後系統也許有的程式不能正常工作。可以寫入/etc/fstab,這樣重啟後也有效。
2./etc/fstab檔案來修改/dev/shm的容量(增加size=100M選項即可),修改後,重新掛載即可:
[root@bys3 ~]# cat /etc/fstabLABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults,size=600M 0 0
tmpfs /tmp tmpfs defaults,size=25M 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
LABEL=SWAP-sda3 swap swap defaults 0 0
/dev/sda5 swap swap defaults 0 0
[root@bys3 ~]# mount -a --測試/etc/fstab無錯誤,重啟OS系統
[oracle@bys3 ~]$ df -h --重啟後的資訊如下,tmpfs檔案系統的對應條目已經改變為配置的
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 16G 10G 4.7G 69% /
/dev/sda1 99M 21M 74M 22% /boot
tmpfs 600M 0 600M 0% /dev/shm
tmpfs 25M 0 25M 0% /tmp
3./dev/shm建一個tmp目前,並與/tmp繫結。 --這方法有點煩瑣,不如方法1方便快捷。
[root@bys3 ~]# mkdir /dev/shm/tmp[root@bys3 ~]# chmod 1777 /dev/shm/tmp
[root@bys3 ~]# mount --bind /dev/shm/tmp /tmp -注意mount --bind 這裡bind前是兩個-
[root@bys3 ~]# ls -ld /tmp
drwxrwxrwt 2 root root 40 Dec 8 12:15 /tmp
[root@bys3 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 16G 10G 4.7G 69% /
/dev/sda1 99M 21M 74M 22% /boot
tmpfs 600M 0 600M 0% /dev/shm
tmpfs 600M 0 600M 0% /tmp ----可以看到/tmp使用到了 /dev/shm的空間。
相關文章
- Docker基本介紹及使用Docker
- Gin框架介紹及使用框架
- Linux下ulimit命令的詳細使用介紹LinuxMIT
- Linux下安裝與使用MySQL詳細介紹LinuxMySql
- Mysql各版本介紹及下載MySql
- JEB工具的介紹及使用
- Tomcat 介紹及使用教程Tomcat
- Swagger介紹及使用Swagger
- Lombok介紹及使用方法Lombok
- linux使用者及組相關檔案介紹Linux
- Linux下udev詳細介紹Linuxdev
- Lombok介紹,使用方法及原理Lombok
- Ldd命令介紹及使用方法
- Python APScheduler介紹及使用Python
- linux 下增加硬碟簡單介紹Linux硬碟
- Linux下的目錄介紹(轉)Linux
- Linux下的目錄介紹(zt)Linux
- Linux 下各資料夾的結構說明及用途介紹Linux
- Linux之cat的使用介紹Linux
- 【Linux】jq 命令介紹和使用Linux
- Linux AVG ANTIVIRUS FREE使用介紹Linux
- JavaScript FormData的詳細介紹及使用JavaScriptORM
- Golang指標基本介紹及使用案例Golang指標
- 簡單介紹nginx反向代理及使用Nginx
- Android Transition框架介紹及使用教程Android框架
- 官方壓測工具mysqlslap介紹及使用MySql
- netcat 命令介紹及使用示例
- Linux下C開發工具介紹(轉)Linux
- Django-中介軟體的介紹及使用Django
- (7)Spring Boot Starter的介紹及使用Spring Boot
- JDK中內嵌JS引擎介紹及使用JDKJS
- Metal 系列教程(1)- Metal 介紹及基本使用
- [原創]zabbix工具介紹,安裝及使用
- Python greenlet使用介紹及實現原理Python
- TCP/UDP簡單介紹及JavaSocket的使用TCPUDPJava
- 介紹下NginxNginx
- [原創]Linux下網路效能測試Netperf工具介紹及安裝Linux
- Linux 下主要叢集 軟體(Cluster) 介紹Linux