php加速之eAccelerator

  • A+
所属分类:PHP

常见的PHP加速一般是eAccelerator,apc,xcache。apc是php官方开发的,可直接在ubuntu/debian上安装,灰常方便,根据网上的评测,效果跟eAccelerator差不多。

eAccelerator可以把编译后的php文件放在磁盘上。虽然这样做了之后效率没有直接缓存在内存上来的好,但一定比每次再重新编译一次来的速度快吧。
下面是我的eaccelerator的设置,先把最后三行注销,是因为我不知道eaccelerator它是怎么选择哪些文件放在内存里,哪些放在磁盘上,那就先让它自动处理先吧。

PS:经过我的实验,发现第一次执行的时候,效率还真的是不高,比没有缓存的速度还慢。应该也同一个小小的40K文件的php文档,缓存里个头却是300K的缘故吧。但第一次执行后,被缓存了之后,这个时候的速度就是刷刷刷,感觉好极了。(2011年8月14日)


zend_extension="/usr/lib/php5/20090626+lfs/eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/var/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="60"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.allowed_admin_path="/srv/www/sitelog/tools"
;eaccelerator.keys ="disk_only"
;eaccelerator.sessions="disk_only"
;eaccelerator.content="disk_only"

eaccelerator.shm_ttl="3600",3600秒表示生成的文件,如果在3600秒,也就是1个小时,没有被再次访问,则定义该文件为过期

eaccelerator.shm_prune_period="60", 经测试,是表示每60秒检测一次上面第一句所产生的过期文件,产生的作用是,当有新文件要缓存时,不幸此时的共享内存已经被用完,那就会删除所有显示为过期的文件,来给新的缓存文件提供共享内存。

请注意,eaccelerator还有一个apc或者xcache没有的一个大优势,就是它会把编译好的文件存储一份在磁盘缓存上,因此即便是被从共享内存中赶了出来,但它依旧能为访问者提供编译后的文件,只是相应速度上会比共享内存当中的慢那么一点点而已。

现在再来假设一种情况,test.php之前缓存过,然后由于过期,被其他文件代替而离开了共享内存。这之后,只要访问者再次访问这个文件,eaccelerator第一步会检测共享内存中是否有过期的文件可以剔除,如果有,那就意味着有剩余的共享内存,那eaccelerator就会从磁盘缓存中读取test.php重新放进共享内存中来为提供服务,反之如果没有,eaccelerator只好从硬盘缓存中读取test.php返回给访问者。

注意,这里所描述的都不涉及est.php源文件被修改的情况。一旦test.php被修改了,eaccelerator会重新为test.php编译一次,而之前旧的文件估计只能手工清除,否则会一直保存在磁盘缓存上,当然如果你觉得有必要的话,可以隔那么一两个月,在eaccelerator control panel中做一次清理。

Via:ronbin.co

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • avatar 饲料粉碎机 1

      留言留言……