我使用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)
答案 0 :(得分: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,因为它还没有使用。