2016-06-26 4 views
0

PHP-FPM 5.6 버전을 사용하고 있습니다.캐시 된 결과를 사용하여 PHP 실행을 가속화하는 방법은 무엇입니까?

php -v는 OPcache가 있음을 보여줍니다.

나는 항상 매개 변수를 받아들이고 똑같이 2.2k HTML 출력을주는 PHP 스크립트를 가지고있다.

스크립트 실행에는 MySQL에 대한 연결이 필요하지 않습니다.

Chrome 개발자 도구에서 실행 시간이 900ms입니다.

이 작업은 상대적으로 느립니다.

이 실행 시간을 단축하고 싶습니다.

OPcache가이 버전의 PHP와 함께 설치 되었다면 PHP 스크립트 실행 결과를 캐시하여 더 빠른 응답 시간으로 사용할 수 있습니까?

아니면 다른 방법이 있습니까?

php.ini, /etc/php.d/10-opcache.ini 또는 /etc/php-fpm.d/www.conf으로 구성을 조정할 수있는 구성은 무엇입니까?

그리고 필요할 때 캐시 된 결과를 제거하려면 어떻게합니까?

+3

"OPcache하여 PHP로드 및 구문 분석에 대한 필요성을 제거, 공유 메모리에 미리 컴파일 된 스크립트 바이트 코드를 저장하여 PHP 성능을 향상 각 요청에 대한 스크립트 ". 즉, 바이트 코드 실행 출력을 캐시하지 않습니다. 참조 : http://php.net/manual/en/book.opcache.php 다른 것을 사용해야합니다. 실행 속도가 느린 것은 연결 속도가 느려서 서버 자체의 실행 시간을 더 잘 측정 할 수 있기 때문일 수 있습니다. 더 빠른 서버도 도움이 될 수 있습니다. :-) –

+1

당신이 죽기 전에 미쳐 버리기 전에, 서버 측에서 무슨 일이 일어나는지 확인하십시오. 아파치 (죄송합니다. skwat bout nginx를 알고 있습니다.), mod_log_config를로드하고 LogFormat을 LogFormat으로 설정하십시오. % h % l % u % t \ "% r \"%> s % b % T/% DI : % IO : % O "공통". '127.0.0.1 - [26/Jun/2016 : 15 : 19 : 05 -0400] 'POST /system/cron/do.php HTTP/1.1 "200 197 0/10786 I : 331 O : 425 '즉, 특정 요청은 실행하는데 전체 10.8ms가 걸렸습니다. 그 숫자를 990ms와 비교하고 싶습니다. – YvesLeBorg

+0

@YvesLeBorg가 좋습니다. 'nginx'에 해당하는 LogFormat이 있습니까? – KDX

답변

3

본인의 질문에 직접적으로 답할 수는 없지만 유용 할 수 있습니다. 당신은 실행 시간을 에코 할 수 끝에 그래서를

$startMicroTime = getMicroTime(); 
$startUserTime = getUserTime(); 

: 당신은 시작 시간을 저장하는 스크립트의 시작 부분에서

function getMicroTime() 
// return time in whole seconds with microseconds 
{ 
    return microtime(TRUE); 
} 


function getUserTime() 
// this clock only runs when we have CPU cycles, so it runs slower that the normal clock 
// use this to accurately time the excution time of scripts instead of the above function 
{ 
    $usage = getrusage(); 
    return $usage["ru_utime.tv_sec"]+0.000001*$usage["ru_utime.tv_usec"]; 
} 

: 실행 시간을 측정하는 방법은 다음 두 가지 기능을 포함 할 수있다 :

echo 'Full time = '.round(1000*(getMicroTime()-$startMicroTime),2).' ms<br>'; 
echo 'User time = '.round(1000*(getUserTime()-$startUserTime),2).' ms<br>'; 

다시 질문에 대답하지 않지만 유용 할 수 있습니다. 좋아,이 유효한 대답을하려면 여기 읽고 : 수동에서

https://www.addedbytes.com/articles/for-beginners/output-caching-for-beginners/

+0

내가 사용하고있는 서버는 준비/테스트 목적으로 Wordpress가 설치된 새로운 VPS입니다. 현재 트래픽이없고 완전한 리소스를 사용할 수 있어야합니다. 나는 W3 Total Cache + Memcached를 사용하여 메모리에서 캐시 된 프론트 페이지를 제공합니다. 'Chrome Developer Tools'에서는'85ms'를 보여줍니다. 따라서 위에서 언급했듯이 정적 HTML 출력과 MySQL 연결이없는 간단한 PHP 스크립트를 실행하면'900ms'를 넘겨 주므로 내가 기대하는 바가 아닙니다. OPcache 위에 추가 할 수있는 '바이트 코드 실행 출력'캐싱 솔루션이 있습니까? – KDX

+0

이 기사는 흥미 롭습니다.하지만 제 자신의 캐싱 솔루션을 처음부터 구현하려는 것이 아니며 기존 도구를 사용하여 통합 방법을 모색하고 있습니다. – KDX

+0

mencached가 http://php.net/manual/en/intro.memcached.php에 사용되었다고 들었지만 경험이 없습니다. –

관련 문제