【问题标题】:Configuring xcache cacher配置 xcache 缓存器
【发布时间】:2013-12-03 22:57:03
【问题描述】:

我刚刚在 vps 服务器上设置了 xcache。

我的管理部分正在运行,它显示 xcache 正在运行。

不过,我对某些设置有点不确定 - documentation 并没有深入了解每个设置的含义。

可能有用的注释

  • 在当前设置中,我只对基本的操作码缓存器感兴趣,而不是 var 数据组件。

  • 该服务器是一个具有 2GB 内存的 VPS(不确定 CPU 配置,但如果知道是否重要,可以了解),它运行的是带有 cPanel/WHM 的 CentOS 5.x 操作系统。

  • 我有 root 访问权限,服务器只能托管一个网站。

php的版本是:

PHP 5.4.21 (cli) (built: Nov 15 2013 10:15:53) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with XCache v3.0.3, Copyright (c) 2005-2013, by mOo
    with XCache Cacher v3.0.3, Copyright (c) 2005-2013, by mOo

问题 1

安装的默认设置有:

xcache.shm_scheme = mmap
xcache.mmap_path = /dev/zero

为什么 mmap_path 设置为 /dev/zero?这不是否定了整个事情吗?是否应该设置为固定的文件路径。

问题 2

其他“大小”设置是:

cache.size = 16M
xcache.slots = 8K
xcache.count = 1

是否有系统的方法可用于为这些制定最佳配置?

目前的统计数据如下:

注意:我之前已经看到它的使用率达到了 100%。

问题 3

xcache.optimizer 是做什么的?

FAQ

目前只实现了“cacher”和“coverager”模块, 经过测试并且已知可以正常工作,“优化器”什么也不做。它会 仅在 XCache 版本 2 中可用,这是早期的 发展阶段。

但我似乎安装了 XCache 3.0.3 o_O

【问题讨论】:

  • 既然 PHP 5.5 已经内置了操作码缓存器,为什么还要浪费时间去 xcache 呢?
  • @OZ_ 感谢您的意见。我需要确认服务器上的几个组件确实可以使用 php 5.5,这本身也很耗时。

标签: php vps xcache


【解决方案1】:

Xcache 文档维护得很差,我最近尽了最大努力研究可用的内容,回复了similar question。我会解释一下以达到你的具体观点。

xcache.mmap_path

如果设置为空路径或无效路径,缓存器将关闭。我相信这应该是一个可写的目录。 (在 linux 服务器上,默认的 /dev/zero/ 应该可以工作;在 OSX 上这失败了,所以我成功地使用了 /tmp/xcache/

操作码缓存器:大小、计数、槽

  • xcache.count 指的是缓存线程的数量,并且与您要使用的 CPU 内核的数量相关——这个想法是,如果您有一个多核处理器,multithreading 应该会更快
    • 有效值为 2^n,如 1、2、4、8
    • 0 将禁用缓存器
    • 无效值将四舍五入到最接近的有效值
      • 即3 将变为 4
      • 即5 将变为 8
  • xcache.size 是指所有缓存线程的总内存。因此,每个线程大致获得size/count 的内存量
  • xcache.slots 默认为 8k,除非你想改进特定的东西
    • 更多的插槽(更细化)应该可以更有效地利用空间(在缓存中容纳更多数据)
    • 更少的插槽(粒度更小)应该会带来更快的读取时间和更高的整体稳定性

缓存器还允许用户控制变量缓存,具有类似的设置和结果。

优化器

这个功能似乎被放弃了,或者无限期地在开发中——忽略它。

【讨论】:

  • 感谢您的输入马克。关于 mmap_path,/dev/zero 不是否定“适合临时文件”的想法吗?
  • 类似的问题链接给了我一个 Page not found btw。
  • 糟糕,问题链接已修复!而且,我修改了“临时文件”;你是对的,它不写任何文件……但我认为它需要一个“data sink
  • 仍然有点困惑为什么/dev/zero会有用,但感谢您的详细说明。
  • 只是为了完成这个,但是根据wikipedia“当/dev/zero被内存映射到虚拟地址空间时,例如mmap,相当于使用匿名内存;即内存未连接到任何文件。”
猜你喜欢
  • 1970-01-01
  • 2011-06-26
  • 2010-10-12
  • 2015-02-15
  • 2019-06-11
  • 1970-01-01
  • 2016-09-17
  • 2019-07-15
  • 2015-07-30
相关资源
最近更新 更多