一、简介:

linux的/dev/shm是一个使用虚拟内存的名为tmpfs的文件系统。虚拟内存资源由物理内存(RAM)和交换分区组成,这些资源是由内核中的虚拟内存子系统来负责分配和管理。/dev/shm可以设置一个最大值,默认为物理内存的一半,但是它的使用大小不是固定的,而是随着所需要的空间而动态的增减。

二、使用:

2.1 更改tmpfs的大小/inode/权限

可以通过mount来更改tmpfs的大小,使用df可以看到一个大小为1002M的tmpfs文件体系统,挂载点为/dev/shm

[root@localhost ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root 16G  9.4G  5.2G  65% /

tmpfs                1002M  100K 1002M   1% /dev/shm

/dev/sda1             485M   32M  429M   7% /boot

[root@localhost ~]# mount -o remount,nr_inodes=5k,mode=700,size=100M /dev/shm //更改tmpfs大小

nr_indoes=5K :设置tmpfs文件系统的内节点数为5k

mode=777      :设置/dev/shm目录的权限为777

size=100M      :设置tmpfs文件系统的大小为100M

我们来验证一下:

[root@localhost ~]# df -i

Filesystem            Inodes   IUsed   IFree IUse% Mounted on

/dev/mapper/VolGroup-lv_root  1022000   99150  922850   10% /

tmpfs                   5120       4    5116    1% /dev/shm    //内节点为5k

/dev/sda1             128016      38  127978    1% /boot

[root@localhost ~]# ll /dev/ |grep shm

drwxrwxrwt. 2 root root         100  6月  4 17:06 shm  //目录shm的权限为777

[root@localhost ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root 16G  9.4G  5.2G  65% /

tmpfs                 100M  100K  100M   1% /dev/shm   //tmpfs大小为100M

/dev/sda1             485M   32M  429M   7% /boot

注意,在命令行中对tmpfs所做的改动,在机器重启后会恢复为默认值,可以通过改修文件/etc/fstab中的tmpfs行来实现永久改动

2.2 /dev/shm的写入性能测试与比较:

[root@locahost ~]# dd if=/dev/zero of=/tmp/testfile bs=1MB count=1024  //ext3

1024+0 records in

1024+0 records out

1024000000 bytes (1.0 GB) copied, 2.0233 seconds, 506 MB/s

[root@locahost ~]# dd if=/dev/zero of=/dev/shm/testfile bs=1MB count=1024  //tmpfs

1024+0 records in

1024+0 records out

1024000000 bytes (1.0 GB) copied, 0.850016 seconds, 1.2 GB/s

性能的优劣从上面的测试结果已经很明显得显示出来了。

2.3 使用/dev/shm

/dev/shm使用的是内存,你可以使用它来增强像apache之类软件的性能。个人觉得,如果内存够大,只要是耗磁盘IO严重的应用都可以尝试放到tmpfs里面去。但是需要注意的是/dev/shm使用的是内存,在unmount或系统重启时,放在/dev/shm里面的内容会丢失。所以,放入tmpfs的最好是一些临时、只读文件或是一些可丢失文件,比如像/tmp目录、读操作频繁的web页面、squid缓存目录等。

如果想将一些写操作频繁的文件(如应用的日志)放到tmpfs中,那么就要考虑如何把tmpfs的内容同步到磁盘中去了,比如可以定时使用cp/sync等同步和在系统重启前触发脚本同步等。

linux dev shm 的大小,使用linux的/dev/shm增强性能相关推荐

  1. linux修改swap分区大小2GB,Linux下修改Swap分区大小

    据了解Linux下可以有两种方法创建交换空间,一种是创建交换分区,另一种是创建交换文件.本文记录的是创建交换文件的方法,因为我用的是这种方法.. 添加交换文件步骤: 1.找个地方创建一个.swap的文 ...

  2. linux空文件夹大小,[转载]linux 查看文件和文件夹大小

    Linux查看文件夹大小 du -sh 查看当前文件夹大小 du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序 附送: du -sk filename 查看指定文件大小 ...

  3. linux虚拟磁盘管理pe大小6,Linux下磁盘的高级管理——LVM逻辑卷管理

    文章目录 逻辑卷是什么 逻辑卷的原理 逻辑卷的优点 lv的管理 lv的建立 xfs格式下lvm的拉伸 ext4下lvm的拉伸和缩减 lvm快照 lvm快照的原理和作用 快照的建立 lvm的删除 逻辑卷 ...

  4. linux的每次IO大小控制,Linux优化之IO子系统监控与调优

    Linux优化之IO子系统 作为服务器主机来讲,最大的两个IO类型 : 1.磁盘IO 2.网络IO 这是我们调整最多的两个部分所在 磁盘IO是如何实现的 在内存调优中,一直在讲到为了加速性能,linu ...

  5. linux的每次IO大小控制,linux文件io缓冲

    linux文件io缓冲 出于速度和效率考虑,系统io调用(即内核)和标准 C语言库的io函数(即 stdin 函数)在操作磁盘文件时会对数据进行缓冲. read(),write()系统调用在操作磁盘文 ...

  6. linux查看编译器的大小端,Linux系统大小端判断

    大端模式 大端模式,是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中. 小端模式 小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中. 判断程序 文件: ...

  7. linux按函数数字大小排序,linux awk 数组排序多种实现方法

    复制代码代码如下: [chengmo@localhost ~]$ awk 'BEGIN{info = "this is a test";split(info,tA," & ...

  8. linux dev shm 的大小,Linux系统dev/shm大小修改

    1 概览 在Oracle 11g中如果用AMM内存管理,当MEMORY_TARGET的值大于/dev/shm的时候,会报ORA-00845: MEMORY_TARGET not supported o ...

  9. linux 增加shm 大小,Linux系统中如何修改及限制shm的大小

    在天下网吧-网吧系统-网吧天下栏目上一篇文章中,我们看到了:希望对各位网吧网管或者网吧维护,做网吧系统的各位大大有用,那么今天我们一起来看下:Linux系统中如何修改及限制shm的大小 前面的一篇文章 ...

最新文章

  1. php access增删改查,同一窗体实现增删改查
  2. zabbix 代理(agent)端详细安装配置
  3. web报表工具FineReport的公式编辑框的语法简介
  4. Java的历史和学习Java需要准备的工具
  5. 关于郑州大学校园网锐捷客户端禁止热点分享,禁止多网卡的解决办法
  6. 阿里云服务器搭建私人云盘
  7. geforce experience出现错误尝试重启PC
  8. 怎么关闭vivo系统自检_MIUI11系统已发布,你怎么能不会这个一键关闭广告的功能呢!...
  9. 【Unity2D入门教程】简单制作战机弹幕射击游戏③C#编写 子弹Laser脚本
  10. 利用Python实现词云舞蹈视频
  11. 深度学习基础 - 概率的三个公理
  12. Android,上传一张本地图片到服务器,Okhttp的post请求上传图片本地服务器
  13. C语言学习——极限值
  14. 多人网络游戏服务器开发基础学习笔记 II: 帧同步 | 游戏客户端预测原理分析 | FPS 游戏状态同步
  15. C#绘制GPS星空图
  16. PostgreSQL高可用中间件—Pgpool-Ⅱ
  17. 1812. 方形牧场
  18. php连接mysql 500错误日志_php javascript从mysql获取数据会在服务器端产生500错误
  19. 第二十章 : 正则表达式
  20. 微软浏览器Edge在虚拟机(WIN11)中打开标签栏泛白

热门文章

  1. LightOJ - 1176-Getting a T-shirt (最大流)
  2. 程序员去哪个城市工作更好?我选择深圳的几个理由
  3. iOS APP启动分析篇——启动时间测试
  4. 解决linux服务器上查看显卡(nvidia)型号问题
  5. 英语专业有必要学python吗-马哥教育官网-专业Linux培训班,Python培训机构
  6. JavaScript-关系运算符详解
  7. Win7怎么使用计划任务定时重新启动电脑
  8. 创建Chinaskills为GPO管理员;加入到企业管理、域控管理员组
  9. 拳皇(Java简单的小程序)
  10. 弘辽科技:电商巨头发力下沉市场,展开激烈“追逐战”