如何强制彻底清除 PHP7 opcache?

如何强制彻底清除 PHP7 opcache?

我网络服务器上的 opcache 不断达到我设置的限制,尽管我觉得我没有很多 PHP 代码,所以确实应该有足够的空间。

更糟糕的是,即使清除了 opcache,它立即地显示超过 2/3 的可用空间已被填充。

刚才的例子:

运行 opcache_reset() 之前的 phpinfo 代码片段:

Used memory     122958472
Free memory     5552 

运行 opcache_reset() 之后的 phpinfo 代码片段:

Used memory     90691312
Free memory     43526416

我知道在 PHP7 中,opcache(显然)已备份到磁盘,所以也许东西正在自动重新加载?但这似乎违背了重置 opcache 的目的,而且我不知道 opcache 备份到磁盘上的哪个位置,所以我无法检查。

我在 nginx 上运行 PHP-FPM,确切地说是版本 7.0.15-0ubuntu0.16.04.4。

答案1

你必须使用 opcache_reset(),http://php.net/manual/en/function.opcache-reset.php

请注意,它不能通过 CLI 工作;您必须创建一个调用它的 HTTP 访问脚本。

相关内容