教学之友,学习之友。

站长教学网

当前位置: 站长教学网 > 网站编程 > PHP教程 >

PHP优化性能用linux系统/dev/shm存储Session信息

时间:2012-11-08 16:30来源:未知 作者:ken 点击:

这个方法仅适用于类Linux系统。不适用于Windows系统。通常网站都需要保存用户的会话信息,也就是Session。默认情况下,php会使用Files方式存储Session信息,这对经常有用户登录或者其它操作的大网站来说,这肯定是一个需要优化的地方。

为什么使用/dev/shm来存储?有什么好处?

/dev/shm是Linux的临时文件系统格式:tmpfs,"主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。"换句话说,你可以不用安装Memcache就可以使用内存来存储Session信息了。

好了,开始动手吧。好很简单,只需要两步:

首先,确定你的系统有/dev/shm这个目录(如果不是很特别,一般都会有的)。

 
 
 
 
 
 
df -h
  
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              20G  9.1G  9.7G  49% /
tmpfs                 512M  4.0K  512M   1% /dev/shm

如上所示,如果在Mounted on这列出来有/dev/shm就表示支持shm了。以上这个VPS的shm目录大小是512M。这个值可以手工修改大小。下面再说。

然后,修改php.ini。假设的你php.ini在/etc/php.ini

 
 
vi /etc/php.ini

找到

 
 
;session.save_path = "/tmp"

修改为:

 
 
session.save_path = "/dev/shm"

保存存并退出。

如果你是使用Nginx+php-fpm,那么你还需要重启php-fpm

 
 
php-fpm restart

注意哦,php-fpm reload是不行的,一定要restart.

好了,就是这样啦。

对了,说下如何手工调整/dev/shm大小,下面的例子演示把/dev/shm大小修改为1G:

 
 
 
 
 
 
vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=1024M 0 0
  
umount /dev/shm
mount /dev/shm

常见的还有其它的方式,如:使用数据库存储Session,DZ就是这样做的,如果使用数据库存储的话,建议SESSION表使用内存表。还有一种方式就是使用Memcached了。

(责任编辑:ken)
TAG标签: php Session 缓存
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容