2012-05-15 6 views
3

필자는 필자의 석사 학위 논문에서 성능 테스트를하고 있으며, Symfony2 간단한 응용 프로그램의 성능이 매우 떨어지고 있습니다. 그것은 간단한 응용 프로그램, 하나의 쿼리 및 일부 수학. 명령에 대한성능이 좋지 않음

테스트 결과 :

AB-C10 -t60 http://sf2.cities.localhost/app.php

시험 전에
Server Software:  Apache/2.2.20 
Server Hostname:  sf2.cities.localhost 
Server Port:   80 

Document Path:   /app.php 
Document Length:  2035 bytes 

Concurrency Level:  10 
Time taken for tests: 60.162 seconds 
Complete requests:  217 
Failed requests:  68 
    (Connect: 0, Receive: 0, Length: 68, Exceptions: 0) 
Write errors:   0 
Non-2xx responses:  68 
Total transferred:  393876 bytes 
HTML transferred:  321102 bytes 
Requests per second: 3.61 [#/sec] (mean) 
Time per request:  2772.458 [ms] (mean) 
Time per request:  277.246 [ms] (mean, across all concurrent requests) 
Transfer rate:   6.39 [Kbytes/sec] received 

Connection Times (ms) 
       min mean[+/-sd] median max 
Connect:  0 0 2.1  0  11 
Processing: 230 2641 2493.1 1778 17146 
Waiting:  230 2641 2493.1 1778 17146 
Total:  230 2642 2492.9 1778 17146 

나는 두 명령 출시 ​​:

의 PHP 응용 프로그램/콘솔을 --env = 캐시 캐시 : 지우기 php app/console --env = prod 캐시 : 예열

symfony 체크 페이지에는 intl 확장자가 없기 때문에 apc가 괜찮을 것이라고 알려줍니다.

내 PHP 버전은 다음과 같습니다 수호신 - 패치와

PHP의 5.3.6-13ubuntu3.6는

은 누군가가 나에게 내 ENV에 확인해야 다른 일에 대해 조언을 줄 수

?

+0

당신은/게시 "연결 시간"보라 (당신이 당신의 데이터베이스로 MySQL을 사용 가정). 거기에 가장 많은 시간이 걸리는 부분을 확인할 수 있습니다. – Darcara

+0

그 기능이 있습니까? – keram

+0

예, 전체 출력은 [this]와 같아야합니다 (http://imgur.com/Fwek5) – Darcara

답변

5

컴퓨터가 부하를 처리 할 수 ​​없다는 것을 포함하여 여러 가지가 될 수 있습니다. 나는 당신에게 약간의 포인터를 줄 수 있습니다.

일부 오류가 발생했습니다. Failed requests: 68. 아파치 로그 파일을 살펴보면 문제가 있음을 알 수 있습니다. 파일에서 아무 것도 찾지 못하면 로깅이 활성화되어 있고 구성 파일의 로그 수준이 올바르게 설정되어 있는지 확인하십시오. 귀하의 VirtualHost 정의는 디버깅을위한

LogLevel debug 
CustomLog /var/log/apache2/access-localhost.log vhost_combined 
ErrorLog /var/log/apache2/error-localhost.log 

사용 LogLevel debug 같은 것을 포함해야합니다. 프로덕션을 위해 warn 또는 error으로 설정하려고합니다.

php.ini와 스크립트에서 오류 로깅을 사용하도록 설정하고 PHP 오류 로그에서 문제가 있는지 확인하십시오.

apache2.conf가 올바르게 구성되었는지, 특히 mpm 모듈을 확인하십시오. 지금까지 완벽한 구성에서,이기는하지만 여기에 표준입니다 :

<IfModule mpm_prefork_module> 
    StartServers   5 
    MinSpareServers  5 
    MaxSpareServers  10 
    MaxClients   150 
    MaxRequestsPerChild 0 
</IfModule> 

<IfModule mpm_worker_module> 
    StartServers   2 
    MaxClients   150 
    MinSpareThreads  25 
    MaxSpareThreads  75 
    ThreadsPerChild  25 
    MaxRequestsPerChild 0 
</IfModule> 

당신이 충분한 RAM이 있는지 확인합니다, 당신은 단지

또한 시도 할 수 있습니다 (적어도 리눅스에서) 아파치에 대한 1기가바이트 주위해야합니다 작은 정적 텍스트 파일 (약 2kb)에 대한 성능을 확인하고 그 성능이 어떻게 보이는지 확인하십시오. 그 후 간단한 <? php echo 'Hello World!' ?>에 대한 검사는 PHP 인터프리터의 성능 영향을 확인하십시오. 두 테스트 모두 현재 구성에서 아파치가 수행 할 수있는 작업에 대한 정보를 제공해야합니다. 성능이 두 테스트에서 모두 만족 스럽다면 느린 앱입니다.

시도 할 또 다른 것은 테스트에서 동시성을 비활성화하고 도움이되는지 확인하는 것입니다. 이는 앱 또는 데이터베이스 액세스에 동시성 문제가 있음을 나타냅니다.여전히 느린 경우

ab -c1 -t60 http://sf2.cities.localhost/app.php 

, apache performance tuning 구글과 mysql performance tuning

+0

감사합니다. 훌륭한 답변입니다. – keram

관련 문제