Help us understand the problem. What is going on with this article?

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

はじめに

先般、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万回単位の単価もプラスされますので、開発環境やちょっとした動作検証での用途で使う程度がおすすめですね。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした