優れたソフトウェアと実用的なチュートリアル
WordPressを拡張するためにMemcachedをインストールします。ウェブサイトのアクセス速度が遅いため、LCP最適化ソリューションが必要です。
インストールMemcached 拡張機能 行為 LCP最適化 LCPは、Googleが近年導入したウェブサイト評価指標です。LCP(Largest Contentful Paint)の中でも特に重要な指標は、LCPとCLSです。LCPを2秒以内に最適化することで、ウェブサイトがGoogle検索結果に表示される機会が増えます。ワードプレス人気のあるものがたくさんありますキャッシュプラグインキャッシュプラグインをインストールできます。キャッシュをどのように最適化しても、サーバーの初期応答時間を短縮する必要があります。LCPの最適化を行う前に、まずサーバーのキャッシュを設定する必要があります。
LCP に関する具体的な参考資料:最大のコンテンツペイントを最適化する
URL が適切な URL ではないとみなされる理由の図解。
サーバーサイドキャッシュツール
キャッシュ(またはコンテンツキャッシュ)は、データのコピーを一時的な保存場所(キャッシュとも呼ばれます)に保存することで、元のストレージからデータを取得するよりも簡単かつ迅速にデータにアクセスできるようにする、広く使用されている手法です。キャッシュの種類と目的に応じて、キャッシュに保存されるデータには、ファイルまたはファイルフラグメント(HTMLファイル、スクリプト、画像、ドキュメントなど)、データベース操作またはレコード、API呼び出し、DNSレコードなどが含まれます。
Linux サーバー向けの優れたオープン ソース キャッシュ ツールが数多くあります。メムキャッシュRedis などもあります。以下では主に Memcached の使い方を紹介します。
メムキャッシュ
Memcachedは、無料かつオープンソースで、シンプルながらも強力な分散メモリオブジェクトキャッシュシステムです。データベース呼び出し、API呼び出し、ページレンダリングの結果など、小さなデータ片を保存するためのメモリ内キーバリューストアです。Unix系オペレーティングシステム(LinuxおよびOS Xを含む)とMicrosoft Windowsで動作します。
Memcached とは何ですか?
無料のオープンソース、高性能、分散メモリ オブジェクト キャッシュ システムです。本質的には汎用的ですが、データベースの負荷を軽減することで動的な Web アプリケーションを高速化するように設計されています。
Memcached は、データベース呼び出し、API 呼び出し、またはページ レンダリング結果から取得した任意の小さなデータ (文字列、オブジェクト) を保存するためのメモリ内キー値ストアです。
Memcachedはシンプルでありながら強力です。シンプルな設計により、迅速な導入と開発が容易になり、大規模なデータキャッシュが直面する多くの問題を解決します。APIは、ほとんどの主要言語で利用可能です。
Memcached公式サイト :http://memcached.org
最新の安定バージョン: memcached-1.6.18.tar.gz (2023-1-10)
Memcachedのインストール
Debian/Ubuntu: apt-get install libevent-dev Redhat/Centos: dnf install libevent-devel
ソースコードをダウンロードし、コンパイルしてインストールする
wget http://memcached.org/latest tar -zxvf memcached-1.6.18.tar.gz cd memcached-1.6.18 ./configure && make && make test && sudo make install
インストール後、起動する必要があります
# memcache がインストールされているかどうかを確認します ls -al /usr/local/bin/mem* # memcache サービスを開始します /usr/local/bin/memcached -d -m 200 -u www -p 11211 -c 256 -P /tmp/memcached.pid
Memcacheパラメータの説明:
- -d オプションはデーモン プロセスを開始します。
- -mはMemcacheに割り当てられたメモリ量(MB単位)です。私の場合は10MBです。
- -u は Memcache を実行しているユーザーです。ここでは root です。
- -l はリスニングサーバーのIPアドレスです。複数のアドレスがある場合は、ここではサーバーのIPアドレス 202.207.177.177 を指定しています。
- -p は Memcache が listen するポートです。私は 11211 に設定しました。1024 以上のポートを使用することをお勧めします。
- -c オプションは同時接続の最大数です。デフォルトは1024です。私は256に設定しました。サーバーの負荷に応じて設定してください。
- -PはMemcacheを保存するpidファイルを設定します。私は/tmp/memcached.pidに保存します。
ソフトウェアリポジトリ経由でインストール
dnf libevent-devel memcached をインストール
インストール後、起動時に起動するように設定する
#起動 systemctl start memcached #ブートスタートアップの設定 systemctl enable memcached #現在のステータスの表示 systemctl status memcached
Memcached のキャッシュサイズの変更
インストールが完了したら、memcachedのキャッシュサイズを変更します。デフォルトは64MBです。キャッシュサイズを1024MBに変更してください。
開ける /etc/sysconfig/memcached ファイルで、CACHESIZE を次のように変更します。1024
ポート="11211" ユーザー="memcached" 最大接続数="1024" キャッシュサイズ="1024" オプション="-l 127.0.0.1,::1,コントローラ"
変更が完了したら、systemctl で memcached を再起動します。
サービスを再起動する
ps -ef | grep memcached
構成が有効かどうかを確認する
Memcachedをインストールした後、ウェブサイトでMemcachedを適切に動作させたい場合には、Memcached拡張機能をインストールする.
Memcached拡張機能をインストールする
注:Memcachedをインストールする前に、PHP拡張機能にはMemcache拡張機能とMemcached拡張機能の2種類があることを知っておく必要があります。Memcached拡張機能はMemcache拡張機能のアップグレード版で、より多くの機能と優れたパフォーマンスをサポートしています。間違った拡張機能をインストールしないようにご注意ください。
- memcache はネイティブ PHP をサポートし、第 1 世代のキャッシュに属する pecl 拡張ライブラリ バージョンです。
- memcachedはlibmemcachedの後継バージョンです。新世代のキャッシュであり、より完全な機能を備えています。memcachedの使用をお勧めします。
DNF によってインストールされる PHP8.0 のインストール パスと構成場所は次のとおりです。
- RPM パッケージによってインストールされた PHP のインストール パス: /usr/bin/php-config
- PHP設定ファイル: /etc/php.ini
以下はMemcache拡張機能とMemcached拡張機能のインストール方法です。Memcache拡張機能のインストールが不要な場合は、Memcached拡張機能のインストール方法に直接進んでください。
ソースインストールメモリキャッシュ拡張機能
Memcache 拡張機能に必要な依存関係をインストールします。
dnf インストール zlib zlib-devel
ステップ1:開くhttps://pecl.php.net/package/memcachePHP8 用の Memcache 拡張機能インストール パッケージをダウンロードします。
注: Memcache拡張機能のインストールパッケージはPHPのバージョンによって異なります。対応するバージョンを見つけてインストールしてください。
php8 用の Memcache 拡張機能インストール パッケージ: https://pecl.php.net/get/memcache-8.0.tgz
ステップ2: サーバーにログインし、Memcache拡張機能のインストールパッケージをダウンロードして解凍します。
wget https://pecl.php.net/get/memcache-8.0.tgz tar -xvf memcache-8.0.tgz cd memcache-8.0
ステップ3: Memcache拡張機能をインストールする
phpize ./configure --with-php-config=/usr/bin/php-config make && make install
インストールが成功すると、インストール場所が表示されます。 共有拡張機能のインストール: /usr/lib64/php/modules/
ステップ 4: php.ini ファイルを変更し、Memcache 拡張機能を有効にして、次のコンテンツを php.ini ファイルの末尾に追加します。
拡張子 = memcache
PHPの設定が正しいかどうかをテストし、PHPサービスを再起動します。
php-fpm -t systemctl php-fpm を再起動します
PHPプローブファイルを確認すると拡張機能が正常に起動します
ソースインストールメムキャッシュ拡張機能
ステップ1:開くhttps://pecl.php.net/package/memcachedphp8をダウンロードMemcached 拡張機能パッケージをインストールします。
注意: PHP のバージョンが異なります。Memcached 拡張機能インストール パッケージも異なるため、対応するバージョンを見つけてインストールしてください。
php8 用の Memcached 拡張機能インストール パッケージ:memcached-3.2.0.tgz
ステップ2: サーバーにログインし、Memcached拡張機能のインストールパッケージをダウンロードして解凍します。
wget https://pecl.php.net/get/memcached-3.2.0.tgz tar -xvf memcached-3.2.0.tgz cd memcached-3.2.0
memcached の場合、この拡張機能には libmemcached クライアント ライブラリが必要です。そうでない場合、次のエラーが発生します。
エラー: memcached サポートには libmemcached が必要です。--with-libmemcached-dir= を使用してください。 libmemcached のヘッダーとライブラリが配置されているプレフィックスを指定する
dnf で libmemcached と libmemcached-devel をインストールし、remi-libmemcached-awesome をインストールします。
注: libmemcached-develがソフトウェアリポジトリにない場合は、ダウンロードしてインストールできます。
wget https://vault.centos.org/centos/8/PowerTools/x86_64/os/Packages/libmemcached-devel-1.0.18-15.el8.x86_64.rpm dnf --enablerepo=powertools で libmemcached-devel をインストールします。
ステップ3: Memcached拡張機能をインストールする
phpize ./configure --with-php-config=/usr/bin/php-config make && make install
インストールが成功すると、インストール場所が表示されます。 共有拡張機能のインストール: /usr/lib64/php/modules/
ステップ 4: php.ini ファイルを変更し、Memcached 拡張機能を有効にして、次のコンテンツを php.ini ファイルの末尾に追加します。
拡張子 = memcached
PHPの設定が正しいかどうかをテストし、PHPサービスを再起動します。
php-fpm -t systemctl php-fpm を再起動します
PHPプローブファイルを表示し、Memcached 拡張機能通常の起動
ソース コードをダウンロードせずに、pecl コマンドを使用して memcached 拡張機能をインストールできます。
peclでmemcachedをインストールする
知識ポイント:dnf を使用して PHP 拡張機能をソフトウェア リポジトリにインストールできない場合は、pecl コマンドを使用して PHP 公式拡張機能リポジトリにインストールできます。
Memcached拡張機能をインストールしたら、WordPressとMemcachedを接続する必要があります。サーバー側とWEB側を接続しないと、Memcachedキャッシュは機能しません。
WordPress Memcached の設定
wp-config.php に次の内容を追加します。
global $memcached_servers; $memcached_servers = array( array( '127.0.0.1', // MemcachedサーバーのIPアドレス 11211 // Memcachedサーバーのポート ) );
複数のサイト キャッシュ設定がある場合は、以下を参照してください。
グローバル $memcached_servers; $memcached_servers = array( array( '1.2.3.4', 11211 ), array( '1.2.3.5', 11211 ) );
Memcached は IP とポートをリッスンしており、次のコマンドでそれを表示できます。
netstat -nutlp | grep メモリキャッシュ
WordPressでキャッシュプラグインを使用してmemcachedを設定する
W3 Total Cache Pro v2.3.0をダウンロードしてインストールしてください。クラック版を無料でダウンロードできます。WordPressキャッシュプラグインのおすすめです。
W3TC は現在、複雑な設定やコードの変更などなしで、プラグイン インターフェイスで memcached メモリ キャッシュを構成できます。W3TC は強力で、多くのキャッシュ構成オプションがあります。WPメテオプラグインの使用。
Memcachedが正常に動作しているかどうかを監視する方法
クリックして監視ファイル memcache.php をダウンロードします
memcache.php ファイルをダウンロードしたら、サーバーの WordPress ディレクトリにアップロードします。アップロードする前に、ファイル内のアクセスユーザーのパスワードを変更してください。
$VERSION='$Id$'; Define('ADMIN_USERNAME','ユーザー名を設定'); // 管理者ユーザー名 Define('ADMIN_PASSWORD','パスワードを設定'); // 管理者パスワード Define('DATE_FORMAT','Y/m/d H:i:s'); Define('GRAPH_SIZE',200); Define('MAX_ITEM_DUMP',50); $MEMCACHE_SERVERS[] = '127.0.0.1:11211'; // 配列として追加 //$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // マルチサイトメモリキャッシュの場合は、ここに設定
アップロード後、memcache.php ファイルの URL アドレスにアクセスして、メモリ キャッシュの動作ページを確認します。
Zend OPcache の設定
使用 オプキャッシュ OPcacheを使用すると、PHPコードの実行効率を向上させ、PHPスクリプトを毎回読み込み、解析する際のオーバーヘッドを削減できます。OPcacheはPHP8ではデフォルトで有効になっています。
PHP 8ではPHPカーネルにJITコンパイラが追加され、パフォーマンスが大幅に向上します。CPU負荷の高い処理が強化されたことで、将来的にはPHPでも複雑なプロトコル解析を適切に実行できるようになるかもしれません。
まず、JITはopcacheが有効になっている場合にのみ機能します。これはほとんどのPHPインストールでデフォルト設定ですが、php.iniファイルでopcache.enableが1に設定されていることを確認してください。JITはopcache.jit_buffer_sizeで設定されます。
php.ini を設定し、php.ini の最後に以下を追加するだけです。
opcache.enable=1 opcache.jit_buffer_size=100M opcache.jit=1255 opcache.revalidate_freq=0 opcache.validate_timestamps=0 opcache.max_accelerated_files=7963 opcache.memory_consumption=192 opcache.interned_strings_buffer=16 opcache.fast_shutdown=1
opcache.revalidate_freq
このオプションは、キャッシュの有効期限(秒単位)を設定するために使用されます。この時間に達すると、opcache はコードの変更を確認します。変更されている場合、PHP はコードを再コンパイルし、新しいオペコードを生成してキャッシュを更新します。値が「0」の場合、リクエストごとに PHP コードの更新がチェックされます(つまり、多くの stat システムコールが追加されます。注:stat システムコールはファイルの状態を読み取るためのものです。ここでは主に最終更新時刻を取得します。このシステムコールはディスク I/O を発生させるため、必然的に CPU 時間を消費します。もちろん、システムコール自体も CPU 時間を消費します)。開発環境では 0 に設定できますが、本番環境では気にする必要はありません。後ほど別の設定オプションを紹介します。
opcache.validate_timestamps
このオプションを有効にすると (1 に設定)、PHP は opcache.revalidate_freq で設定された時間後にファイルのタイムスタンプをチェックします。
このオプションが無効(0に設定)の場合、opcache.revalidate_freq は無視され、PHPファイルはチェックされません。つまり、コードを変更し、サーバー上で更新した後、ブラウザで更新後のコードの対応する関数をリクエストしても、更新の効果は確認されず、PHPファイルをリロードする必要があります(強制的にリロードするには、kill -SIGUSR2 を使用してください)。
この設定は少し面倒ですが、本番環境では必ず使用することをお勧めします。なぜでしょうか?サーバーコードを更新する際、コード量が多いと更新処理が遅延するからです。この遅延により、古いコードと新しいコードが混在する状態になり、ユーザーリクエストの処理に不確実性が生じてしまいます。
opcache.max_accelerated_files
このオプションは、メモリにキャッシュできるPHPファイルの最大数を制御します。このオプションは、プロジェクト内のすべてのPHPファイルの合計よりも大きい値に設定する必要があります。私のコードベースには約6000個のPHPファイルがあるため、この値を素数7963に設定しました(翻訳者注:この人がなぜこの数値を設定したのかは分かりませんが、7963は6000より大きい最小の素数ではありません)。コマンド「find . -type f -print | grep php | wc -l」を実行すると、コードベース内のPHPファイルの数を簡単に計算できます。
opcache.memory_consumption
このオプションのデフォルト値は64MBですが、コードが大きいため192MBに設定しました。opcacheが使用しているメモリの総量はopcachegetstatus()を呼び出すことで取得できます。この値が大きい場合は、このオプションをより大きな値に設定してください。
opcache.interned_strings_buffer
これは非常に便利なオプションですが、全くドキュメント化されていないようです。PHPはパフォーマンス向上のために文字列インターンと呼ばれる手法を使用しています。例えば、コード内で文字列「foobar」を1000回使用した場合、PHPは最初の使用時にのみ文字列を保存するための不変メモリ領域を割り当て、残りの999回の使用ではこのメモリ領域を直接参照します。このオプションは、この機能を次のレベルへと引き上げます。
デフォルトでは、この不変メモリ領域は単一のphp-fpmプロセスにのみ存在します。このオプションを設定すると、すべてのphp-fpmプロセス間で共有されます。大規模なアプリケーションでは、メモリを節約し、アプリケーションのパフォーマンスを向上させるのに非常に効果的です。
このオプションの値はメガバイト単位です。16に設定すると16MBを意味します。デフォルトは4MBで、比較的低い値です。
opcache.fast_shutdown
非常に便利なものの、ドキュメント化されていないオプションです。文字通り「シャットダウンの高速化」を意味します。この機能は、単一のリクエストの終了時にコード内でデストラクタを呼び出すための高速メカニズムを提供することで、PHPの応答速度とPHPプロセスリソースの再利用を高速化し、アプリケーションが次のリクエストに迅速に応答できるようにします。このメカニズムを使用するには、1に設定してください。