我目前正在开发与HTTPD相结合的Symfony项目。服务器CentOS。 我使用twig视图和PHP控制器。我面临着巨大的性能问题。
当我以任何方式调用控制器时(返回视图,AJAX ......),我的RAM上升到20%,CPU上升到~15%。我可以通过命令" top"和HTTPD过程。
%Cpu(s): 5,5 us, 1,2 sy, 0,0 ni, 93,3 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
KiB Mem : 1883696 total, 80668 free, 1623492 used, 179536 buff/cache
KiB Swap: 2097148 total, 1796076 free, 301072 used. 67696 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10992 apache 20 0 2533000 363684 8696 S 12,6 19,3 15:59.17 httpd
我不明白为什么一个简单的ajax调用会这样做。例如:
$.ajax({
type: "GET",
data: {
param1: param1,
param2: param2
},
url: "{{ path('my_path') }}",
success: function (response) {}
和PHP:
public function my_pathAction(Request $request)
{
self::instancierRepository(array("Services"));
$param1 = $request->get('param1 ');
$param2 = $request->get('param2');
$liste = $this->repositoryServices->findServices($param1, $param2);
$response = new Response( json_encode( $liste ));
return new Response($response->getContent());
}
这种代码使得一个apache进程可以用top来提高CPU 13%和RAM 20%。 毋庸置疑,随着5页一起打开,CPU达到70-80%,那么就不可能使用该应用程序了,因为我每隔10个secondes就会调用这种AJAX请求。
Symfony profiler: link
也许我忘记了Apache配置或Symfony的重要内容。 感谢您的帮助。 再见。