【发布时间】:2013-09-08 10:26:51
【问题描述】:
我使用 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。
PID 14827 也可以存活 7 分钟或 27 秒。哪个是正确的,还是我错过了 XCache 内部工作原理?
更改/etc/httpd/conf.d/fcgid.conf 并延长每个进程的生命周期是更好的选择吗?还是换default values是个坏主意。
我可以做哪些优化来使XCache 和mod_fgid 更好地工作? (我不喜欢把我的服务器改成 nginx,迁移到 mod_fastcgi)
【问题讨论】:
标签: php apache fastcgi mod-fcgid