【Nextcloud】メモリキャッシュを設定する。

Nextcloudは、メモリキャッシュを設定するとパフォーマンスが向上するそうだ。

設定していない場合、"設定" → "管理 > 概要" に、

メモリキャッシュが設定されていません。云々…

という警告が表示されます。設定して警告を消してみる。

公式の解説ページ(→ Memory caching — Nextcloud latest Administration Manual latest documentation)によると「メモリキャッシュの設定は必須ではないので警告を無視しても問題なし」とあります。面倒な場合は放置も可。

まずは OPcache の設定。OPcache は「呼び出されたPHPスクリプトをコンパイルした状態でキープして、毎度毎度コンパイルする手間を省いて高速化する」という働きをします。

OPcacheがインストールされていなければ、

$ sudo apt install php-opcache
インストール済みかどうかのチェックは前の記事を参照してみてください。

で、有効化。Ubuntu上でPHP 7.4が稼働している環境であれば、/etc/php/バージョン番号/mods-available/opcache.ini に以下を追記します。

opcache.enable = 1
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 1

稼働している PHP のバージョンは

$ php -v

で、確認できます。

設定が済んだらApacheを再起動。

$ sudo systemctl restart apache2

まだ警告は消えません。続いてローカルキャッシュ、分散キャッシュの設定を行います。

上記ドキュメントによれば…

  • 小規模または家庭内サーバ:ローカルキャッシング(APCu)を設定。
  • 単一サーバ、クラスター化されたサーバ:ローカルキャッシング(APCu)および分散キャッシング(Redis)を設定。
  • Redisの代わりにMemcachedも利用可。

…ということなので、ひとまずAPCuを設定してみます。

インストール。

$ sudo apt install php-apcu

Apache2を再起動。

$ sudo systemctl restart apache2

そして、Nextcloudの設定ファイル(設置ディレクトリ/config/config.php)に、以下のパラメータ設定を追加。

'memcache.local' => '\OC\Memcache\APCu',

これで、Nextcloudの設定ページ → "管理 > 概要" に表示されていたメモリキャッシュに関する警告は消えましたね。

NextcloudのバックグラウンドジョブをCronで実行させている場合、「コマンドラインからのPHP実行時にAPCuを有効にする」という設定が必要です。詳しくはこちらの記事を参照してください。

※ うちの環境は…

  • Ubuntu 20.04 LTS
  • Apache 2.4.41
  • PHP 7.4.3
  • MariaDB 10.3.29
  • Nextcloud 22.0.0

カテゴリ: