Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4176730
  • 博文数量: 601
  • 博客积分: 15410
  • 博客等级: 上将
  • 技术积分: 6884
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-16 08:11
个人简介

独学而无友,则孤陋而寡闻!

文章分类

全部博文(601)

文章存档

2020年(1)

2018年(4)

2017年(7)

2016年(42)

2015年(25)

2014年(15)

2013年(36)

2012年(46)

2011年(117)

2010年(148)

2009年(82)

2008年(37)

2007年(41)

分类: Python/Ruby

2011-05-30 08:30:38

一、配置

  1、分层:Xcache将缓存对象分为两类:php代码和php变量,前者在xcache.ini中只是单纯的xcache前缀,后者则用xcache_var前缀,两个对象可以独立调整。

  2、配置说明:
  1. xcache.admin.user string
  2.  //"验证名."
  3. xcache.admin.pass string
  4. //"md5 后的验证密码, 亦即 md5(您的密码), 留空则禁用管理页面."
  5. xcache.test string
  6. //"仅在测试一些功能的时候才启用. 如果您不知道这个功能的作用, 则您不需要知道."
  7. xcache.coredump_directory string
  8. //"设置在 crash (SIGSEGV/SIGABRT) 时保存 core dump 文件的路径. 留空则禁止, 或者设置为类似 "/tmp/phpcore/" 的目录. 确保这个路径可以被 php 写入文件. (与 open_basedir 无关)."
  9. xcache.admin.enable_auth string
  10. //"如果你打算自己处理验证, 用这个选项禁止 HTTP 验证功能. 值得注意的是任意 vhost 用户都可以安装一个 XCache admin 页面, 如果禁止了内建 HTTP 验证, 则他们亦不需要权限即可访问管理页面. 出于安全考虑, 您应该尽量考虑保留 XCache 内建验证功能, 针对 XCache admin 页面特定地址取消网页服务器的 mod_auth //这个选项仅在 1.2.x 系列有作用, 起始版本 1.2.1"

  11. /* XCache Cacher */

  12. xcache.cacher boolean
  13. // 使用/不使用 opcode 缓存器. xcache.size = 0 时无效.
  14. xcache.size int
  15. //0 禁止, 非 0 则启用缓存器. 请注意您系统所允许的 mmap 最大值.
  16. xcache.count int
  17. //指定将 cache 切分成多少块. 参考 SplittedCache,官方文档是说一般跟CPU的数目相同,实际操作中,跟fcgi-php的数目相同???(没有求证,因为设置为CPU的数目,比如说2,则只有两个进程的内存增加,每个php-cgi的内存占用不平衡。)
  18. xcache.slots size
  19. //只是作为 hash 槽个数的参考值, 您可以放心地缓冲超过这个个数的项目.
  20. xcache.ttl seconds
  21. //设置缓冲项目的 Ttl (Time To Live), 0=永不过期.
  22. xcache.gc_interval seconds
  23. //检查过期项目, 回收内存空间的间隔.
  24. xcache.var_size int
  25. xcache.var_count int
  26. xcache.var_slots size
  27. xcache.var_gc_interval seconds
  28. //同上, 不过用于数据缓冲而不是 opcode 缓冲.
  29. xcache.var_ttl seconds
  30. //xcache_(get|set|inc|dec) 等的默认 ttl 值.
  31. xcache.var_maxttl seconds
  32. //最大 ttl 值, 程序无法指定超过这个最大值的 ttl.
  33. xcache.readonly_protection boolean
  34. //如果启用了 ReadonlyProtection, 将会略微降低性能, 但是会提高一定的安全系数. 这个选项对于 xcache.mmap_path = /dev/zero 无效.
  35. xcache.mmap_path string
  36. 对于 *nix, xcache.mmap_path 是 文件路径, 不是目录. 对于 Win32, xcache.mmap_path //只是匿名的 map, 不是实际的文件路径. 如果您要启用 ReadonlyProtection 请用类似 "/tmp/xcache" 的路径. 2 组 php 不该共用同一个路径 (/dev/zero 除外).

  37. /* XCache Optimizer */
  38. //Name Default Changeable

  39. xcache.optimizer boolean
  40. //启用优化器 (目前无效).

 3、最重要的参数是xcache.var_size和xcache.size,可以根据内存设置,但是在top中,内存占用直接多出来很多,比如都设置了为256M,则php-cgi的占用就在530M左右,基本的php大约10-15M,加上512M,就快到530了。

 4、admin配置后,可以使用xcache自带的admin程序。

二、函数说明:

1、数据函数()
mixed xcache_get(string name)
bool xcache_set(string name, mixed value [, int ttl])
bool xcache_isset(string name)
bool xcache_unset(string name)
bool xcache_unset_by_prefix(string prefix)
    //低版本没有这个函数,使用之前要测试一下
 
int xcache_inc(string name [, int value [, int ttl]])
   //自增函数,value为步长,如果没有初始化,则默认为零,ttl为过期时间
  
int xcache_dec(string name [, int value [, int ttl]])
   //自减函数,同上


    注意:xcache不能存放对象、资源等内容。

2、管理函数:
int xcache_count(int type)
//type值定义为宏,返回值为把指定的共享内存分为多少份,见xcache.count配置参数
    XC_TYPE_PHP:  Cache Type = php opcode     XC_TYPE_VAR: Cache Type = variable data array xcache_info(int type, int id)
//返回值:为数组:
  1. array(16) {
  2.   ["slots"]=>   //slots值
  3.   int(65536)
  4.   ["compiling"]=>
  5.   int(0)
  6.   ["misses"]=>  //失误
  7.   int(0)
  8.   ["hits"]=>   //命中
  9.   int(0)
  10.   ["clogs"]=> 
  11.   int(0)
  12.   ["ooms"]=>
  13.   int(1)
  14.   ["errors"]=>  //错误
  15.   int(0)
  16.   ["cached"]=>  //缓存
  17.   int(78)
  18.   ["deleted"]=>  //
  19.   int(0)
  20.   ["gc"]=>
  21.   int(6)
  22.   ["hits_by_hour"]=>  //最近24小时的命中数
  23.   array(24) {
  24.     [0]=>
  25.     int(0)
  26.     [1]=>
  27.     int(0)
  28.     [2]=>
  29.     int(0)
  30.     [3]=>
  31.     int(0)
  32.     [4]=>
  33.     int(0)
  34.     [5]=>
  35.     int(0)
  36.     [6]=>
  37.     int(0)
  38.     [7]=>
  39.     int(0)
  40.     [8]=>
  41.     int(0)
  42.     [9]=>
  43.     int(0)
  44.     [10]=>
  45.     int(0)
  46.     [11]=>
  47.     int(0)
  48.     [12]=>
  49.     int(0)
  50.     [13]=>
  51.     int(0)
  52.     [14]=>
  53.     int(0)
  54.     [15]=>
  55.     int(0)
  56.     [16]=>
  57.     int(0)
  58.     [17]=>
  59.     int(0)
  60.     [18]=>
  61.     int(0)
  62.     [19]=>
  63.     int(0)
  64.     [20]=>
  65.     int(0)
  66.     [21]=>
  67.     int(0)
  68.     [22]=>
  69.     int(0)
  70.     [23]=>
  71.     int(0)
  72.   }
  73.   ["hits_by_second"]=>  //最近5秒钟的命中数
  74.   array(5) {
  75.     [0]=>
  76.     int(0)
  77.     [1]=>
  78.     int(0)
  79.     [2]=>
  80.     int(0)
  81.     [3]=>
  82.     int(0)
  83.     [4]=>
  84.     int(0)
  85.   }
  86.   ["size"]=>     //共享内存大小,仅此count的,不是所有
  87.   int(134217728)
  88.   ["avail"]=>    //可用内存大小
  89.   int(125642656)
  90.   ["can_readonly"]=>
  91.   bool(false)
  92.   ["free_blocks"]=>
  93.   array(1) {
  94.     [0]=>
  95.     array(2) {
  96.       ["size"]=>   //空闲块链首
  97.       int(125642656)
  98.       ["offset"]=>
  99.       int(8575064)
  100.     }
  101.   }
  102. }

array xcache_list(int type, int id)
//返回值:
  1. array(2) {
  2.   ["cache_list"]=> //缓存列表
  3.  array(78) {
  4.     [0]=>
  5.     array(7) {
  6.       ["size"]=>  //大小
  7.       int(107952)
  8.       ["refcount"]=> //引用次数
  9.       int(0)
  10.       ["hits"]=>     //命中次数
  11.       int(0)
  12.       ["ctime"]=>     //创建时间
  13.       int(1306710407)
  14.       ["atime"]=>     //存在时间
  15.       int(1306710407)
  16.       ["hvalue"]=>
  17.       int(1257)
  18.       ["name"]=>     //名称
  19.       string(9) "my_var100"
  20.     }
  21.     [1]=> ......

  22.  ["deleted_list"]=> //删除列表
  23.   array(0) {
  24.   }
  25. }

void xcache_clear_cache(int type, int id)
string xcache_coredump(int op_type)


三、
  1. Cache 帮助

  2. 槽:
  3.    Hash 槽个数, 对应 php.ini 里的设置
  4. 大小:
  5.    共享内存区大小, 单位: 字节
  6. 剩余:
  7.    可用内存, 对应共享内存区的剩余内存字节数
  8. %:
  9.    百分比, 条状显示可用内存的比例
  10. 清除:
  11.    清除按钮, 点击按钮清除对应共享内存区的数据
  12. 编译中:
  13.    编译标记, 当共享内存区正在编译 php 脚本时标记为 "yes"
  14. 命中:
  15.    共享内存命中次数, 命中=从该共享内存载入php或者变量
  16. 错过:
  17.    共享内存错过次数, 错过=请求的php或者变量并不在该共享内存内
  18. 阻塞:
  19.    编译阻塞跳过, 阻塞=当需该共享内存区负责编译时, 其他进程/现成无法访问此共享内存. 跳过=XCache 自动判断阻塞的共享内存区自动跳过阻塞等待, 直接使用非共享内存方式继续处理请求
  20. 内存不足:
  21.    内存不足次数, 显示需要存储新数据但是共享内存区内存不足的次数. 如果出现太频繁请考虑加大配置中的 xcache.size 或者 xcache.var_size
  22. 错误:
  23.    编译错误, 显示您的脚本被编译时出错的次数. 如果您发现这个数字不断增长, 您应该检查什么脚本产生错误. 参考 ini.error-log and ini.display-errors
  24. 保护:
  25.    显示该 Cache 是否支持并启用 readonly_protection
  26. 缓冲:
  27.    共享内存于该共享内存区的项目条数
  28. 待删:
  29.    共享内存区内将要删除的项目 (已经删除但是还被某些进程占用)
  30. GC:
  31.    垃圾回收的倒计时
  32. 空闲块:
  33.    共享内存区内的空闲内存块

  34. List 帮助

  35. 项目:
  36.    项目名或者文件名
  37. 命中:
  38.    该项目被命中的次数 (从共享内存区载入)
  39. 引用数:
  40.    项目依然被其他进程占据的引用次数
  41. 大小:
  42.    项目在共享内存里占用字节数
  43. 源大小:
  44.    源文件大小
  45. 修改:
  46.    源文件最后修改时间
  47. 设备:
  48.    源文件所在设备ID
  49. Inode:
  50.    源文件的inode
  51. 访问:
  52.    最后访问该项目的时间
  53. 创建:
  54.    该项目被创建于共享内的时间

四、Coverager Functions和
阅读(9552) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~