ホームページ  >  記事  >  バックエンド開発  >  PHP APC の 2 セットの設定ファイルとパラメータの分析

PHP APC の 2 セットの設定ファイルとパラメータの分析

不言
不言オリジナル
2018-06-21 10:40:301326ブラウズ

この記事では、主に 2 つの PHP APC 設定ファイルと詳細なパラメーターを紹介します。必要な方は、

1 のコンパイルを参照してください。パラメータは次のとおりです:

./configure --enable-apc --enable-apc-spinlocks --disable-apc-pthreadmutex

インストール プロセス (標準の PHP 拡張機能インストール モード) には入りません。


2 設定ファイル 2 セット

高パフォーマンス、頻繁な更新には適さない:

apc.enabled=1
apc.stat = 0
apc.stat_ctime = 0
apc.shm_size = 64M
apc.shm_segments = 1
apc.num_files_hint = 1000
apc.ttl = 0
apc.slam_defense = 0
apc.write_lock = 1
apc.file_update_protection = 2

わずかに低いパフォーマンス:

apc.enabled=1
apc.stat = 1
apc.stat_ctime = 1
apc.shm_size = 64M
apc.shm_segments = 1
apc.num_files_hint = 1000
apc.ttl = 86400
apc.slam_defense = 0
apc.write_lock = 1
apc.file_update_protection = 2

2 セットの構成の鍵となるのは、その後の apc.stat です。オンにすると、APC はファイルが更新されたかどうかをチェックしないため、大量の不要なシステム コールを減らすことができます。

ただし、新しくリリースされた問題については、PHP の再起動が必要になります。# 状況に応じて選択できます。

##さらに、パラメータの説明を添付します。

apc.enabled boolean

apc.enabled を 0 に設定すると、APC を無効にできます。これは主に、APC が静的に PHP にコンパイルされるときに使用されます。これは、他に無効にする方法がないためです (DSO としてコンパイルされている場合は、php.ini の拡張行をコメント アウトできます)。


apc.shm_segments integer

コンパイラ キャッシュによって割り当てられる共有メモリ ブロックの数。 APC が共有メモリを使い果たしているにもかかわらず、apc.shm_size がシステムで許可されている最大値に設定されている場合は、この値を増やしてみることができます。


apc.shm_size integer

各共有メモリ ブロックのサイズ (MB 単位)。一部のシステム (ほとんどの BSD バリアントを含む) では、デフォルトで共有メモリ ブロック サイズが非常に小さくなります。

apc.optimization integer

最適化レベル。オプティマイザーを無効にするには 0 に設定し、より積極的な最適化を使用するには値を大きくします。速度の改善は非常に限られていると予想されます。まだテスト中です。


apc.num_files_hint integer

Web サーバーに含まれる、または要求されるさまざまな元のファイルの数の概算。 0 に設定するか、不明な場合はこのオプションを削除してください。この設定は主に数千のソース ファイルを含むサイトで使用されます。


apc.user_entries_hint integer

apc.num_files_hint と同様に、一意のユーザーの数に基づいてキャッシュ変数を保存します。不明な場合は、0 に設定するか、この項目を削除してください。


apc.ttl integer

キャッシュ エントリがバッファ内に存在できる秒数。 0 はタイムアウトしないことを意味します。推奨値は 7200 ~ 86400 です。これを 0 に設定すると、バッファが古いキャッシュ エントリでいっぱいになり、新しいエントリをキャッシュできなくなる可能性があります。


apc.user_ttl integer

apc.ttl と似ていますが、各ユーザーの推奨値は 7200 ~ 86400 です。 0 に設定すると、バッファが古いキャッシュ エントリでいっぱいになり、新しいエントリがキャッシュされなくなる可能性があることを意味します。 0 より大きい場合、APC は期限切れのエントリを削除しようとします。


apc.gc_ttl integer

キャッシュ エントリがガベージ コレクション テーブルに存在できる秒数。この値は、サーバー プロセスがキャッシュされたソース ファイルを実行中にファイルが変更された場合、この TTL に達するまで古いバージョンはリサイクルされないという安全策を提供します。この機能を無効にするには、ゼロに設定します。

apc.cache_by_default boolean

デフォルトはオンですが、オフに設定して、プラス記号で始まる apc.filters と一緒に使用することもできます。その場合、ファイルはフィルターに一致するときにキャッシュされます。


apc.filters string

POSIX 拡張正規表現のカンマ区切りのリスト。いずれかのパターンがソース ファイル名と一致する場合、そのファイルはキャッシュされません。一致に使用されるファイル名は、絶対パスではなく、include/require に渡されたファイル名であることに注意してください。正規表現の最初の文字が t の場合、その式に一致するファイルがキャッシュされることを意味します。最初の文字が - の場合、一致するファイルはキャッシュされません。 - はデフォルト値であり、省略できます。


apc.mmap_file_mask string

MMAP サポートが --enable-mmap (デフォルトで有効) を使用して APC 用にコンパイルされた場合、ここでの値は、 mmap モジュールのマスク (推奨値は「/tmp/apc.XXXXXX」)。このマスクは、メモリ マップ領域をファイル バックアップするか共有メモリ バックアップするかを決定するために使用されます。ファイルに基づくダイレクト メモリ マッピングの場合は、「/tmp/apc.XXXXXX」 (正確に 6 つの X) のように設定します。 POSIX スタイルの shm_open/mmap を使用するには、「/apc.shm.XXXXXX」に設定する必要があります。また、これを「/dev/zero」に設定して、匿名でマップされたメモリにカーネルの「/dev/zero」インターフェイスを使用することもできます。このディレクティブを定義しないと、匿名マッピングの使用が強制されます。


apc.slam_defense integer

非常に負荷の高いサーバーでは、サービスの開始時でもファイルの変更時でも、複数のプロセスが同時にファイルをキャッシュしようとすることで競合状態が発生する可能性があります。時間。このオプションは、キャッシュされていないファイルを処理するときにプロセスがキャッシュ手順をスキップする割合を設定します。たとえば、これを 75 に設定すると、キャッシュされていないファイルが見つかったときに 75% の確率でキャッシュされないことになり、衝突の可能性が低くなります。このディレクティブの使用は非推奨となっており、この機能を無効にするには 0 に設定することをお勧めします。 apc.write_lock 命令を使用することをお勧めします。

apc.write_lock.
によって非推奨になりました

apc.file_update_protection integer
実行中のサーバー上のファイルを変更するときは、アトミック操作を実行する必要があります。つまり、最初に一時ファイルに書き込み、次にそのファイルの名前を最終的な名前に変更 (mv) します。テキスト エディターや cp や tar などのプログラムはこのようには動作しないため、不完全なファイルがバッファリングされる可能性があります。デフォルト値 2 は、ファイルにアクセスするときに、変更時間がアクセス時間から 2 秒未満であることが判明した場合、バッファリングは実行されないことを意味します。不運な訪問者は破損したコンテンツを受け取る可能性がありますが、その悪影響はキャッシュによって拡大されません。すべての更新操作がアトミックであることを確認できる場合は、0 を指定してこの機能をオフにすることができます。 IO 操作が多いためにシステムの更新が遅い場合は、この値を増やす必要がある場合があります。

apc.enable_cli integer
CLI バージョンの APC 機能を有効にするかどうかは、テストとデバッグの目的でのみこのオプションをオンにします。通常の状況では、CLI へのリクエストごとに APC キャッシュを作成、設定、破棄するのは理想的ではありませんが、CLI バージョンの PHP APC

# を簡単に作成できることは、さまざまなテスト シナリオで役立ちます。 ##apc.max_file_size integerデフォルトは 1M で、この値より大きいファイルはキャッシュされません。

apc.stat integerスクリプトの更新を有効にするかどうかチェック。このコマンドの値を変更する場合は十分に注意してください。デフォルト値 On は、APC がスクリプトが要求されるたびに更新されているかどうかをチェックし、更新されている場合は自動的に再コンパイルし、コンパイルされたコンテンツをキャッシュすることを示します。ただし、これを行うとパフォーマンスに悪影響が生じます。 Off に設定するとチェックは実行されないため、パフォーマンスが大幅に向上します。ただし、更新されたコンテンツを有効にするには、Web サーバーを再起動する必要があります (翻訳者注: cgi/fcgi を使用している場合は、cgi/fcgi プロセスを再起動する必要があります)。スクリプト ファイルがほとんど変更されない運用サーバーでは、このオプションを無効にすることで大幅なパフォーマンスの向上を実現できます。

このディレクティブは、include/require ファイルにも有効です。ただし、相対パスを使用する場合、APC は include/require するたびにファイルの場所を確認する必要があることに注意してください。絶対パスを使用するとチェックがスキップされる可能性があるため、include/require 操作には絶対パスを使用することをお勧めします。

apc.write_lock boolean負荷の高いサーバーでは、Web サーバーが初めて起動されるとき、または多くのファイルが同時に変更されるときに、APC が同じものをコンパイルする可能性があります。ファイルを複数回ファイル、書き込みロックにより、1 つのプロセスだけがキャッシュされていないスクリプトのコンパイルとキャッシュを試行することが保証されます。スクリプトを使用しようとする他のプロセスはオペコード キャッシュを使用せず、代わりにロックしてキャッシュが生成されるのを待ちます。

apc.report_autofilter boolean
早期/遅延バインディングの理由により自動的にキャッシュされないすべてのスクリプトを記録するかどうか。

apc.include_once_override boolean
include_once() 関数と require_once() 関数を最適化して、追加のシステム コールの実行を回避します。

apc.rfc1867 boolean
ファイル アップロードの進行状況の監視機能を有効にする

apc.rfc1867_prefix stringファイルのアップロードのバッファリング項目エントリname prefix

apc.rfc1867_name stringAPC で処理する必要があるアップロードされたファイルの隠しフォーム項目名

apc.rfc1867_freq string
ユーザーがアップロードしたファイル キャッシュ アイテムの更新頻度。値は合計ファイル サイズのパーセンテージ、または「k」、「m」、または「g」で終わる絶対サイズ (大文字と小文字は区別されません) です。0 は最速の更新を意味します。これにより、アップロード速度が遅くなる可能性があります。

apc.rfc1867_ttl boolrfc1867 エントリの TTL。

apc.localcache boolean
非ロック ローカル プロセス シャドウを使用する- キャッシュ。バッファに書き込む際のロック間の競合を軽減します。

apc.localcache.size integer
ローカル プロセスのシャドウ キャッシュのサイズは、十分に大きな値 (apc.num_files_hint.
の約半分) に設定する必要があります。

apc.coredump_unmap boolean
シグナルがコア ファイルに書き込まれるときに、SIGSEGV シグナルなどの APC シグナル ハンドラーを有効にします。これらの信号を受信すると、APC は共有メモリ セグメントのマッピングを解除し、コア ファイルから除外しようとします。この設定により、致命的な信号を受信したとき、または APC の大規模な共有メモリ セグメント構成を使用したときのシステムの安定性が向上します。

apc.stat_ctime integer
ctime (作成時間) を検証すると、SVN または rsync によって引き起こされる問題を回避し、最後の統計以降に i ノードが変更されていないことを確認できます。 APC は通常、mtime (変更時間) のみをチェックします。

apc.canonicalize bool
on に設定すると、相対パスは状態なしモード (ファイルの更新のチェックなし) で絶対パスに変更されます。

apc.preload_path stringapc.use_request_time bool
TTL の SAPI リクエスト開始時刻を使用します。

##apc.file_md5 bool

ファイルの md5 値を記録します
##apc.lazy_functions integer

関数の遅延読み込みを有効にする
##apc.lazy_classes integer

クラスの遅延読み込みを有効にする

以上がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

PHP で乱数を生成する 3 つの方法

PHP で一般的に使用されるフレームワーク関数の比較 # #####################################

以上がPHP APC の 2 セットの設定ファイルとパラメータの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。