##ownCloud をスピードアップする Tips です。
この記事は、ownCloud Advent Calendar 2015 12月12日の内容です。
http://qiita.com/advent-calendar/2015/owncloud
ownCloud をスピードするにはまず、基本的なところから。
ミドルウェアの構成
1. nginx + php-fpm を使いましょう
Apache + mod_php は動作としては枯れていますが、nginx + php-fpm がお勧めです。
2. 新しいPHPのバージョンを使いましょう。PHP5.6 がお勧めです。
opcache,apcuのPHPキャッシュもいれましょう。
3. MySQL/MariaDBもしくは、PostgreSQLの新しいバージョンを使いましょう。
SQLiteを使ってはいけません。
4. sessionストアとして memcached を使いましょう。
通常のファイルベースのセッションストアよりもパフォーマンスがよくなります。
ミドルウェアの設定
1. nginx でキャッシュ設定を大きくしましょう。
fastcgi 系の設定をメモリーに合わせて大きくします。
ついでに、fastcgi_temp_path をメモリー上に確保しておくとよいでしょう。
2. php のキャッシュ(opcache.ini,apcu.ini) を設定しましょう。
具体的には、opcache.memory_consumption を大きくしましょう。
Sessionストアを memcached を利用するように変更しましょう。
3. MySQL/MariaDB,PostgreSQL のキャッシュを適切に設定しましょう。
MySQL/MariaDB は、分離モードを「REPEATABLE-READ」から「READ-COMMITTED」に変更するとパフォーマンスアップします。
innodb関連の設定もメモリーに合わせて増やしておきましょう。
上記が正しく設定されていないと、軽自動車のエンジンで F1に戦いに行くようなものです。
まずは、ここまで設定しましょう。
ownCloud側の設定
1. memcache.* を設定
'memcache.local' にAPCu の設定をしましょう。
'memcache.distributed' に memcached を設定し、
'memcached_servers' に実際のmemcached サーバーを指定します。
2. cron の設定
Job実行を cron実行にするのがスピードがあがります。
3. JavaScript の設定
'asset-pipeline.enabled' を有効にしましょう。
4. (番外編) 外部ストレージ接続時
外部ストレージ接続時には「プレビュー」をOff、ファイルシステムチェックを「しない」にしておくとスピードアップします。