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によって返される配列には、2つの主要な部分が含まれています: opcacheとスクリプト。特定のフィールドとその意味は次のとおりです。
このセクションには、Opcacheに関連するグローバル統計が含まれており、主なフィールドには以下が含まれます。
バージョン:Opcacheの現在のバージョン数。
例: 「7.4.3」 、 「8.0.0」
このフィールドは、現在のバージョンのOpcacheを示します。これは、更新が必要かどうかを確認するために使用できます。
Memory_usage :次のサブフィールドを含むメモリ使用の統計:
used_memory :opcache使用するメモリバイトの数。
free_memory :Opcacheが利用できるメモリバイトの数。
wasted_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はキャッシュがいっぱいではないことを意味します。
例: trueまたはfalse
Restart_pending :Opcacheを再起動する計画があるかどうかを示すブール値。 Trueは、再起動が保留中であることを意味します。Falseは、再起動する必要がないことを意味します。
RestART_IN_PROGRESS :キャッシュの再起動が実行されているかどうかを示すブール値。真実の場合、それはOpcacheがキャッシュ再起動操作を実行していることを意味します。
スクリプトセクションには、次のフィールドを含む、現在のキャッシュ内のすべてのスクリプトのステータス情報が含まれています。
ファイル名:スクリプトのファイルパス。
例: "/var/www/html/index.php"
opcache_hits :スクリプトの回数はキャッシュされたヒットです。つまり、スクリプトがキャッシュからロードされる回数。
Memory_Consumption :Opcacheのスクリプトが占めるメモリバイトの数。
last_used :スクリプトが最後に使用したタイムスタンプ。
タイムスタンプ:スクリプトが初めてキャッシュするタイムスタンプ。
ユーザー:スクリプトのユーザー情報、通常はスクリプトが実行されたときのユーザー名。
上記の一般的なフィールドに加えて、 opcache_get_statusによって返される配列には、特定のデバッグ情報と構成情報が含まれている場合があります。
これらのフィールドの意味を理解することは、Opcacheの使用を監視および最適化するのに役立ちます。この情報を解釈して利用する方法は次のとおりです。
メモリの使用量:使用済み_memoryおよびfree_memoryフィールドは、キャッシュされたメモリ使用量を理解するのに役立ちます。使用済み_memoryがメモリのほとんどを占め、 free_memoryが低い場合、キャッシュメモリを増やす必要があるか、キャッシュがクリーニングされることを意味する場合があります。 wasted_memoryとcurrent_wasted_percentageの値は、キャッシュに断片化の問題があるかどうかを判断するのに役立ちます。無駄なメモリの割合が高い場合は、パフォーマンスを最適化するためにキャッシュ設定を調整することを検討できます。
ヒット率: opcache_hit_rateは、Opcacheパフォーマンスの重要な指標です。高いヒット率は、Opcacheキャッシュ戦略がうまく機能し、ほとんどのPHPスクリプトがキャッシュからロードされ、より速く実行されることを意味します。ヒット率が低い場合は、Opcache構成を調整するか、多数のスクリプトが頻繁に変更されているかどうかを確認する必要がある場合があり、キャッシュ障害が発生します。
キャッシュの再起動: RESTART_PENDINGおよびRESTART_IN_PROGRESSフィールドは、OpCacheが再起動状態にあるかどうかを理解するのに役立ちます。キャッシュが頻繁に再起動される場合、それは不適切な構成またはその他の理由による可能性があります。 OpCache構成ファイルをチェックして、調整する必要があるパラメーターがあるかどうかを確認する必要があります。
スクリプトステータス:スクリプトセクションには、キャッシュ内のすべてのスクリプトとそのステータス情報がリストされています。この情報を通して、各スクリプトのキャッシュステータスを理解し、どのスクリプトがキャッシュヒット率が低いか、どのスクリプトがより多くのメモリを占有し、それにより特定のスクリプトを最適化するかをすぐに発見できます。
opcache_get_status関数によって返されるデータを介して、opcacheのステータスをリアルタイムで監視することができ、PHPスクリプトの実行効率を最適化できます。これらの分野の意味を理解して分析することで、開発者がOpcacheを効果的に構成し、ウェブサイトの応答速度とパフォーマンスを向上させるのに役立ちます。