当前位置: 首页 > 知识库问答 >
问题:

Zend Opache不缓存所有文件(CentOS 6.7 Nginx 1.8.1 PHP 7 Laravel 5.1)

秦安怡
2023-03-14

所以,我们有一个基于Laravel 5.1的项目,我们想很快发布,但是我们注意到性能不佳,我们正在努力优化服务器设置。

正如标题中所列,我们将在CentOS 6.7服务器上部署它,并使用Nginx 1.8。1和PHP7与PHP-FPM。由于CentOS 6.7的存储库不提供PHP7,我们使用的是IUS的替换软件包。

我们注意到的可能导致性能不佳的事情之一是,尽管启用并工作(我们有很好的命中率),Zend Opache似乎并没有缓存我们项目中的所有文件。我们正在使用opcache-gui来帮助可视化缓存的内容,虽然项目的许多文件都在那里(包括来自第三方库的文件),但大多数文件都不见了,包括我们的主控制器和许多支持类。事实上,当我们禁用Opache时,响应时间几乎保持不变。opache黑名单目前是空的,所以这不是不包括它们的原因。

我们尝试使用opcache_compile_file()强制缓存丢失的文件,虽然这些文件得到编译和缓存,但它们从未得到任何命中。

据我所知,Opcache将缓存所有正在执行的文件,但这里似乎不是这样。我查看了opcache设置,但除了黑名单之外,找不到明显会影响这种行为的设置。

我还缺什么吗?PHP在决定缓存什么或不缓存什么时所依赖的任何其他标准?

在此问题上的任何帮助都将不胜感激!

共有1个答案

彭梓
2023-03-14

您可以检查opcache的值吗。最大文件大小?这可能是您的问题,因为编译后的文件比原始文件大。

你能用它测试在opcache gui中看不到的文件吗http://php.net/opcache-is-script-cached?

另外,作为测试,您可以尝试强制编译吗?用http://php.net/opcache-compile-file这件事。它只是看看是否有一个true,以及它是否可以首先编译它。

 类似资料:
  • 我的Laravel应用程序大约有10000个文件,包括我的供应商目录中的第三方软件包。但是,在启用OPCache的情况下,它似乎只缓存667个文件和1321个密钥。 我有没有遗漏什么,或者这可能是准确的?以下是我的OPCache状态的一些统计信息:

  • 按照一般app的设计,都是主应用,和用户目录下的缓存文件,把用户自定义的或使用生成的文件都放到缓存文件目录里。鉴于此,我们来找找code.app的缓存文件,或许能发现点有用的东西 可参照 https://code.visualstudio.com/docs/customization/userandworkspace 理解 缓存目录详情 目录是 /Users/sang/Library/Applic

  • 这是我的服务人员: 它是标准的脱机缓存服务工作程序:https://googlechrome.github.io/samples/service-worker/custom-offline-page/ 控制台中没有错误。 在Android Chrome上,将页面添加到主页效果很好(我有一个定义图标和URL的清单)。但是,当我关闭手机连接时,会收到一条错误消息: 我该如何解决这个问题?

  • void clear_all_cache(int expire time) This clears the entire template cache. As an optional parameter, you can supply a minimum age in seconds the cache files must be before they will get cleared. 清除所

  • 问题内容: 我有一个系统,其中将缓存最大使用率设置为0,并且在我对style.css进行了一些更改时出现问题。css失败,更改不会出现在客户端上。浏览器将使用旧的CSS缓存版本。我有一个简单的问题:将css文件命名为style.css?123是否会作为新缓存? 问题答案: 是的,在资源的URI中添加唯一的查询字符串将强制客户端获取“新”版本(因为客户端不知道这仅仅是对先前缓存的资源的 更新 )。这

  • 问题内容: 哪种方法能让浏览器使用js文件的缓存版本(从服务器端)? 问题答案: 或.htaccess文件中