当前位置: 主页 > 性能调优 >

linux服务器速度提升之tmpfs配置

时间:2013-05-21 10:04来源:www.80sa.org 作者:admin 点击:
/dev/shm详解2011-12-31 /dev/shm是linux下的一块共享内存结构用来存储进程间通讯时的一些共享数据结构 我们在df -h命令的时候会发现有一行挂载目录很奇怪 /dev/sda5 122G 7.4G 108G 7% /home tmpfs 1.
欢迎大家分享自己的文档,请点击查阅:分享方法,Linux系统运维
如果你喜欢这文章,可以点击文章结尾处百度分享,分享到你的各种社区收藏,或推荐给朋友……


/dev/shm详解2011-12-31
 
/dev/shm是linux下的一块共享内存结构用来存储进程间通讯时的一些共享数据结构
 
我们在df -h命令的时候会发现有一行挂载目录很奇怪
/dev/sda5       122G  7.4G  108G   7% /home
tmpfs           1.8G     0  1.8G   0% /dev/shm
我们看到了/dev/shm的格式为:tmpfs,所以得先了解一下tmpfs系统
tmpfs是一种基于内存的文件系统,也就是tmpfs文件系统能直接存取内存,因此/dev/shm就像普
通的分区一样,他已经格式化成了tmpfs文件系统,我们可以直接操作,和ramdisk不同,ramdisk
是块设备,需要格式化(mkfs)后才能用.tmpfs同时能使用内存(RAM)虚拟内存(swap),也就是这
种文件系统最大只能是内存大小+SWAP大小.
 
我们完全可以自己际创建tmpfs格式的分区,命令如下:
mkdir -p /mnt/tmpfs
mount tmpfs /mnt/tmpfs -t tmpfs,意思是把tmpfs文件系统挂在/mnt/tmpfs上
一个分区就是一个文件系统,我们在对比一下
 
mount tmpfs /mnt/tmpfs -t tmpfs
mount /dev/sda5 /home -t ext3
 
df -h
/dev/sda5             122G  7.4G  108G   7% /home
tmpfs                 1.8G     0  1.8G   0% /dev/shm
 
看到了吗,tmpfs和/dev/sda5是“一样”的
 
默认情况下tmpfs的大小是物理内存的一半,且默认挂在在了/dev/shm目录上
 
由此可见tmpfs文件系统有很大的优势:
1,动态调整文件系统大小,合理分配RAM和swap的占用情况(这里仅仅是tmpfs使用的部分,它既可以使用RAM也可以使用SWAP)
2,速度极快,毫无疑问,直接存取内存的当然非常快
 
好到这里,我们知道了/dev/shm是什么了吧,它可不是块设备哦它仅仅是个目录而已
我们进去看看就知道了
ll -/dev | grep shm
drwxrwxrwt 2 root root         40 Jan 24 02:57 shm
看到了"d"了吗,/dev/shm就是个目录,只不过它通过tmpfs直接操作内存了
 
总结一下:
tmpfs是一个可以直接操作内存的文件系统,是基于内存的
/dev/shm就是一个普通的目录,只不过他默认是挂在tmpfs目录的
 
我们完全可以更改这个两个默认熟悉
我编辑fstab
vi /etc/fstab
看到下面一行:
tmpfs                   /dev/shm                tmpfs   defaults        0 0
我们可以改成:
tmpfs                   /dev/shm                tmpfs   defaults,size=1G        0 0
 
重新mount /dev/shm使之生效
mount -o remount /dev/shm
df -h 看看大小是否更改呢
 
-----------好了所有的理论就到这里了---------------
 
一,加速squid,想必大家都知道squid的瓶颈大多在磁盘的I/O上,现在内存廉价,我们可以用密集型内存架构来补充磁盘的速度慢的缺点
具体方法如下:
 
首先在/dev/shm建个tmp文件夹,然后与实际/tmp绑定
mkdir -p /dev/shm/tmp
chmod 777 /dev/shm/tmp
mount --bind /dev/shm/tmp /tmp
 
squid的缓存目录设置
vi /etc/squid/squid.conf
修改成
cache_dir ufs /tmp 256 16 256
这里的第一个256表示使用256M内存
 
然后重启一下服务,这是缓冲的目录就到/tmp里面了
当然内存有易失性,所以,重启后很多数据都会重新缓存,但服务器一般也不会重启吧
二,加速PHP的 session
道理一样,PHP调整SESSION的地方在php.ini
session.save_path = "/tmp"
其他还有好多应用呢,例如oracle等待,都可以通过tmpfs来加速,但是前提是不要把重要数据放在这里,切忌!
 

转载请注明linux系统运维
http://www.linuxyw.com/linux/tiaoyou/20130521/420.html

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
栏目列表
推荐内容