PHP / Centos / Apache的eAccelerator设置

我在CentOS上使用PHP / Apache在运行Wordpress的服务器上安装了eAccelerator。 我偶尔会得到持续的“白页”,这大概是PHP致命错误(尽pipe这些错误不会出现在我的error_log中)。 这些“白页”在整个地方洒在这里和那里。 他们坚持,直到我去我的eAccelerator control.php页面,并清除/清除/清除我的caching,这暗示我已经configurationeAccelerator不当。

这是我当前的/etc/php.ini设置:

  • memory_limit = 128M;
  • eaccelerator.shm_size="64" ,其中shm.size是“eAccelerator应分配给cachingPHP脚本的共享内存量”(请参阅http://eaccelerator.net/wiki/Settings )
  • eaccelerator.shm_max="0" ,其中shm_max是“用户可以通过eaccelerator_put等函数在共享内存中放置的最大大小…默认值为”0“,禁用限制”
  • eaccelerator.shm_ttl="0" – “当eAccelerator没有足够的空闲共享内存来caching一个新的脚本时,它会从共享内存caching中删除至less在shm_ttl秒内没有被访问过的所有脚本。默认情况下,这个值是设置为“0”,这意味着eAccelerator不会尝试从共享内存中删除任何旧脚本。
  • eaccelerator.shm_prune_period="0" – “当eAccelerator没有足够的空闲共享内存来caching脚本时,如果之前的尝试超过了”shm_prune_period“秒,那么它将尝试删除旧的脚本,默认值为”0“意味着eAccelerator不会尝试从共享内存中删除任何旧脚本。“
  • eaccelerator.keys = "shm_only" – “这些设置控制eAcceleratorcaching用户内容的地方…'shm_only'在共享内存中caching数据'

在我的phpinfo页面上,它说:

  • memory_limit 128M
  • Version 0.9.5.3Caching Enabled true

在我的eAccelerator control.php页面上,它说

  • 64 MB的RAM可用
  • Memory usage 77.70% (49.73MB/ 64.00MB)
  • caching的脚本在PHP操作码caching中使用了27.6 MB(我自己添加了文件大小)
  • 由Wordpress对象caching填充的caching键使用22.1 MB。

我的问题是:

  • eAcceleratorcaching中只有36.4 MB空间用于“caching密钥”(64 MB的内存总量减去caching的脚本占用的内存量,此时为27.6 MB)?
  • 如果我的应用程序尝试将超过22.1 MB的caching键写入eAccelerator内存caching,会发生什么情况? 这是否导致电子加速器疯狂,就像我见过的?
  • 如果我改变eaccelerator.shm_max等于(比如说)32 MB,会避免这个问题?
  • 我是否还需要更改shm_ttl和shm_prune_period以使eAccelerator尊重由shm_max设置的MB限制?

谢谢! 🙂

我使用几乎相同的eAccelerator设置,从来没有任何类似的问题(我没有任何“键”设置)。 据我所知,摆弄这些设置只会改变高速caching的有效性。 一个“不好的”eAccelerator设置应该只会导致脚本运行缓慢……不是脚本错误。

我不明白“36.4 MB的caching键空间”是什么意思。 从你的问题eAccelerator是使用总共49.73 MB与27.6MB的脚本和22.1MB的键(27.6 + 22.1 = 49.7)离开14.3MB空余。

使用当前的设置,当达到64MB分配的限制时,eAccelerator不会再caching任何东西。 除了一些脚本运行速度不如以前,不应该引起这个问题。 如果您想要删除旧的caching条目,您可以使用前面提到的各种设置进行播放。 我通常只是增加eAccelerator的内存量,使它保存所有的脚本在内存中。

如果您的脚本显示“白页”,我会仔细检查错误日志。 如果您没有收到任何错误消息,我会检查错误日志是否已启用并正常工作。 我会尝试禁用eAccelerator,看看你是否可以复制脚本错误。 如果它似乎只与eAccelerator发生,我会卸载它,并从头开始安装。

另一个远程可能性是坏的内存或磁盘正在破坏caching版本。