【问题标题】:Opcache clears too quicklyOpcache 清除太快
【发布时间】:2016-03-19 12:48:13
【问题描述】:

我已经在一个新的主机(虚拟云)上设置了我的网站,但是我正在查看 opcache 并且 scripts 未被用于说 a minutes or so 已从缓存中删除。

那么有没有办法阻止它?还是正常行为?

非常感谢。

【问题讨论】:

  • 你的 php.ini 中的 opcache 设置是什么?
  • ""opcache.max_accelerated_files"的值是多少?如果设置"opcache.validate_timestamps = 0"会发生什么?
  • opcache.max_accelerated_files = 2000
  • 你有超过 2000 个文件吗?
  • 不,我没有在任何地方调用 opcache_reset()

标签: php opcache


【解决方案1】:

实际上有配置。 opcache.revalidate_freq=2,默认值为 2 秒,opcache 将尝试每 2 秒检查一次时间戳,如果文件更改,它将重新验证。 您可以更改值以满足您的需要,或者您可以使用此 conf opcache.validate_timestamps=0 关闭时间戳检查,但在这种情况下,每次将代码部署到生产环境时,您都必须重新启动 php-fpm(如果您使用的是 php- fpm) 和网络服务器

opcache.revalidate_freq=2 或任何整数值

opcache.validate_timestamps=1opcache.validate_timestamps=0

【讨论】:

  • 通过使用opcache.validate_timestamps0,选项opcache.revalidate_freq 将被忽略。
【解决方案2】:

听起来你需要在 php.ini 中定义validate_timestamps=0。但请注意这一点 - 如果您上传对 PHP 文件的任何更改,您将需要重新启动 Apache(如果您使用 mod_php5)或 PHP5-FPM,或者手动清除 opcache。

有关如何手动清除 opcache 的详细信息,您基本上必须使用 opcache_reset() 创建一个 PHP 文件并运行它,但这必须与您的其他文件在同一个 SAPI 中 - 即由 PHP5-FPM 运行,如果那样的话是为您的其余文件提供服务的内容。 http://ihaveabackup.net/2013/10/19/invalidating-the-opcache-in-php-5-5/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 2015-08-12
    • 1970-01-01
    • 2018-01-12
    • 2013-09-14
    相关资源
    最近更新 更多