ホームページ  >  記事  >  バックエンド開発  >  2組のPHP APC設定ファイルとパラメータの詳細解説_PHPチュートリアル

2組のPHP APC設定ファイルとパラメータの詳細解説_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:28:40701ブラウズ

1. APC をインストールします
http://pecl.php.net/get/APC-3.1.9.tgz をダウンロードします

コンパイルパラメータは次のとおりです:

コードをコピーします コードは次のとおりです:
./configure --enable-apc --enable-apc-spinlocks --disable-apc-pthreadmutex

Iインストールプロセスには入りません。標準の 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中的extension 行注释掉)。

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

默认为 on,但可以设为 off 并和加号开头的 apc.filters 一起用,则文件仅在匹配过滤器时被缓存。

apc.filters string

一个以逗号分隔的 POSIX 扩展正则表达式的列表。如果任一个模式匹配源文件名,则该文件不被缓存。注意用来匹配的文件名是传递给 include/require 的文件名,而不是绝对路径。如果正则表达式的第一个字符是+ t则意味着任何匹配表达式的文件会被缓存,如果第一个字符是 - 则任何匹配项都不会被缓存。 -是默认值,可以省略掉。

apc.mmap_file_mask string

如果使用 --enable-mmap(默认启用)为APC编译了MMAP支持, 这里的值就是传递给mmap模块的mktemp风格的文件掩码(建议值为" /tmp/apc.XXXXXX")。 该掩码用于决定内存映射区域是否要被file-backed或者shared memory backed。 对于直接的file-backed内存映射,要设置成"/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指令。

Deprecated by apc.write_lock.

apc.file_update_protection integer

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

apc.enable_cli integer

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

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

ファイルをアップロードするためのバッファエントリ名のプレフィックス

apc.rfc1867_name string

APC で処理する必要がある隠しフォーム項目名

apc.rfc1867_freq string

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

apc.rfc1867_ttl bool

rfc1867 エントリの 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 string
apc.use_request_time bool
TTL の SAPI リクエスト開始時刻を使用します。

apc.file_md5 bool
ファイルのmd5値を記録します

apc.lazy_functions integer

関数の遅延読み込みを有効にする

apc.lazy_classes integer

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

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/781813.html技術記事 1. APC をインストールします。 http://pecl.php.net/get/APC-3.1.9.tgz をダウンロードします。 コンパイル パラメータは次のとおりです。 次のようにコードをコピーします。 ./configure --enable-apc --enable -apc-spinlocks -- apc-pthreadmut を無効にする...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。