키 테이크 아웃
opcache는 PHP 5.5의 내장 캐싱 엔진으로, 사전 컴파일 된 스크립트 바이트 코드를 메모리에 저장하여 PHP 응용 프로그램의 성능 향상으로 이어집니다. 이전 PHP 버전에서 확장으로 설치할 수 있으며 웹 사이트의 평균 응답 시간을 최대 14%로 줄일 수 있습니다.
APC는 새로운 PHP 버전을 지원하지 않고 실행 오류로 이어질 수 있으므로 opcache는 APC 캐시보다 더 나은 솔루션입니다. Opcache는 PHP 자체에 더 밀접하게 연결되어있어 업데이트가 더 자주 발생하고 오류가 적습니다. 그러나 APC와 달리 Opcache는 데이터 캐싱 엔진으로 작동하지 않습니다.
opcache가 올바르게 작동하는지 확인하려면 opcache_get_configuration () 및 opcache_get_status () 함수를 사용할 수 있습니다. 모든 OPCache 구성 및 상태 데이터를 가져와 사용자 친화적 인 방식으로 표시하는 몇 가지 준비된 스크립트도 있습니다.
단일 프로젝트에서 Opcache를 활성화하고 다른 프로젝트에서 다른 프로젝트에서 비활성화 할 수 있습니다. 이는 글로벌 레벨에서 OpCache를 활성화 한 다음 ini_set () 함수를 사용하여 특정 프로젝트에서 비활성화하여 달성됩니다.
버전 5.5의 PHP에는 메모리에 사전 컴파일 된 스크립트 바이트 코드를 저장하는 캐싱 엔진 내장-Opcache가 함께 제공됩니다. APC 또는 Xcache에 익숙하다면 이미 이러한 엔진의 작동 방식을 알고있을 것입니다. 각 PHP 스크립트가 런타임에 컴파일되면 실행 시간의 일부는 사람이 읽을 수있는 코드를 기계에서 이해할 수있는 코드로 변환하는 데 사용됩니다. Opcache, APC 또는 Xcache와 같은 바이트 코드 캐시 엔진은 특정 PHP 파일을 처음 실행하는 동안 한 번만 수행합니다. 그런 다음 사전 컴파일 된 스크립트가 메모리에 저장되어 PHP 응용 프로그램에서 성능 향상으로 이어질 것입니다.
웹을 통해 모든 OPCache 설치 및 구성 단계를 다루는 많은 튜토리얼을 쉽게 찾을 수 있습니다 (5.5에서 기본적으로 활성화되지만 이전 버전에서 확장자로 설치할 수 있음). 이 특정 캐시 엔진 작업의 다양한 실질적인 측면에 관한 일반적인 질문에 대한 답을 찾으려면 아래 기사를 읽으십시오. - .
1. Opcache는 전혀 설치 가치가 있습니까? 어떤 속도 향상을 기대할 수 있습니까? -
물론 에 따라 다릅니다. 서버가 들어오는 트래픽을 처리하고 응답 시간이 적게 유지되면 성능 작업을 수행 할 필요가 없을 것입니다. 그러나 많은 트래픽이있는 더 큰 웹 사이트에서 각 작은 최적화 단계는 계산 될 수 있습니다. Opcache를 구현하면 초당 더 많은 요청을 처리하고 바이트 코드 캐싱 엔진없이 응답을 더 빨리 반환 할 수 있습니다. Opcache는 설치 및 구성이 매우 쉽기 때문에 모든 것을 설정하는 데 너무 많은 시간을 소비하지 않습니다.
일부 Opcache 성능 테스트를 찾고 있다면이 캐시 엔진 구현에 대한 AppDynamics 기사를 확실히 읽어야합니다. 테스트에서 Opcache의 설치는 웹 사이트의 평균 응답 시간을 14%줄였습니다. 웹 애플리케이션의 다른 동작의 응답 시간 감소는 6%에서 74%까지 다양했습니다. 이 기사에서 설명한 바와 같이, 다른 코드 부품은 바이트 코드 캐싱 엔진을 구현함으로써 어느 정도 이점을 얻을 수 있습니다. 기사를 자세히 읽고 가장 높은 성능 향상을받을 수있는 곳을 확인하는 것이 좋습니다.
Opcache 성능과 관련하여 다른 리소스를 찾고 있다면 fideloper.com 및 Massivescale.com의 예를 확인하십시오. 두 테스트 모두 Opcache를 설치 한 후 응답 시간이 약 50% 감소했습니다.
2. 이미 APC 캐시를 사용하고 있습니다. opcache로 마이그레이션해야합니까?
나는 당신이해야한다고 생각합니다. Opcache를 APC보다 더 나은 솔루션으로 만들 수있는 몇 가지 장점이 있습니다.
우선 APC 캐시는 최신 PHP 버전에서는 작동하지 않습니다. PHP 5.5를 전혀 지원하지 않습니다. PHP 5.4에 설치하는 것은 권장되지 않습니다. 이러한 구성은 전체 응용 프로그램을 중단하는 실행 오류로 이어질 수 있다고보고되었습니다. PHP 가속기 또는이 스택 오버 플로우 스레드의 Wikipedia 기사를 확인하여 세부 사항을 얻으십시오.
.
그러나 Opcache는 PHP 5.5와 함께 번들로 제공 되므로이 PHP 버전에서 확실히 작동합니다. 문서에 작성된대로 5.2에서 5.4까지의 이전 PHP 버전으로 설치 될 수도 있습니다. 일반적으로 Opcache는 다른 바이트 코드 캐시 엔진보다 PHP 자체에 더 밀접하게 연결되어 있습니다. 이로 인해 업데이트가 더 자주 업데이트되고 오류가 줄어 듭니다 (자세한 내용은 여기를 참조하십시오).
APC에서 Opcache로 마이그레이션 할 때 기억해야 할 유일한 중요한 것은 후자가 데이터 캐싱 엔진으로 작동하지 않는다는 사실입니다. 이미 APC를 구현 한 경우 데이터 캐싱 서비스의 인터페이스 역할을하는 APC_ADD () 및 APC_Fetch () 함수를 사용할 수 있습니다. Opcache는 바이트 코드 캐싱 엔진이므로 유사한 기능을 제공하지 않습니다. APC에서 Opcache로 전환하려는 경우이 제한 사항을 고려해야합니다. APC Userland 기능을 유지하려면 APCU 프로젝트가 있습니다 (댓글을 지적 한 Oscar Merina에게 감사합니다). 3. Opcache가 실제로 내 파일을 캐싱하는지 확인하는 방법?
이미 설치하고 구성된 Opcache를 구성한 경우 실제로 어떤 PHP 파일을 캐시하는지 제어하는 것이 중요 할 수 있습니다. 전체 캐시 엔진은 백그라운드에서 작동하며 방문자 또는 웹 개발자에게 투명합니다. 상태를 확인하려면 Opcache_Get_Configuration () 및 opcache_get_status ()의 두 기능 중 하나를 사용할 수 있습니다. 다행히도 모든 Opcache 구성 및 상태 데이터를 가져와 친근한 방식으로 표시하는 몇 가지 준비된 스크립이 있습니다. 스스로 코드를 작성할 필요는 없으며 아래의 도구 중 하나를 선택하십시오.
- Opcache 제어판,
-Rasmus Lerdorf의 Opcache-status,
- Pieter Hordijk의 Opcachegui,
-Andrew Collington의 Opcache-Gui
내 프로젝트에서는 필요한 모든 기능이있는 Opcache-Gui 스크립트를 사용합니다. 캐싱 엔진이 제대로 작동하는지 확인하려면 Opcache-Gui 페이지의 "개요"탭에서 백분율을보십시오. 메모리 사용 및 적중률 값이 0보다 크면 OpCache가 PHP 코드를 캐싱하고 캐시 된 파일이 요청을 처리하는 데 사용되고 있음을 의미합니다. 캐시 된 특정 PHP 파일 목록을 보려면 "파일 사용법"탭으로 이동하십시오. 파일 목록을 통해 프로젝트 내부의 파일이 캐시되었는지 확인하십시오.
4. 설정 해야하는 프레임 워크 별 구성이 있습니까?
기본적으로 Opcache 엔진은 코드 작성자로서 투명해야합니다. 이는 응용 프로그램에 원하는 코드를 넣을 수 있으며 (사용중인 PHP 버전과 함께 작동 함) OpCache는 올바르게 처리해야합니다. 그러나 Opcache 구성이 올바른 방식으로 설정된 경우에만 작동합니다. 잘못된 캐시 엔진 구성은 전체 웹 사이트를 중단 할 수 있습니다.
우선, 아마도 각 일반적인 프로젝트에서 opcache.use_cwd 옵션이 true로 설정되어 있는지 확인해야합니다. 이 설정을 활성화한다는 것은 Opcache 엔진이 전체 파일 경로를보고 동일한 이름의 파일을 구별한다는 것을 의미합니다. false로 설정하면 기본 이름이 동일한 파일 간의 충돌로 이어집니다.
주석을 사용하는 도구와 프레임 워크에서 중요한 설정도 있습니다. Doctrine, Zend Framework 2 또는 PHP 장치를 사용하는 경우 Opcache.load_comments 및 opcache.save_comments 설정을 true로 설정하십시오. 결과적으로 파일의 문서 주석은 OpCache가 생성 한 사전 컴파일 된 코드에도 포함됩니다. 이 설정은 방해없이 주석으로 작업 할 수 있습니다.
프로젝트가 특정 프레임 워크 또는 웹 애플리케이션을 기반으로하는 경우 OPCache 구성에 관한 지침에 대한 문서를 확인하는 것이 좋습니다. 예를 들어, Moodle에 대한 샘플 구성이 있습니다.
5. 앱 구성을 PHP 파일로 유지합니다. 캐시가되지 않도록 방지 할 수 있습니까?
프로젝트에 프로젝트가 다른 파일보다 더 자주 변경되는 파일이 포함되어 있으면 캐싱에서 제외 할 수 있습니다. 웹 사이트에 대한 구성 지시문이 포함 된 PHP 파일을 처리 할 때 특히 편리 할 수 있습니다. 캐시가되지 않도록하면 해당 파일에 넣은 각 변경 사항이 응용 프로그램에 즉시 표시 될 수 있습니다. .
opcache를 사용하면 캐싱 엔진으로 처리되지 않는 모든 경로가 포함 된 블랙리스트 파일을 지정할 수 있습니다. opcache.blacklist_filename 지시문을 설정 한 후 지정된 경로에 올바른 파일 목록을 넣으십시오. 문서 페이지에는 Cache에서 특정 파일을 제외하는 방법에 대한 몇 가지 예가 있습니다.
6. Opcache가 활성화 된 단일 서버에서 개발과 프로덕션 환경을 모두 실행하려면 어떻게해야합니까?
서버가 여러 앱을 실행하는 경우 일부 앱에서 Opcache를 기꺼이 사용할 수 있습니다. 개발 및 테스트 사이트는 바이트 코드 캐싱을 활성화하는 것이 바람직하지 않으며 좋은 것보다 더 많은 피해를 줄 수있는 환경의 예입니다.
다행히도 한 프로젝트에서 OPCache를 활성화하고 다른 프로젝트에서 단일 서버에서 비활성화 할 수 있습니다. 그렇게하려면 먼저 php.ini 파일에서 Opcache.enable 지시문을 true로 설정하여 글로벌 레벨에서 Opcache를 활성화해야합니다. 그런 다음 프로젝트 중 하나에서 Bytecode 캐싱을 사용하지 않으려면 ini_set () 함수를 사용하여 동일한 지침을 False로 설정하여 비활성화하십시오. 따라서 먼저 전 세계적으로 캐싱을 활성화 한 다음 일부 프로젝트에서 "로컬로"비활성화 할 수 있습니다. INI_SET ()를 사용하여 캐싱을 활성화하는 것은 허용되지 않습니다.
프로젝트의 상단 파일에서 OpCache.enable을 거짓으로 설정하면 캐싱이 다른 곳에 보관하면서 캐싱이 비활성화됩니다.
요약
이 일반적인 질문과 답변 세트가 PHP 응용 프로그램에서 Opcache를 사용하는 방법에 대한 실용적인 정보를 제공하기를 바랍니다. 주제에 관한 다른 질문이나 의견이 있으면 아래에 게시하십시오. Google Plus를 통해 저에게 연락 할 수도 있습니다.
Opcache에 대한 자주 묻는 질문
PHP에서 OpCache의 주요 기능은 무엇입니까? opcache는 공유 메모리에 사전 컴파일 된 스크립트 바이트 코드를 저장하여 PHP 성능을 향상시키는 강력한 PHP 확장입니다. 이를 통해 각 요청에 따라 PHP가 스크립트를로드하고 구문 분석 할 필요가 없으므로 실행 시간 및 메모리 사용량이 줄어 듭니다. 트래픽 또는 복잡한 응용 프로그램이 높은 웹 사이트에 특히 유익합니다. 로딩 시간을 크게 가속화하고 전반적인 성능을 향상시킬 수 있기 때문입니다.
Opcache는 다른 캐싱 메커니즘과 어떻게 다릅니 까? CACHING 메커니즘 PHP 스크립트의 출력을 저장하는 Opcache는 PHP 스크립트의 선행 바이트 코드를 저장합니다. 즉, 요청이 이루어질 때마다 PHP 코드를 다시 컴파일 할 필요가 없으므로 많은 처리 시간과 리소스가 절약됩니다. 이로 인해 Opcache는 PHP 성능을 향상시키기위한보다 효율적이고 효과적인 솔루션이됩니다. PHP 구성에서 Opcache를 활성화하려면 OPCache를 활성화하려면 php.ini 파일을 수정해야합니다. [opcache]로 표시된 섹션을 찾아 Opcache.enable의 값을 1로 변경하십시오. 섹션이나 지침이 존재하지 않으면 추가 할 수 있습니다. 변경 한 후 파일을 저장하고 웹 서버를 다시 시작하여 변경 사항이 적용됩니다.
OpCache가 올바르게 작동하는지 확인하려면 어떻게해야합니까?
OpCache 상태를 확인할 수 있습니다. php에서 opcache_get_status () 함수 사용 이 함수는 구성 설정, 메모리 사용량 및 적중률을 포함하여 Opcache 상태에 대한 다양한 정보를 반환합니다. 이 정보를 사용하여 Opcache가 올바르게 효율적으로 작동하는지 확인할 수 있습니다.
Opcache를 수동으로 수동으로 지울 수 있습니까? 예, opcache_reset () 함수를 사용하여 Opcache를 수동으로 지울 수 있습니다. PHP. 이 기능은 Opcache를 지우고 PHP를 강제로 다음 요청에서 스크립트를 다시 컴파일하도록합니다. 그러나 캐싱의 목적을 물리 치기 때문에 Opcache를 자주 청소하면 성능에 부정적인 영향을 줄 수 있습니다.
Opcache와 관련된 잠재적 인 문제 나 제한 사항이 있습니까?
Opcache는 크게 가능합니다. PHP 성능을 향상 시키십시오. 잠재적 인 문제 나 한계가없는 것은 아닙니다. 예를 들어 파일 타임 스탬프가 변경되지 않는 한 스크립트를 다시 컴파일하지 않기 때문에 파일 기반 세션 또는 파일 기반 사용자 데이터 저장에 문제가 발생할 수 있습니다. 또한 성능 이득이 눈에 띄지 않을 수 있으므로 트래픽이 적거나 간단한 응용 프로그램이있는 웹 사이트에는 효과적이지 않을 수 있습니다. 최대 성능을 위해 Opcache 구성을 최적화하려면 어떻게해야합니까? Opcache 성능을 최적화하기 위해 조정할 수있는 몇 가지 구성 지시문이 있습니다. 예를 들어, opcache.memory_consumption을 늘려 사전 컴파일 된 바이트 코드를 저장하기 위해 더 많은 메모리를 할당 할 수 있습니다. OpCache.Revalidate_Freq를 조정하여 스크립트의 변경 사항을 OpCache 검사를 얼마나 자주 확인하는지 제어 할 수 있습니다.
OpCache는 모든 PHP 버전과 호환됩니까? opcache는 PHP 5.2 이상과 호환됩니다. 그러나 PHP 5.5로 기본적으로 포함됩니다. 이전 버전의 경우 PECL 확장자로 설치해야합니다.
다른 캐싱 메커니즘과 함께 OpCache를 사용할 수 있습니까? 예, Memcached 또는 Memcached 또는와 같은 다른 캐싱 메커니즘과 함께 Opcache를 사용할 수 있습니다. 레 디스. Opcache는 사전 컴파일 된 바이트 코드를 캐싱하여 PHP 성능을 향상시키는 반면, 다른 캐싱 메커니즘은 데이터베이스 쿼리 또는 PHP 스크립트의 출력을 캐싱하여 성능을 더욱 향상시킬 수 있습니다.
Opcache는 모든 유형의 웹 사이트 또는 응용 프로그램에 적합합니까? Opcache는 트래픽이 높거나 복잡한 응용 프로그램이 높은 웹 사이트에 특히 유익합니다. 시간을로드하고 전반적인 성능을 향상시킵니다. 그러나 성능 이득이 눈에 띄지 않을 수 있으므로 트래픽이 낮거나 간단한 응용 프로그램이있는 웹 사이트에는 효과적이지 않을 수 있습니다. 또한 파일 기반 세션 또는 파일 기반 사용자 데이터 저장에 문제가 발생할 수 있으므로 모든 유형의 웹 사이트 또는 응용 프로그램에 적합하지 않습니다.
위 내용은 Opcache 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!