PHP에서 Opcache는 캐시 된 바이트 코드에 의해 PHP 스크립트의 실행을 가속화하는 캐싱 시스템입니다. opcache_get_status 함수는 Opcache의 현재 상태 정보를 얻는 데 사용할 수있는 매우 실용적인 디버깅 도구입니다. 이 기능을 통해 캐시 사용, 적중률 및 기타 성능 메트릭을 확인할 수 있습니다.
opcache_get_status 함수의 기본 구문은 다음과 같습니다.
<span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-title function_ invoke__">opcache_get_status</span></span><span> ( </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$no_cache</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span> )
</span></span>그 중 $ no_cache 매개 변수는 캐시를 사용하여 데이터를 얻을 것인지 결정합니다. 기본값은 False , 즉 캐시의 데이터를 읽습니다. true 로 설정되면 현재 캐시 컨텐츠를 무시하고 Opcache 캐시에서 직접 데이터를 읽습니다.
이 함수는 Opcache 상태 정보를 포함하는 연관 배열을 반환합니다. 아래에서는 배열의 각 필드의 의미를 자세히 설명합니다.
opcache_get_status가 반환 한 배열에는 Opcache 와 스크립트의 두 가지 주요 부분이 포함되어 있습니다. 특정 필드와 그 의미는 다음과 같습니다.
이 섹션에는 Opcache와 관련된 글로벌 통계가 포함되어 있으며 주요 필드에는 다음이 포함됩니다.
버전 : OpCache의 현재 버전 번호.
예 : "7.4.3" , "8.0.0"
이 필드는 현재 버전의 Opcache를 알려줍니다.이 버전은 업데이트가 필요한지 확인하는 데 사용할 수 있습니다.
memory_usage : 다음 서브 필드를 포함한 메모리 사용 통계 :
사용 된 _memory : 사용 된 메모리 바이트 수를 opcache.
free_memory : opcache에 사용할 수있는 메모리 바이트 수입니다.
WASTET_MEMORY : 일반적으로 캐시의 잘못된 데이터 또는 단편화로 인해 메모리 바이트 수가 낭비됩니다.
current_wasted_percentage : 전체 메모리로서 전류 낭비 메모리의 백분율.
예:
<span><span><span class="hljs-string">"memory_usage"</span></span><span> => </span><span><span class="hljs-keyword">array</span></span><span>(
</span><span><span class="hljs-string">"used_memory"</span></span><span> => </span><span><span class="hljs-number">12345678</span></span><span>,
</span><span><span class="hljs-string">"free_memory"</span></span><span> => </span><span><span class="hljs-number">8765432</span></span><span>,
</span><span><span class="hljs-string">"wasted_memory"</span></span><span> => </span><span><span class="hljs-number">123456</span></span><span>,
</span><span><span class="hljs-string">"current_wasted_percentage"</span></span><span> => </span><span><span class="hljs-number">1.2</span></span><span>
)
</span></span>opcache_hit_rate : 캐시 히트의 비율을 나타내는 Opcache의 적중률은 일반적으로 백분율로 반환됩니다.
예 : 98.4%
이 필드는 캐시 효과를 측정하기위한 핵심 지표입니다. 값이 높을수록 캐시 적중률이 높아지고 성능이 높아집니다.
CACHE_FULL : OpCache 캐시가 가득 찼는지를 나타내는 부울 값. True는 캐시가 가득 찼음을 의미하고, False는 캐시가 가득 차 있지 않음을 의미합니다.
예 : 참 또는 거짓
RETART_PENDING : OpCache를 다시 시작할 계획이 있는지 여부를 나타내는 부울 값. True는 재시작 중이라는 것을 의미하며, False는 다시 시작할 필요가 없음을 의미합니다.
RETART_IN_PROGRESS : 캐시 재시작이 수행되는지 여부를 나타내는 부울 값. 사실 이라면 Opcache가 캐시 재시작 작업을 수행한다는 것을 의미합니다.
스크립트 섹션에는 다음 필드를 포함하여 현재 캐시의 모든 스크립트의 상태 정보가 포함되어 있습니다.
파일 이름 : 스크립트의 파일 경로.
예 : "/var/www/html/index.php"
opcache_hits : 스크립트의 횟수는 캐시 히트입니다. 즉, 스크립트가 캐시에서로드되는 횟수입니다.
Memory_Consumption : Opcache의 스크립트가 차지하는 메모리 바이트 수.
last_used : 스크립트가 마지막으로 사용한 타임 스탬프.
타임 스탬프 : 스크립트가 처음으로 캐시하는 타임 스탬프.
사용자 : 스크립트의 사용자 정보, 일반적으로 스크립트가 실행될 때 사용자 이름입니다.
위에서 언급 한 공통 필드 외에도 opcache_get_status 에 의해 반환 된 배열에는 특정 디버깅 정보 및 구성 정보가 포함될 수 있으며, 이는 PHP 버전 및 OPCache 구성에 따라 다릅니다.
이 필드의 의미를 이해하면 Opcache 사용을 모니터링하고 최적화하는 데 도움이 될 수 있습니다. 이 정보를 해석하고 활용하는 방법은 다음과 같습니다.
메모리 사용 : 사용 된 _memory 및 free_memory 필드는 캐시 메모리 사용을 이해하는 데 도움이 될 수 있습니다. 사용 된 _memory가 대부분의 메모리를 차지하고 free_memory 가 낮 으면 캐시 메모리를 늘리거나 캐시가 정리되어야한다는 것을 의미 할 수 있습니다. Wasted_Memory 및 current_wasted_percentage 의 값은 캐시에 단편화 문제가 있는지 여부를 결정하는 데 도움이 될 수 있습니다. 낭비 된 메모리의 비율이 높으면 캐시 설정을 조정하여 성능을 최적화 할 수 있습니다.
적중률 : opcache_hit_rate는 Opcache 성능의 중요한 지표입니다. 적중률이 높으면 Opcache 캐시 전략이 잘 작동하며 대부분의 PHP 스크립트는 캐시에서로드되어 더 빠르게 실행됩니다. 적중률이 낮은 경우 Opcache 구성을 조정하거나 많은 스크립트가 자주 수정되어 캐시 실패가 발생하는지 확인해야 할 수도 있습니다.
캐시 재시작 : RETART_PENDING 및 ROTHART_IN_PROGRESS 필드는 OpCache가 다시 시작 상태인지 이해하는 데 도움이 될 수 있습니다. 캐시가 자주 다시 시작되면 부적절한 구성 또는 기타 이유 때문일 수 있습니다. Opcache 구성 파일을 확인하여 조정해야 할 매개 변수가 있는지 확인해야합니다.
스크립트 상태 : 스크립트 섹션에는 캐시에 모든 스크립트와 해당 상태 정보가 나열되어 있습니다. 이 정보를 통해 각 스크립트의 캐시 상태를 이해하고 어떤 스크립트에 캐시 적중률이 낮거나 어떤 스크립트가 더 많은 메모리를 차지하여 특정 스크립트를 최적화 할 수 있는지 즉시 발견 할 수 있습니다.
opcache_get_status 함수가 반환 한 데이터를 통해 Opcache 상태를 실시간으로 모니터링하여 PHP 스크립트의 실행 효율을 최적화 할 수 있습니다. 이러한 분야의 의미를 이해하고 분석하면 개발자가 OPCache를 효과적으로 구성하고 웹 사이트의 응답 속도 및 성능을 향상시키는 데 도움이 될 수 있습니다.