2

我使用 mod_fcgid 和 Xcache 3.0.3、PHP 5.4.18。我知道由于 mod_fcgid 设计,我不能使用公共共享内存,所以每个 php-cgi 进程在其生命周期内都使用自己的缓存。

当我打开top并检查php-cgi进程时,我看到:

PID     USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
14827 examplecom  20   0  230m  34m  18m S 11.0  3.4   0:07.07 php-cgi
14840 examplecom  20   0  242m  45m  18m S  0.7  4.6   0:02.74 php-cgi
14802 examplecom  20   0  237m  41m  18m S  6.3  4.2   0:11.39 php-cgi
14816 examplecom  20   0  232m  36m  18m S  1.7  3.7   0:07.75 php-cgi
14824 examplecom  20   0  231m  34m  18m S  8.6  3.5   0:06.12 php-cgi
14838 examplecom  20   0  229m  33m  17m S  0.7  3.3   0:00.89 php-cgi
14841 examplecom  20   0  228m  32m  18m S  2.0  3.3   0:01.71 php-cgi
14839 examplecom  20   0  228m  32m  18m R  8.6  3.2   0:01.58 php-cgi

然后我检查 XCache 管理面板。每次我刷新管理页面时,我都会看到另一个进程的数据。例如,我看到:

XCache Cacher
XCache Cacher Module    enabled 
Readonly Protection     disabled 
Page Request Time   2013-09-04 21:59:32 
Cache Init Time     2013-09-04 21:59:05 
Cache Instance Id   14827 
Opcode Cache    enabled, 12,582,912 bytes, 1 split(s), with 8192 slots each 
Variable Cache  enabled, 1,048,576 bytes, 1 split(s), with 8192 slots each 
Shared Memory Schemes   mmap 

似乎进程14827存活了 27 秒。但是当我检查top该过程适用于 0:07.07 时。

PID14827的寿命也是 7 分钟或 27 秒。哪个是正确的,还是我错过了 XCache 内部工作的某些内容?

/etc/httpd/conf.d/fcgid.conf改变并延长每个流程的生命周期是更好的选择吗?或者更改默认值是个坏主意。

我可以做更多的优化来使XCache工作mod_fgid更好吗?(我不喜欢将我的服务器更改为 nginx,并迁移到 mod_fastcgi)

4

1 回答 1

0

我不知道 XCache,但是...

假设我们有 1 个 apache 进程 3 个 php 进程

所有 3 个 php 进程都在运行。所有 3 具有相同的“运行时间”。// 现在时间是 0000

你请求一些页面。Apache 连接到进程#1,缓存已启动。// 缓存初始化时间为 0001

你刷新页面。Apache 连接到进程#2,缓存已启动。// 缓存初始化时间为 0033

现在您有 3 个进程,所有 3 个进程都从时间 0000 开始运行,但是

进程#1 有 initCacheTime 0001

进程#2 有 initCacheTime 0033

进程#3 没有 initatedCacheTime,因为它还没有使用。

于 2013-09-19T12:07:06.987 回答