我在消息队列后面运行了一堆php服务,我的symfony控制器正在访问这些服务来获取数据。我正在做一些基准测试来评估Opcode缓存的性能。问题是,在启用任何Opcode缓存(zend opcache或apc)后,我获得的性能提升可以忽略不计。我正在使用' ab'基准测试的实用程序。
因此总响应时间(没有任何操作码缓存)是66秒,而zend操作码缓存的相同时间是54秒。 APC情况下的总响应时间为64秒。我正在提出50000请求而没有并发请求基准测试。
请提出任何可能妨碍Opcode缓存以获得显着性能的建议。
编辑1
致电apc_cache_info()
会返回以下内容:
array (size=14)
'nslots' => int 4099
'ttl' => int 0
'nhits' => float 0
'nmisses' => float 0
'ninserts' => float 0
'nentries' => int 0
'nexpunges' => float 0
'stime' => int 1404812585
'mem_size' => float 0
'file_upload_progress' => int 1
'memory_type' => string 'mmap' (length=4)
'cache_list' =>
array (size=0)
empty
'deleted_list' =>
array (size=0)
empty
'slot_distribution' =>
array (size=0)
empty
答案 0 :(得分:1)
任何操作码缓存都应该通过至少 2x来加速Symfony应用程序。因此,第一步是忘记交响乐,并确保您已正确运行缓存。
您是否正确配置了您的网络堆栈? phpinfo()
应确认您正在运行Apache 2.0 Handler
,并且已启用缓存。然后,您需要正确配置INI设置。 APC包含一个漂亮的网络前端,Rasmus已经完成了OPcache的缩减。只有当你缓存phpinfo.php
时才开始查看你的Sympfony应用程序。