Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将Symfony与OPcache一起使用-完全缓存_Php_Caching_Symfony_Opcache - Fatal编程技术网

Php 将Symfony与OPcache一起使用-完全缓存

Php 将Symfony与OPcache一起使用-完全缓存,php,caching,symfony,opcache,Php,Caching,Symfony,Opcache,我的一些网站托管在激活了OPcache的服务器上,这大大提高了性能,但我的问题是缓存很快就满了。然后在一些页面上,我倾向于得到一个错误502,这当然是一个主要问题。克服这一问题的唯一方法是手动清除缓存,但这很快就会有所帮助。我的主机提供商告诉我,他们尝试了一些更改(这对我没有帮助),我不能期望OPcache的内存在短期内增加。 当我尝试禁用OPcache时,服务器的负载太高,因此我需要继续使用它 我在那里运行的最大的站点是基于Symfony3的。其他网站只是相对较小的页面,但其中一个——我也遇到

我的一些网站托管在激活了OPcache的服务器上,这大大提高了性能,但我的问题是缓存很快就满了。然后在一些页面上,我倾向于得到一个错误502,这当然是一个主要问题。克服这一问题的唯一方法是手动清除缓存,但这很快就会有所帮助。我的主机提供商告诉我,他们尝试了一些更改(这对我没有帮助),我不能期望OPcache的内存在短期内增加。 当我尝试禁用OPcache时,服务器的负载太高,因此我需要继续使用它

我在那里运行的最大的站点是基于Symfony3的。其他网站只是相对较小的页面,但其中一个——我也遇到了问题——基于Silex(Symfony微框架)

是否有任何方法可以直接从Symfony提高OPcache的性能?或者我可以向我的主机提供商建议任何设置更改

谢谢

以下是
opcache\u get\u status(false)
的一个示例输出,如果有帮助:

[opcache_enabled] => 1
[cache_full] => 1
[restart_pending] => 
[restart_in_progress] => 
[memory_usage] => Array
    (
        [used_memory] => 25118936
        [free_memory] => 46888
        [wasted_memory] => 0
        [current_wasted_percentage] => 0
    )

[interned_strings_usage] => Array
    (
        [buffer_size] => 4194304
        [used_memory] => 4194292
        [free_memory] => 12
        [number_of_strings] => 102372
    )

[opcache_statistics] => Array
    (
        [num_cached_scripts] => 1074
        [num_cached_keys] => 1989
        [max_cached_keys] => 3907
        [hits] => 302267
        [start_time] => 1468984961
        [last_restart_time] => 1469018698
        [oom_restarts] => 0
        [hash_restarts] => 0
        [manual_restarts] => 1
        [misses] => 6467
        [blacklist_misses] => 0
        [blacklist_miss_ratio] => 0
        [opcache_hit_rate] => 97.9053165508
    )

您没有做错任何事情,您的opcache大小对于想要进入其中的脚本量来说实在太小了

增加内存大小将是唯一的选择

然后还要准备增加允许的脚本数量,因为随着可以缓存更多脚本,您的系统可能会达到另一个限制,并留下未使用的内存。最大值为
max\u cached\u keys
,您当前的使用情况显示在
num\u cached\u keys


请注意:使用PHP7将减少每个脚本在opcache中所需的内存量,因此升级本身将改善这种情况:更多脚本将适合相同的内存量,并且代码执行速度更快。

您没有做错任何事情,您的opcache大小对于想要进入其中的脚本量来说实在太小了

增加内存大小将是唯一的选择

然后还要准备增加允许的脚本数量,因为随着可以缓存更多脚本,您的系统可能会达到另一个限制,并留下未使用的内存。最大值为
max\u cached\u keys
,您当前的使用情况显示在
num\u cached\u keys


请注意:使用PHP7将减少每个脚本在opcache中所需的内存量,因此升级本身将改善这种情况:更多的脚本将放入相同的内存量中,并且代码执行速度更快。

这是我们总是(强烈地)执行的众多原因之一建议人们使用VPS,而不是依赖第三方。@PeeHaa:他们称之为VPS主机,我可以在那里设置许多选项,但我不能完全控制一切。而且我自己可能也不完全了解如何安装整个服务器。如果你为托管VPS付费,我看不出他们为什么不给你更多内存。2PeeHaa:谢谢,但这并不能回答我的问题。除了增加opcache的内存之外,在这种情况下(或者我做错了什么),还有什么其他的帮助吗?(我真的不是opcache方面的专家,所以我很高兴得到建设性的提示。)这就是为什么我们总是(强烈)建议人们获得VPS,而不是依赖于第三方的原因之一。@PeeHaa:他们称之为VPS托管,我可以在那里设置许多选项,但我不能完全控制一切。而且我自己可能也不完全了解如何安装整个服务器。如果你为托管VPS付费,我看不出他们为什么不给你更多内存。2PeeHaa:谢谢,但这并不能回答我的问题。除了增加opcache的内存之外,在这种情况下(或者我做错了什么),还有什么其他的帮助吗?(我真的不是opcache方面的专家,所以我很高兴得到建设性的提示。)