WordPress高速化設定

スポンサーリンク
RockyLinux
この記事は約9分で読めます。
ランキングに参加しています。応援よろしくお願いします。
ブログランキング・にほんブログ村へ 人気ブログランキングへ FC2ブログランキングへ
スポンサーリンク
この記事が気に入ったら
フォローしよう
最新情報をお届けします。

前回の「HTTPS(SSL/TLS)化」に続いて、Rocky Linux 9 サーバ構築手順次のステップは、「WordPress高速化設定編」について設定を行います。

WordPressのパフォーマンスを向上させるために、PHPのOPcacheとMariaDBのチューニングを実施します。
適切な設定を行うことで、ページの応答速度が大幅に改善され、サーバリソースの効率的な活用が可能になります。

免責事項:

本記事の内容は筆者の環境で動作確認したものですが、すべての環境での動作を保証するものではありません。本記事の手順を実施する際は、以下の点にご注意ください。

  • 必ず事前にバックアップを取得してください
  • 本番環境での作業前にテスト環境で十分に検証してください
  • 本記事の内容を参考に作業を行った結果生じた損害について、筆者は一切の責任を負いません
  • 各コマンドの実行は自己責任でお願いします

当ブログサイトを運用しているサーバは、「KAGOYA JAPAN」で提供されている「KAGOYA CLOUD VPS」を利用しています。

  • OS: Rocky Linux 9
  • Webサーバ: Nginx
  • PHP: 8.3
  • データベース: MariaDB

OPcacheは、PHPのスクリプトをコンパイル済みのバイトコード(オペコード)としてメモリにキャッシュする機能です。
通常、PHPはリクエストのたびにスクリプトを解析・コンパイルしますが、OPcacheを使用することでこの処理をスキップし、PHPの性能を大幅に向上させることができます。

sudo vi /etc/php.d/10-opcache.ini

設定内容(抜粋)

zend_extension=opcache
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.blacklist_filename=/etc/php.d/opcache*.blacklist
opcache.huge_code_pages=0

各パラメータの説明

パラメータ説明
opcache.enableOPcacheを有効化(0:無効、1:有効)
opcache.enable_cliPHP の CLI 版に対してオペコードキャッシュを有効化
opcache.memory_consumptionOPcacheが使用できるメモリの最大値(MB単位)
opcache.max_accelerated_filesキャッシュできるファイル数の最大値
opcache.revalidate_freqスクリプトのタイムスタンプをチェックする頻度(秒単位)。0にするとリクエストごとに更新チェックを実施
opcache.blacklist_filenameOPcache ブラックリストファイルの場所。キャッシュ対象外とするファイルを1行1つで記載(ワイルドカードやプレフィックスも使用可能)
opcache.huge_code_pagesPHPコード(textセグメント)をHUGE PAGEにコピーする機能の有効化(0:無効、1:有効)

補足:

opcache.memory_consumption はサイトの規模に応じて調整してください。WordPressプラグインが多い場合は 256 程度に増やすと効果的です。

設定反映のためPHP-FPMを再起動します。

sudo systemctl restart php-fpm

PHPのバージョンとOPcacheの有効化を確認します。

php -v

出力例

PHP 8.3.12 (cli) (built: Sep 24 2024 18:08:04) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.3.12, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.12, Copyright (c), by Zend Technologies

出力に with Zend OPcache の文字列が表示されていれば、OPcacheが有効化されています。

注意:

Zend OPcache の文字列が表示されない場合は、設定ファイルのパスや構文を再確認してください。


MariaDBのパフォーマンスチューニングを行います。
WordPressはデータベースへのアクセスが多いため、適切な設定によりサイト全体の応答速度を改善できます。

sudo vi /etc/my.cnf.d/server.cnf

設定内容(抜粋)

[mysqld]

# バッファプール
innodb_buffer_pool_size = 2G
innodb_log_file_size = 256M

# スレッド
max_connections = 150
thread_cache_size = 100

# InnoDBの設定
innodb_flush_log_at_trx_commit = 2
innodb_io_capacity = 200
innodb_read_io_threads = 4
innodb_write_io_threads = 4

# その他のバッファ設定(WordPress向け)
key_buffer_size = 16M
sort_buffer_size = 2M
read_buffer_size = 1M
join_buffer_size = 1M

# パフォーマンススキーマ
performance_schema = ON

各パラメータの説明

パラメータ説明
innodb_buffer_pool_sizeInnoDBのバッファプールサイズ。一般的にはメモリ容量の50〜70%程度を割り当てる。WordPressのような頻繁にアクセスされるサイトでは多めに設定すると効果的
innodb_log_file_sizeトランザクションログのサイズ。頻繁な更新がある場合は大きくすることでパフォーマンスが向上する
max_connections同時に許可される最大接続数。WordPressのアクセス数に応じて適宜調整
thread_cache_size再利用のためにキャッシュされるスレッド数。接続の頻繁な作成・破棄を減らし、オーバーヘッドを低減
innodb_flush_log_at_trx_commitトランザクションコミット時のログ書き込み頻度(0:毎秒、1:毎コミット、2:毎コミット書き込み+毎秒フラッシュ)。2 はパフォーマンスと安全性のバランスがよい
innodb_io_capacityInnoDBのI/O処理能力の目安値。SSDを使用している場合はより高い値(例:1000〜2000)に設定するとパフォーマンスが向上する場合がある
innodb_read_io_threads読み取り処理に使用するスレッド数
innodb_write_io_threads書き込み処理に使用するスレッド数
key_buffer_sizeMyISAMのインデックスキャッシュサイズ。WordPressはInnoDBを主に使用するが、一部のシステムテーブルに影響
sort_buffer_sizeソート処理に使用するバッファサイズ
read_buffer_sizeテーブルスキャン時の読み取りバッファサイズ
join_buffer_sizeJOIN処理に使用するバッファサイズ
performance_schemaパフォーマンス関連の統計情報を収集する機能。有効化するとオーバーヘッドが若干増加するが、詳細な性能分析が可能になる

補足(SSD環境の場合):

innodb_io_capacityinnodb_read_io_threadsinnodb_write_io_threads は、SSDを使用している環境では高めの値に設定するとI/O性能を最大限に活用できます。

補足(メモリ容量の目安):

innodb_buffer_pool_size はサーバの総メモリ容量に依存します。たとえばメモリが4GBの場合は 2G、8GBの場合は 4G6G 程度が目安です。

設定を反映するためにMariaDBを再起動します。

sudo systemctl restart mariadb

MariaDBの起動状態を確認します。

sudo systemctl status mariadb

出力例(正常時)

● mariadb.service - MariaDB 10.5 database server
     Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: disabled)
     Active: active (running) since ...

設定が正しく反映されているか、MariaDBに接続して確認します。

sudo mysql -u maruuser -p
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW VARIABLES LIKE 'max_connections';

出力例

+-------------------------+------------+
| Variable_name           | Value      |
+-------------------------+------------+
| innodb_buffer_pool_size | 2147483648 |
+-------------------------+------------+

+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 150   |
+-----------------+-------+

innodb_buffer_pool_size2147483648(2GB = 2 × 1024³ bytes)と表示されていれば設定が反映されています。


本記事では、WordPressの高速化を目的としたPHP設定(OPcache)とMariaDB設定のチューニングについて説明しました。

Rocky Linux 9 サーバ構築手順一覧

実施内容

  • OPcacheの有効化とパラメータ調整
  • MariaDBのバッファプール・スレッド・I/Oチューニング
  • 各サービスの再起動と動作確認

注意事項:

  • innodb_buffer_pool_size はサーバの総メモリ容量に応じて設定してください。過大に設定するとスワップが発生しパフォーマンスが低下します
  • innodb_flush_log_at_trx_commit = 2 はクラッシュ時に最大1秒分のトランザクションが失われる可能性があります。データの整合性を最優先とする場合は 1 を使用してください
  • performance_schema = ON はパフォーマンスに若干の影響があるため、分析が不要な場合は OFF にすることも検討してください

次回は「Cockpit導入編」として、サーバ管理ツール Cockpit のインストールと設定についての手順を実施予定です。

コメント

タイトルとURLをコピーしました