我使用 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)