> PHP 프레임워크 > Laravel > Laravel 애플리케이션을 더 빠르게 실행해보세요! (PHP OPcache 활용)

Laravel 애플리케이션을 더 빠르게 실행해보세요! (PHP OPcache 활용)

藏色散人
풀어 주다: 2020-04-22 13:31:58
앞으로
2705명이 탐색했습니다.

Opcache란 무엇입니까

PHP 스크립트가 실행될 때마다 스크립트를 바이트코드로 컴파일해야 하며, OPcache는 바이트코드를 캐시할 수 있으므로 다음에 동일한 스크립트가 요청될 때 스크립트를 바이트코드로 컴파일해야 합니다. 스크립트를 다시 컴파일할 필요가 없으므로 스크립트 실행 시간이 크게 절약되어 애플리케이션이 더 빠르게 실행되고 서버 오버헤드도 절약됩니다.

숫자로 말해보세요

물론 어떤 최적화가 이루어졌는지 알고 싶습니다. 비록 성능 향상은 애플리케이션과 서버의 구성에 따라 크게 다르지만, 벤치마크를 실행해 보면 대략적으로 이해할 수 있습니다.

이를 위해 저는 Apache 벤치마크 테스트를 실행하기 위해 코어 CPU 1개, 메모리 1G라는 매우 낮은 구성의 머신을 특별히 준비했습니다. Laravel 5.4의 기본 환영 페이지를 요청하여 10개의 동시 요청이 1분 동안 계속 액세스할 수 있도록 했습니다. 다음은 OPcache를 끈 경우의 벤치마크 결과입니다.

OPcache disabled: 10.18 requests per second
로그인 후 복사

저사양 서버의 경우 이는 나쁘지 않습니다. 우리는 더 잘할 수 있습니다. OPcache를 켠 상태에서 벤치마크 테스트 결과는 다음과 같습니다(기본 OPcache 구성 사용).

Enabled with default values: 34.52 requests per second
로그인 후 복사

차이는 여전히 큽니다! 다음으로 OPcache 구성을 최적화하면 벤치마크 테스트 성능이 더 좋아질 것입니다.

Enabled with optimized values: 42.53 requests per second
로그인 후 복사

이것을 사용해 보셨나요?

멋지지만 사용 방법

우선 OPcache가 서버에 설치되어 있는지 확인해야 합니다. PHP 5.5부터 OPcache가 PHP 코어의 일부가 되었기 때문에 Laravel 개발자의 경우 , 기본적으로 이 확장 기능을 수동으로 설치할 필요는 없습니다.

물론 확실하지 않은 경우 phpinfo()를 보면 확인할 수 있습니다.

<?php
phpinfo();
로그인 후 복사

이 스크립트는 PHP가 설치된 모든 확장 기능을 표시합니다. 페이지에서 "OPcache"를 검색하면 설치된 것입니다. 그렇지 않은 경우 직접 설치해야 합니다.

다음으로 PHP 구성 파일에서 OPcache를 활성화해야 합니다(기본값은 꺼짐):

opcache.enable=1
로그인 후 복사

다음으로 계속해서 OPcache에 대한 몇 가지 최적화 구성을 만듭니다.

opcache.memory_consumption=512
로그인 후 복사

이 구성은 OPcache에 할당하려는 메모리 공간을 나타냅니다. (단위: MB), 64보다 큰 값을 설정하시면 됩니다.

opcache.interned_strings_buffer=64
로그인 후 복사

이 구성은 실제 문자열에 할당하려는 공간(단위: MB)을 나타냅니다. 16보다 큰 값을 설정하면 됩니다.

opcache.max_accelerated_files=32531
로그인 후 복사

이 구성은 캐시할 수 있는 스크립트 수를 나타냅니다. 이 값은 프로젝트에 포함된 스크립트 수에 최대한 가깝게(또는 그보다 크게) 설정하세요.

opcache.validate_timestamps=0
로그인 후 복사

재검증 스크립트의 구성 값을 변경하세요. 0(최고 성능)으로 설정하면 각 PHP 코드 변경 후 OPcache를 수동으로 지워야 합니다. 수동 제거를 원하지 않는 경우 이 값을 1로 설정하고 opcache.revalidate_freq를 통해 재검증 간격을 구성할 수 있습니다. 이 경우 변경 사항을 x초마다 확인해야 하므로 성능이 저하될 수 있습니다.

opcache.save_comments=1
로그인 후 복사

이 구성은 스크립트에 주석을 유지합니다. 일부 라이브러리는 이 구성에 의존하고 이 옵션을 꺼도 이점을 찾을 수 없기 때문에 이 옵션을 켜는 것이 좋습니다.

opcache.fast_shutdown=0
로그인 후 복사

빠른 종료는 메모리를 지우는 더 빠른 메커니즘을 제공하지만, 내 벤치마크 테스트에서는 속도가 더 느릴 수도 있지만 직접 시도해 보아야 합니다.

따라서 최종 구성 최적화는 다음과 같습니다.

opcache.enable=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=32531
opcache.validate_timestamps=0
opcache.save_comments=1
opcache.fast_shutdown=0
로그인 후 복사

애플리케이션 크기와 서버 구성에 따라 달라지는 이러한 구성 값을 실험해 볼 수 있습니다.

마지막으로 이 구성 파일을 저장하고 웹 서버를 다시 시작하면 애플리케이션이 확실히 더 빨라질 것입니다.

Laravel 애플리케이션 준비

앞서 언급한 것처럼 opcache.validate_timestamps가 0으로 설정된 경우 PHP 코드를 수정할 때마다 OPcache를 수동으로 지워야 합니다. 이를 위해 OPcache 정리를 처리하기 위한 해당 Artisan 명령을 제공하는 확장 패키지(https://github.com/appstract/laravel-opcache)를 만들었습니다.

확장을 설치한 후 다음 명령을 실행하여 OPcache를 정리하세요:

php artisan opcache:clear
로그인 후 복사

또한 확장 패키지는 프로젝트의 GitHub 페이지에서 볼 수 있는 몇 가지 유용한 도구도 제공합니다.

이 기사는 재인쇄되었습니다. 원본 주소: https://xueyuanjun.com/post/7326

위 내용은 Laravel 애플리케이션을 더 빠르게 실행해보세요! (PHP OPcache 활용)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:xueyuanjun.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿