NextCloud パフォーマンス改善

最近、シンブルボードコンピュータで NextCloud と Redmine の環境を構築しました。

導入してみるとリソース消費は、自分の予想に反して Redmine < NextCloud でした。

参考までに以下、メモリ使用量サンプル。

リソース消費量の確認

NextCloud

Orange Pi One なのでメモリ 512MBですが、メモリ消費は 250MB程度で、且つスワップしています。
重いはずだよ...。

# top
Tasks: 136 total,   1 running,  79 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.5 us,  0.4 sy,  0.0 ni, 99.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   505064 total,    28880 free,   255084 used,   221100 buff/cache
KiB Swap:   252528 total,   241264 free,    11264 used.   233704 avail Mem 

Redmine

こちらは、Raspberry Pi 3 Model B なのでメモリ 1GBですが、メモリ消費を見ると130MB程度です。

# top
Tasks:  98 total,   1 running,  56 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.2 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   949448 total,   665596 free,   137668 used,   146184 buff/cache
KiB Swap:   102396 total,   102396 free,        0 used.   754404 avail Mem 

パフォーマンス改善設定

メモリがあればキャッシュを利用して・・・ということができるのですが、如何せん 512MBなので仕方がありません。

ジョブ実行タイミングを変更して体感スピードUPを図ります。

ジョブ実行タイミングの変更

バックグラウンドジョブを AJAX → Cron へ変更すると体感速度がUPします。

設定方法

  • 設定
    • 基本設定
      • バックグラウンドジョブ
        • AJAX 既定値
          各ページの読み込み時にジョブ実行。
        • Webcron
          15分間隔でジョブ実行(HTTP経由)。
        • Cron
          15分間隔でジョブ実行(cronデーモン)。

アプリの無効化

月並みですがバックグラウンドのアプリを減らします。
今回はクローズド環境のため思い切って以下の2つ以外を無効にしました。

  • Deleted files
  • Password policy

※心なしか早くなった気がします...。

攻撃用テーブルのクリア

ブルートフォース(総当り)攻撃対策用テーブル oc_bruteforce_attempts をクリアすると早くなるという記事を見つけたのですが・・・Snap版は0件だったので影響はなさそうです。

操作方法については、NextCloud の DB データ操作 をご参照ください。