tmpfs使用探讨
一、 什么是tmpfs?
tmpfs是一种基于内存的文件系统,它和虚拟磁盘ramdisk比较类似,但不完全相同,和ramdisk一样,tmpfs可以使用RAM,但它也可以使用swap分区来存储。
而且传统的ramdisk是个块设备,要用mkfs来格式化它,才能真正地使用它;
ramdisk(中文名:虚拟内存盘,简称:RAM盘)是通过使用软件将RAM模拟当做硬盘来使用的一种技术。在DOS、windows下由相应的软件利用系统分配给它的内存空间来实现这种模拟,linux系统可以使用其内核支持的机制来实现。
相对于传统的硬盘文件访问来说,这种技术可以极大的提高在其上进行的文件访问的速度。但是RAM的易失性也意味着当关闭电源后的数据将会丢失,某些时候这不是问题,比如说对于一个加密文档的明文来说。
但是在一般情况下,传递到RAM盘上的数据都是在硬盘或别处永久贮存的文件的一个拷贝。经由适当的配置,可以实现当系统重启后重新建立虚拟盘。
而tmpfs是一个文件系统,并不是块设备,只是安装它,就可以使用了。
tmpfs是最好的基于RAM的文件系统。
oracle 11g引入了memory_target参数,memory_target 和 /dev/shm(即tmpfs)有紧密联系,tmpfs的大小制约了memory_target的使用范围。
二 、tmpfs优势是什么?
1. 根据需求动态调整大小
2. 速度快
三、 如何使用tmpfs?
tmpfs默认情况下会mount到/dev/shm目录下,要使用tmpfs,需要在内核配置时,启用“Virtual memory file system support”。
为了防止tmpfs使用了全部的VM,有时候要限制大小。
要创建一个最大为1G的tmpfs文件系统,输入:
mount tmpfs /dev/shm -t tmpfs -o size=1G
编辑/etc/fstab文件,添加如下内容:
tmpfs /dev/shm tmpfs size=1G
四、 扩大tmpfs
1) 查看tmpfs大小
[root@drz ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 16G 14G .7G % / tmpfs 996M 72K 996M % /dev/shm /dev/sda1 194M 34M 151M % /boot
2) 编辑/etc/fstab
## size大小必须是整数
[root@drz ~]# vi /etc/fstab tmpfs /dev/shm tmpfs defaults,size=1500M devpts /dev/pts devpts gid=,mode= sysfs /sys sysfs defaults proc /proc proc defaults /dev/sdb1 swap swap defaults /home/swapfile swap swap defaults
3)重新挂载
[root@drz ~]# mount -o remount /dev/shm
4)验证增加的大小
[root@drz ~]# df -PH Filesystem Size Used Avail Use% Mounted on /dev/sda3 17G 15G .8G % / tmpfs .6G 74k .6G % /dev/shm /dev/sda1 204M 36M 158M % /boot
五、实际应用
使用df -h命令刚才已经看到了挂载内存大小的数值,如果没有使用,是没有去真正占用的,只有真正在tmpfs存储数据了,才会去占用。
比如,tmpfs大小是499M,用了10M大小,内存里就会使用真正使用10M,剩余的489M是可以继续被服务器其他程序来使用的。
但是因为数据是在内存里,所以断电后文件会丢失,内存数据不会和硬盘中数据一样可以永久保存。
了解了tmpfs这个特性可以用来提高服务器性能,把一些对读写性能要求较高,但是数据又可以丢失的这样的数据保存在/dev/shm中,来提高访问速度。
tmpfs用途还是较广的,Linux中可以把一些程序的临时文件放置在tmpfs中,利用tmpfs比硬盘速度快的特点来提升系统性能。
比如可以用来放squid程序的缓存文件。当然,还有其他的用途,我们应该想到,tmpfs的挂载点既然能当作普通磁盘使用,也就能当作nfs的共享目录使用。
但是用tmpfs做nfs的共享需要考虑网卡速度和tmpfs读写速度二者孰为瓶颈,如果网卡速度是瓶颈,那么直接用nfs创建一个普通磁盘目录即可。
因为tmpfs重启后丢失,使用tmpfs做nfs前,须先从磁盘或用rsync从其他服务器拷贝到tmpfs里。
更新文件时,先更新磁盘上的文件,或更新rsync的源。然后设置定时进程,每分钟从磁盘或rsync里将程序同步到tmpfs即可。
tmpfs使用探讨的更多相关文章
- Android业务组件化之现状分析与探讨
前言: 从个人经历来说的话,从事APP开发这么多年来,所接触的APP的体积变得越来越大,业务的也变得越来越复杂,总来来说只有一句话:这是一个APP臃肿的时代!所以为了告别APP臃肿的时代,让我们进入一 ...
- 对CSS中的Position、Float属性的一些深入探讨
对CSS中的Position.Float属性的一些深入探讨 对于Position.Float我们在平时使用上可以说是使用频率非常高的两个CSS属性,对于这两个属性的使用上面可能大多数人存在一些模糊与不 ...
- 从EF的使用中探讨业务模型能否脱离单一存储层完全抽象存在
上次赶时间,就很流水账地写了上次项目对EF的一次实践应用模式,因为太长了,也没能探讨太多,所以再继续扩展. 这次想探讨的是,实体,如果作为类似于领域模型的业务模型存在,它的数据能否来自不同的数据源.这 ...
- 1.【使用EF Code-First方式和Fluent API来探讨EF中的关系】
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/relationship-in-entity-framework-using-code-firs ...
- 移动Web之响应式布局的探讨
响应式布局的探讨 响应式布局的两种方式 基于百分比的布局 例:Bootstrap 基于rem的布局 例:淘宝触屏版 这两种布局都需要依赖于CSS3的media query来设置布局断点(或者通过js监 ...
- tmpfs详解
一,tmpfs介绍 1. tmpfs是一种虚拟内存文件系统,正如这个定义它最大的特点就是它的存储空间在VM里面(什么是VM?后面介绍) 2. VM是由linux内核里面的vm子系统管理的东西,现在大多 ...
- ASP.NET探讨:技术的学习顺序问题
作者: シtearシ 来源: 博客园 发布时间: 2011-09-27 08:40 阅读: 7675 次 推荐: 25 原文链接 [收藏] 摘要:很多人对于ASP.NET的入门和学 ...
- 深入探讨:标签(Tag)的各种设计方案
首先,标签(Tag)是什么? 我的理解:用来具体区分某一类内容的标识,和标签类似的一个概念是分类(Category),有一个示例可以很好的区分它们两个,比如人类分为:白种人.黄种人和黑种人(可以看作分 ...
- (十六)WebGIS中偏移补偿量引发的问题之探讨
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 在上一章里讲解地图平移功能的实现时,我在最后提出了两个问题: ...
随机推荐
- Python爬虫入门教程 33-100 《海王》评论数据抓取 scrapy
1. 海王评论数据爬取前分析 海王上映了,然后口碑炸了,对咱来说,多了一个可爬可分析的电影,美哉~ 摘录一个评论 零点场刚看完,温导的电影一直很不错,无论是速7,电锯惊魂还是招魂都很棒.打斗和音效方面 ...
- Android--MP3播放器MediaPlayer
前言 Android提供了常见的音频.视频的编码.解码机制.借助于多媒体类MediaPlayer的支持,开发人员可以很方便在在应用中播放音频.视频.本篇博客主要讲解在Android平台下如何播放一个音 ...
- eclipse连接Android8.0以上手机无法打印日志的问题
概述 我的eclipse的环境: Eclipse:Eclipse IDE for Java DevelopersVersion: Luna Service Release 2 (4.4.2) Andr ...
- Java序列化和反序列化,你该知道得更多
序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通过从存储区中读取或反序列化对象的状态,重新 ...
- 剖析HBase负载均衡和性能指标
1.概述 在分布式系统中,负载均衡是一个非常重要的功能,在HBase中通过Region的数量来实现负载均衡,HBase中可以通过hbase.master.loadbalancer.class来实现自定 ...
- 【Java基础】【16List集合】
16.01_集合框架(去除ArrayList中重复字符串元素方式)(掌握) A:案例演示 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同) 思路:创建新集合方式 /** * A:案 ...
- [java]static关键字的四种用法
在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们先来了解一下stat ...
- sql删除数据库重复字段的行
要保留的数据: WITH summary AS ( SELECT p.id, p.customer, p.total, ROW_NUMBER() OVER(PARTITION BY p.custome ...
- .net 上传文件 Failed to load resource: net::ERR_CONNECTION_RESET Bug 解决
环境: .net 4.0 ashx一般处理程序 使用 html5 FormData ajax上传文件 功能如下:如果用户有登录,则对文件进行处理:如果用户没登录,则直接返回json,提示用户未登录 遇 ...
- Asp.Net MVC @Html.TextBox 只允许输入数字问题
转到Html.TextBox()看可以看出 Html.TextBox()方法,创建文本框[<input type="text"/>],并且可以带上name,value和 ...