LoginSignup
8
0

More than 3 years have passed since last update.

Amazon EBSの種類でNextcloud の occ files:scan の速度を比較してみた

Last updated at Posted at 2019-12-12

はじめに

先般、Nextcloud におけるファイルスキャン速度を比較してみた の記事を書きながら、「そういえば、ストレージの種類でもパフォーマンス変わるんじゃないか?」と思いたち、ざっくり検証してみることにしました。
今回は、Amazon EBS の種類で Nextcloud のファイルスキャンコマンド occ files:scan のパフォーマンスがどれほど変化するのかを確認してみました。

検証の条件

Nextcloud サーバー環境

  • Nextcloud アプリケーションのバージョン
    • Nextcloud: 17.0.1
  • ミドルウェアのバージョン
    • PHP: 7.3
    • MariaDB: 10.4
  • サーバー構成: Nextcloud 本体、データベース等を含めた1台のオールインワン。
  • サーバー環境: AWS EC2(CentOS7、M5.large)+EBS(500GB)

比較対象の EBS の種類

  • EBS 汎用 SSD (gp2) ※IOPS:最大1,500
  • EBS マグネティック ※IOPS:最大500
  • EBS プロビジョンド IOPS SSD (io1) ※IOPS:最大3,000

※「スループット最適化 HDD (st1)」と「Cold HDD (sc1)」はルートボリュームに設定できないため今回は対象から除外しました。時間があったら環境をそろえるなどして改めて検証してみます。

検証ファイル/フォルダ数

  • フォルダ数: 41,732
  • ファイル数: 313,860
  • 合計ファイルサイズ: 3,075 MB

検証方法

  • テストファイル/フォルダ群を Nextcloud サーバの規定ディレクトリに配備し、 occ files:scan [アカウント名] コマンドでファイル/フォルダの同期を行う。
  • テストは3回行って、実行平均時間で比較する。

検証結果

実行時間 (汎用 SSD) 実行時間 (マグネティック) 実行時間 (プロビジョンド IOPS SSD)
1 11分44秒 11分34秒 11分20秒
2 11分54秒 12分21秒 11分32秒
3 11分49秒 11分56秒 11分47秒
平均 11分49秒 11分57秒 11分33秒

※平均値としては、プロビジョンド IOPS SSD ⇒ 汎用 SSD ⇒ マグネティック の順という、まぁ期待通りの結果とはなりましたが、IOPS 性能を考えるとそれほど大きな違いとはなりませんでした。

考察、あとがき

今回は、occ files:scan をシングルタスクで実行していることから、処理内容に対して IOPS 性能に余裕があり、大きな差が見えづらかったと考えます。
EBS のメトリック情報を見る限りでは、処理開始から前半は 高い IOPS 値でしたが、後半はそれほど IOPS 値が上がっておらず、ディスクI/Oが少ない小さな処理が続いていたと思われます。ここではおそらくデータベースにフォルダ/ディレクトリ情報をこまごま INSERT し続けているんだと思われます。

次の機会では、occ files:scan を多重実行してみて比較をしてみようと思います。

EBS の種類もいろいろあるため選択に迷うこともあるかと思います。とりあえず迷ったらいったん汎用 SSD を選択するのが無難だと思います。
で、性能試験してみて、IOPS が頭打ちになるような傾向となったら、

  • SSD の容量を増やして IOPS 性能を上げる
  • プロビジョンド IOPS SSD に変更してみる

といった対策になるでしょうか。

マグネティックは、容量単価はルートボリュームにできる種別の中では最安ですが、容量単価のほかに I/O 100万回単位の単価もプラスされますので、開発環境やちょっとした動作検証での用途で使う程度がおすすめですね。

8
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
0