OCI Standard.A1.Flexを試す

OCI無料枠で試していたのですが、いつまでたってもA1-Flexシェイプが立ち上がらないので、有償プランに切り替えました。有償プランに切り替えたからと言ってAlways Free枠は変わらないので実質、料金は発生しません。

有償(個人)にアップグレードしたらA1.Flex 4core 24GBメモリのインスタンスがサクッと立ち上がりました(笑)

という訳で、早速ベンチマークをしてみました。

素晴らしい! Standard.E2.1.Microの20倍! GCP e2-microの72倍のパワー \(^_^)/

System Benchmarks Index Score OCI Standard.A1.Flex 4ocpu 24GB Memory: 5512.4
OCI Standard.E2.1.Micro 1/8ocpu 1GB Memory: 268.1
GCP e2-micro 0.25vCPU 1GB Memory: 76.3

BYTE UNIX Benchmarks (Version 6.0.0)

   System: a1-test: GNU/Linux
   OS: GNU/Linux -- 6.14.0-1009-oracle -- #9~24.04.1-Ubuntu SMP Mon Jun 30 18:20:41 UTC 2025
   Machine: aarch64 (aarch64)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0: ARM Neoverse-N1 (50.0 bogomips)
          CPU Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
   CPU 1: ARM Neoverse-N1 (50.0 bogomips)
          CPU Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
   CPU 2: ARM Neoverse-N1 (50.0 bogomips)
          CPU Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
   CPU 3: ARM Neoverse-N1 (50.0 bogomips)
          CPU Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
   07:22:19 up 15 min,  1 user,  load average: 0.19, 0.08, 0.03; runlevel Sep

------------------------------------------------------------------------
Benchmark Run: Fri Sep 19 2025 07:22:19 - 07:50:14
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       46864852.7 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     8586.2 MWIPS (9.9 s, 7 samples)
Execl Throughput                               3146.3 lps   (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       1137974.0 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          320778.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       2427991.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1814774.8 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 101618.6 lps   (10.0 s, 7 samples)
Process Creation                               5683.8 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   9340.7 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   3161.0 lpm   (60.0 s, 2 samples)
System Call Overhead                        1403721.6 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   46864852.7   4015.8
Double-Precision Whetstone                       55.0       8586.2   1561.1
Execl Throughput                                 43.0       3146.3    731.7
File Copy 1024 bufsize 2000 maxblocks          3960.0    1137974.0   2873.7
File Copy 256 bufsize 500 maxblocks            1655.0     320778.0   1938.2
File Copy 4096 bufsize 8000 maxblocks          5800.0    2427991.5   4186.2
Pipe Throughput                               12440.0    1814774.8   1458.8
Pipe-based Context Switching                   4000.0     101618.6    254.0
Process Creation                                126.0       5683.8    451.1
Shell Scripts (1 concurrent)                     42.4       9340.7   2203.0
Shell Scripts (8 concurrent)                      6.0       3161.0   5268.4
System Call Overhead                          15000.0    1403721.6    935.8
                                                                   ========
System Benchmarks Index Score                                        1551.3

------------------------------------------------------------------------
Benchmark Run: Fri Sep 19 2025 07:50:14 - 08:18:11
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables      187363319.6 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    34304.4 MWIPS (9.9 s, 7 samples)
Execl Throughput                               9255.9 lps   (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       4417831.3 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks         1283904.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       7855700.9 KBps  (30.0 s, 2 samples)
Pipe Throughput                             7317913.7 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 962856.6 lps   (10.0 s, 7 samples)
Process Creation                              20808.0 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  26487.7 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   3423.5 lpm   (60.0 s, 2 samples)
System Call Overhead                        5606134.9 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0  187363319.6  16055.1
Double-Precision Whetstone                       55.0      34304.4   6237.2
Execl Throughput                                 43.0       9255.9   2152.5
File Copy 1024 bufsize 2000 maxblocks          3960.0    4417831.3  11156.1
File Copy 256 bufsize 500 maxblocks            1655.0    1283904.0   7757.7
File Copy 4096 bufsize 8000 maxblocks          5800.0    7855700.9  13544.3
Pipe Throughput                               12440.0    7317913.7   5882.6
Pipe-based Context Switching                   4000.0     962856.6   2407.1
Process Creation                                126.0      20808.0   1651.4
Shell Scripts (1 concurrent)                     42.4      26487.7   6247.1
Shell Scripts (8 concurrent)                      6.0       3423.5   5705.9
System Call Overhead                          15000.0    5606134.9   3737.4
                                                                   ========
System Benchmarks Index Score                                        5512.4

これが無料ですからね。暇を見てサーバ引っ越そうかな 🙂 難点は、x86アーキじゃないのでバイナリ互換ないんですよね。設定はほぼ引き継げると思うけど。作ってデータ移行が必要だからちょっとめんどい。

UGREEN NASync クラウドバックアップ

はじめに

QNAPからUGREENに乗り換えてそんなに困ってないというか、結構気に入っているのですが、最大の問題がバックアップの弱さでした。 QNAPではHBS3という強力なツールでNASのデータをAmazon S3などのクラウドストレージにバックアップできたのですが、UGREENにはそういう機能はありません。

という訳で、dockerで実現してみました。 docker最高!

方針

  • 利用するツールはbackrest
  • 保存先はAmzon S3 Standard
  • Amazon S3ではライフサイクルポリシーで7日後にDeepArchiveに移動する

いろいろ検討した結果、resticというツールが良さげです。resticは重複排除や圧縮に対応しているのにOSSという素晴らしさ。resticを使ったdockerコンテナも複数公開されているのですがその中でも、WEBUIで操作できるbackrestを使うことにしました。

インストール

  1. Dockerアプリのプロジェクトから「作成」を選んでプロジェクト名(backupなど)、保存パス(デフォルトでOK)、Compose設定に以下のYAMLファイルを貼り付けて「今すぐデプロイ」
version: "3.8"
services:
  backrest:
    image: garethgeorge/backrest:latest
    container_name: backrest
    hostname: backrest
    ports:
      - "9898:9898"              # 外部アクセス用
    volumes:
      - ./backrest/data:/data
      - ./backrest/config:/config
      - ./backrest/cache:/cache
      # バックアップ対象フォルダ
      - /volume1:/volume1:ro   
      - /volume2:/volume2:ro
    environment:
      - BACKREST_DATA=/data
      - BACKREST_CONFIG=/config/config.json
      - XDG_CACHE_HOME=/cache
      - TMPDIR=/tmp
      - TZ=Asia/Tokyo
    restart: unless-stopped
  1. コンテナが立ち上がってきたら、WEBUIにアクセス(Dockerアプリのコンテナでbackrestを選んで→マークからクイックアクセスが楽)して、初期設定
 Instance ID: なんでもいいですが(dxp2800とか)
 User: なんでもいいけど(hogeadminとか)
 Password: 強いの付けてね
  1. Add Repoでリポジトリ設定(前提として先にAWS上にS3バケットを作っておく必要あり。あと、アクセスキーを発行しておく必要あり)
 Repo Name: S3とか
 Repository URI: s3:s3.us-east-1.amazonaws.com/<バケット名> ※S3 URIではないので注意。私はコストが安いus-east-1を使ってる
 Password: Generateで作ればOK
 Env Vars: 環境変数をいくつか追加
   AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEYは最低必要。
   私はAWS_STORAGE_CLASS=STANDARD_IAも入れてる
その他の設定は変える必要なし
  1. Add Planでバックアップ対象を追加
 Plan Name: nas backupとか
 Reposotory: さっき作ったリポジトリ名 S3とか
 Paths: ここにバックアップしたいパスを足していく
  私は /volume1/@homeとかdockerとか。
 Backup Schedule: 私はCron、Local、Every mounth on 1 at 2:00にしてます。差分取れるので毎日とってもいいけど。

これでOK。作ったプランのBackup Nowで試し取りしておくと良いでしょう。

最後に、docker/backup/のファイルは別途どっかにちゃんと保存しておきましょう。設定したパスワードが分らないとデータ復元できません。。。

以上

### 2025/10/3 追記
デフォルトでRepositoriesポリシーで月1回のPrune(削除)とCehckがスケジュールされているのだが、Checkは実際にS3のデータを読みに行くようで、ライフサイクルポリシーでDeep Archiveに送ってしまうと、失敗する。必ずCheckを実施しないといけないのか?というと、まぁ保険なので実施しないことにしました。削除は、Deep Archiveに送られていても問題なくできるようです。

UGREEN NASync DXP2800省エネチューン

チューンって程のことはないのですが、パフォーマンスが上がる確かめるためにNVMe SSDをキャッシュとして追加してみたのですが、安物のgen3 x2レーンではHDDと大差なかったので、dockerのバックエンドストレージとして分離しようと思います。

【プール分け】

  1. HDD コールドプール(Volume1) – 基本的にはユーザーホームなのでユーザーが使わなければアクセスされない
  2. SSD ホットプール(Volume2) – dockerなど常にアクセスするもののバックエンドとして利用。基本アプリはこちらに入れることにする

インストール済みのアプリや、dockerコンテナを移動するには基本入れ直しが必要です。写真アプリなんかはインデックスが消えそうで嫌だったのと、そもそも写真はHDDに入ってるので移動しませんでした。DockerとHome Assistant以下の通り。それ以外はアンインストールとインストールの繰り返しでOK。

【Dockerの移動】

  1. コンテナを全部止める
  2. docker内のファイルを全て適当な場所にへコピーする
  3. docker-composeの内容をメモっておく(まぁ、同じフォルダをしていると出てきますけど念のため)
  4. dockerアプリ削除(HomeAssistantアプリも同時に削除される)
  5. dockerフォルダーを削除する(これをしないとVolume1に再度作られてしまうようだ)
  6. Volume2を指定してdockerアプリインストール
  7. 退避したdockerディレクトリのファイルを新たに作成されたdockerフォルダ内にコピーする
  8. 管理 – データ移行(コンテナインスタンスは移行されない)
  9. HomeAssitantアプリをVolume2/docker/homeassistantのフォルダを指定してインストールする(これでHomeAssitantは元通りに動くはず)
  10. その他のコンテナもdocker-composeで再生成

余談ですが、dockerは共有フォルダーに出てくるdockerフォルダーと@dockerというシステムが勝手に作るdocker動作に必要なフォルダがあります。dockerをアンインストールすると、@dockerは削除されますが、特にコピーしておく必要はなさそうです。もしかしたらローカルリポジトリに自前のコンテナを置いてる場合はコピーしておいた方がいいかも。

結果

常時28W程度食っていたものがHDDがアイドル停止するようになって12Wまで下がりました。静かだし。 🙂

たった16W削減ですが、1か月に換算すると 11.5kWhも減るんですよね。今、kWhあたり35円程度なので、403円/月の削減ですね(^_^)

実はそれ以外にも、RTX810からRTX1210に変更したのを機に、SWX2200-8Gと2.5GのHUBの電源も普段落としています。私の用途では2.5Gbps必要なことなんて滅多にないので。その結果、常時稼働しているものが48W程度ほどに下がり、全体で25W減、月額にして630円/月の削減となりました。