linux shm性能,使用linux的/dev/shm增强性能

一、简介:

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等同步和在系统重启前触发脚本同步等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值