转载来源:http://www.linuxidc.com/Linux/2013-12/93747.htm

  • tmpfs介绍

  tmpfs是一种虚拟内存文件系统,而不是块设备。是基于内存的文件系统,创建时不需要使用mkfs等初始化
  它最大的特点就是它的存储空间在VM(virtual memory),VM是由linux内核里面的vm子系统管理的。
  linux下面VM的大小由RM(Real Memory)和swap组成,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 资源。

  Swap是通过硬盘虚拟出来的内存空间,因此它的读写速度相对RM(Real

Memory)要慢许多,当一个进程申请一定数量的内存时,如内核的vm子系统发现没有足够的RM时,就会把RM里面的一些不常用的数据交换到Swap里面,如果需要重新使用这些数据再把它们从Swap交换到RM里面。如果有足够大的物理内存,可以不划分Swap分区。

  关于SWAP的增加详见:  点击打开链接 http://www.linuxidc.com/Linux/2013-12/93746.htm

  • tmpfs有没有缺点呢?

    当然有,由于它的数据是在VM里面,因此断电或者你卸载它之后,数据就会立即丢失,这也许就是它叫tmpfs的原故。不过这其实不能说是缺点。那tmpfs到底有什么用呢?

  • 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/fstab
LABEL=/ / 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的空间。转载

【服务器环境搭建-Centos】tmpfs,【转载】的更多相关文章

  1. 【服务器环境搭建-Centos】jdk的安装

    1.查看是否已安装openjdk 使用rpm命令查看是否已安装openjdk[root@linuxidc ~]# rpm -qa | grep java tzdata-java-2012c-.el6. ...

  2. 【服务器环境搭建-Centos】Nginx1.9.9 安装(编译源码)

    nginx官网不同版本下载地址:http://nginx.org/download/ 我使用的是nginx-1.9.8.tar.gz 安装其他支持软件 可以使用rpm –q xxx   查询库是否已经 ...

  3. 【服务器环境搭建-Centos】常用系统命令篇

    uname -a 查看系统信息

  4. 【服务器环境搭建-Centos】Nginx1.9.9 配置启用 --待续

    1.worker_processes worker_processes 4;## 4核,所以设置4个 worker_cpu_affinity 0001 0010 0100 1000; nginx在启动 ...

  5. 【服务器环境搭建-Centos】系统分区 待续

    df命令查看,显示/dev/vda,而不是sda或hda ,为什么? 虚拟机为了提升性能,一般使用virtio作为磁盘驱动,在虚拟机里面磁盘会显示成vda而不是传统的sda,有什么办法可以让他显示成s ...

  6. CentOS下Web服务器环境搭建LNMP一键安装包

    CentOS下Web服务器环境搭建LNMP一键安装包 时间:2014-09-04 00:50来源:osyunwei.com 作者:osyunwei.com 举报 点击:3797次 最新版本:lnmp- ...

  7. centos 7.3 服务器环境搭建——MySQL 安装和配置

    centos 7.3 服务器环境搭建——MySQL 安装和配置服务器信息如下:服务器:阿里云系统 centos 7.3 (阿里云该版本最新系统)mysql版本:5.7.18 (当前时间最新版本)连接服 ...

  8. python服务器环境搭建(1)——本地服务器准备

    去年十月底到新公司上班,由于公司旧系统存在各种问题同时不便于扩展,而公司领导对17年寄予很大的期望,用户量.收入要上一个新台阶,我经过全面评估后,决定全部用python重构过,开发一个基于微服务架构的 ...

  9. LNAMP服务器环境搭建(手动编译安装)

    LNAMP服务器环境搭建(手动编译安装) 一.准备材料 阿里云主机一台,操作系统CentOS 6.5 64位 lnamp.zip包(包含搭建环境所需要的所有软件) http://123.56.144. ...

随机推荐

  1. 20151224001 GridView 多按钮的各种使用方法

    <asp:GridView ID="GridView1"                 runat="server" AllowPaging=" ...

  2. unity替换mesh测试

    直接替换SkinnedMeshRender的Mesh,实现所谓断肢效果(不过最近发现,绑定多mesh似乎更好实现这样的效果.有时间准备写一篇): 只要不改变两个Mesh原始文件的层级,就不会出现权重的 ...

  3. JS中innerHTML 和innerText和value的区别

    (1)innerHTML 和innerText和value的区别: innerHTML innerText是对非表单元素进行操作的. value是对表单元素进行操作的. (2)innerHTML 和i ...

  4. activiti学习总结

    Activiti界面元素的使用总结 一.图形设计中元素的使用 1.SequenceFlow:连接线,可以连接两个任务,来管理流程实例的流向 -----General -----id:流程的id,用与程 ...

  5. QCom MSM MDP显示驱动一些点的简记

    简要记录了Qualcom MSM8xxx MDP Framebuffer驱动中的一些点. Framebuffer设备的sysfs 330static int msm_fb_create_sysfs(s ...

  6. 我的android学习经历20

    WebView的使用 WebView既可以和Intent一样实现界面跳转一样,让系统浏览器打开页面,也可以在应用程序中打开页面 注意用WebView时,需要注册网络服务 代码如下: package c ...

  7. js写个日历

    其实我是一个对时间和日期不怎么感兴趣的人,小学的时候感觉时间或者日期那块就让我很晕,因为有时候是100进制有时候是60进制,搞的我对日历一直很不感兴趣,最近不知道为什么想写一个日历了,可想而知,这个玩 ...

  8. MyBatis 内连接association 左外连接collection

    前提条件: 学生表 (多  子表) 年级表(一  主表) 1,第一种情况:先查子表所有 student.sql.xml文件如何配 由于有多表连接,无法把查询结果直接封装成一个实体对象--------& ...

  9. Hibernate——基础及XML配置

    1.入门 hibernate是跟数据库打交道的,一般跟数据库打交道的都不简单 原始.底层直接的一些操作.编码量比较大.费时.用框架高效 把原来一点一点实现的东西,现在给个半成品,不用在这上边发时间,把 ...

  10. hdu 3054 Fibonacci 找循环节的公式题

    Fibonacci Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Proble ...