
Roon ServerとしてSynology DS720+で運用していますが、10万曲を超えたあたりから挙動がかなり遅くなり、ストレスを感じるようになりました。
いよいよ自作PCで専用サーバー導入か?と検討していますが、最後にDS720+をどれくらい高速化できるか挑戦することにしました。
結果として、劇的に早くなりこのまま使ってもよいかなと思えるようになりましたので、その方法を紹介します。

Synology NASをRoon Serverとして高速化する
DS720+のCPUは貧弱なCeleron J4125プロセッサです。メモリは元の2GBに8GBを追加し10GBとしていますが、10万曲を超えたところで急激に速度が落ちました。選曲してから音が出るまでに妙に間があったりと、実用上の問題がでてきました。
いよいよ、専用PCを導入するかと、検討段階に入りました。
Roon OSの場合、内蔵ストレージは1つしか適用できません。WindowsやMACで運用することは考えていないので、将来的には専用PCを導入、UbuntuでRAID 0にして、リアルタイムカーネルで運用することを想定しています。
最後に、DS720+をどこまで高速化できることに挑戦してみました。
結果的に、実用上ストレス無いレベルまで高速化できましたので、共有したいと思います。

Roon 高速化のための、2つの必須条件
不要な機能を削るなど、細かい調整項目は多岐にありますが、これから紹介する2つの高速化のメリットは大きいです。
NVMe SSDを「キャッシュ」ではなく「独立ボリューム」化する
NVMe SSDをキャッシュとしてではなく、「独立ボリューム」として活用します。SSDよりも高速なNVMeを使うことで、Roonが早く動きます。
DS720+と後継機DS723+の違いも交えて解説します。
なぜ「キャッシュ」ではなく「独立ボリューム」なのか?
メインストレージをすでにSATA SSDで運用している場合、NVMeを「SSDキャッシュ」として設定しても、Roonのデータベースが要求するランダムアクセスに対する高速化の恩恵は極めて限定的です。
NVMeスロットを独立した「ストレージボリューム」として構築し、そこにRoonの共有フォルダ(データベース)を配置することで、読み書きのレイテンシを極限まで低減できます。これにより、大容量ライブラリでもUIのレスポンスや検索速度が飛躍的に向上します。
DS720+での構築方法(スクリプトが必須)
DS720+は制限がかかっているため、標準機能でのNVMeボリューム化は公式サポートされていません。
そのため、有志が公開しているコミュニティスクリプト(007revad氏のSynology_M2_volumeなど)を利用し、強制的にNVMeを「Volume 2」や「Volume 3」として独立させる必要があります。
後継機「DS723+」での構築方法(SSDのメーカーによる)
DS723+(およびDSM 7.2以降の環境)では、使用するNVMe SSDの種類によって手順が異なります。
- Synology純正NVMe SSDを使用する場合
一部の純正ドライブにおいてはボリューム化が公式にサポートされているため、スクリプト不要で標準機能からそのまま独立ボリュームを作成できます。 - サードパーティ製(他社製)NVMe SSDを使用する場合
手頃なサードパーティ製ドライブを使用する場合はDSM側で制限がかかるため、DS720+の時と同様にコミュニティスクリプトを利用して強制的に構築する必要があります。
NVMe SSDを「独立ボリューム」化するSSH手順
- GitHubのリリースページから最新のzipファイルをダウンロードします。
- 解凍したフォルダを、NASの共有フォルダ(例:
/volume1/Scripts/)にアップロードしておきます。 - NASの「コントロールパネル」>「端末とSNMP」からSSHサービスを有効にします。
PCのターミナル(WindowsならPowerShellやRLoginなど)からNASにSSH接続し、以下のコマンドを実行します。
sudo -s /(スクリプトを置いたパス)/syno_create_m2_volume.sh実行すると、対話形式で以下の設定を聞かれます。
RAIDタイプの選択:
Basic: 1枚ずつ独立して使う(オーディオ的な純度を優先する場合におすすめ)
RAID 0: 2枚を合体させて速度を極限まで上げる(データ保護なし)
ドライブの選択: ボリューム化したいNVMeドライブを番号で選びます。
スクリプトが完了したら、ブラウザでNASの「ストレージマネージャー」を開きます。
- ストレージプールに新しいNVMeのプールができているので、「作成」>「ボリュームの作成」をクリックします。
- ファイルシステムは「Btrfs」を選択します。
Roonのデータベース用フォルダを新規作成する際、「データ整合性のためのデータチェックサムを有効にする」のチェックを外します。
チェックサム(およびCoW)を無効化することで、データベースの書き込み遅延が防げるため。 - 作成後、設定メニューから「SSD TRIM」を有効にすれば完了です。
Synologyの公式サポート外の構成であるため、DSMをアップデートするとボリュームが一時的に認識されなくなることがあります。
その場合は、同じ作者が公開している「Synology_HDD_db」というスクリプトを再実行することで、データはそのままに認識を復活させることができます。
「メモリ増設」と「DSMチューニング」
メモリは8GBを増設しています。16GBでも動くという情報がありますが、パフォーマンスを見ていると、Roonが固まっている時でもメモリの使用率は50%程度でした。CPUの使用率も思ったより大きくないため、遅くなっているのは他に原因があるのではないかと考えました。
なぜRoonが重くなるのか?「Dirty Page」とは?
Linux(DSM)は、データをディスクに書き込む際、一旦メモリ上の「キャッシュ領域」に溜め込みます。これを「Dirty Page」と呼びます。
標準設定では、メモリに数GB単位のデータが溜まるまで一気にディスクへ書き戻しません。しかし、大容量ライブラリを扱うRoonがデータベースを更新し、Dirty Pageが一定のしきい値(vm.dirty_ratio)を超えると、OSはすべての処理を一時停止(ブロック)して強制的にディスク書き込みを開始します。
これが、Roonリモートを操作している時に発生する「数秒間のハングアップ」や「もっさり感」の正体でした。
解決策 Dirty Ratioの調整
しきい値を低く設定することで、「大量に溜めてから一気に書く」のではなく、「小刻みに、頻繁にバックグラウンドで書く」ようにOSの挙動をカスタマイズします。これにより、書き込みによるUIのフリーズを防ぐことができます。
10GBメモリ環境(2GB onboard + 8GB増設)の推奨設定
以下の設定で劇的に早くなりました。体感上は、NVMeを外部ボリュームとして運用するよりもこちらの方が改善効果は大きいです。
vm.dirty_background_ratio = 5 メモリの5%(約500MB)が汚れたら、裏側でこっそり書き出しを開始。vm.dirty_ratio = 1010%(約1GB)に達する前に書き出しを完了させ、システム全体のブロック(フリーズ)を回避。vm.swappiness = 10SSDへのスワップ発生を抑え、可能な限り高速なメモリ(RAM)を活用。vm.vfs_cache_pressure = 50ディレクトリ構造のキャッシュをメモリに保持しやすくし、ブラウジングを高速化。
設定手順 DSMタスクスケジューラを活用
SSHで直接書き換えても再起動で消えてしまうため、Synologyの「タスクスケジューラ」を使って起動時に自動適用させます。
- DSMコントロールパネル > タスクスケジューラ を開く。
- 作成 > トリガータスク > ユーザー指定のスクリプト を選択。
- 全般: タスク名を「Roon_Memory_Tweak」、ユーザーを「root」、イベントを「ブートアップ」に設定。
- タスク設定: 下記のスクリプトを貼り付ける。
#!/bin/bash
# Kernel optimization for Roon Server (10GB RAM)
sysctl -w vm.dirty_background_ratio=5
sysctl -w vm.dirty_ratio=10
sysctl -w vm.swappiness=10
sysctl -w vm.vfs_cache_pressure=50
sysctl -w vm.dirty_expire_centisecs=15005. 保存後、作成したタスクを右クリックして「実行」を押すと、即座に設定が反映されます。
タスクスケジューラを使ったRoon Serverの自動再起動設定
巨大なライブラリを運用していると、Roon Serverが確保したメモリが解放されず、長期間の稼働に伴って徐々にメモリ使用量が増大し、稀にメモリリークのような挙動を示すことがあります。
これを防ぐため、DSMの「タスクスケジューラ」を使って、深夜の音楽を聴かない時間帯にRoon Serverパッケージを自動的に再起動する設定を組みます。
具体的な設定手順
ステップ1:タスクの作成
DSMのコントロールパネルから「タスク スケジューラ」を開き、「作成」>「予約タスク」>「ユーザー指定のスクリプト」の順にクリックして新しいタスクを作成します。
ステップ2:「全般」タブの設定
タスク名: Restart Roon Server など、何のタスクか分かりやすい名前を入力します。
ユーザー: ここは必ず「root」を選択してください。システムパッケージを制御するため、特権管理者の権限が必須となります。
ステップ3:「スケジュール」タブの設定
音楽再生に影響を与えない深夜(メンテナンス時間)を指定します。
毎日、あるいは週に一度など、リスニング状況に合わせて「誰も音楽を聴かない時間帯」に実行されるようスケジュールを組みます。
ステップ4:「タスク設定」タブでのスクリプト入力
画面上部の「タスク設定」タブをクリックします。その中にある「ユーザー定義のスクリプト」という入力欄に、Roon Serverパッケージを再起動するためのコマンドを入力します。
synopkg restart RoonServerステップ5:設定の保存
設定を完了して「実行」(保存)します。これで、指定したスケジュールに沿って自動でRoonのシステムだけがリフレッシュされ、常にサクサクとした最高のレスポンスを維持できるようになります。
静音化計画 Noctuaファン換装と「即停止」回避
以前は、Noctuaファン換装がうまくいかず、別メーカーのファンを使用していましたが、原因がわかりましたので共有します。
純正ファンは、静音モードでも軸音や風切り音が目立ちます。静音性の高いNoctua製ファンへの換装はオーディオユーザーにとって定番ですが、そのままでは「数分でファンが止まる」「警告音が鳴る」という問題が発生します。
以下に解決方法を紹介します。
なぜ Noctua ファンは止まってしまうのか?
Noctua NF-A9 FLX は、純正ファンに比べて消費電力が極めて低く(0.07A vs 純正約0.12A)、回転数も低めです。Synology の OS (DSM) はこれを「ファンが故障して回転が止まった」と誤認します。
その結果、ハードウェア保護のためにファンへの給電を強制カットしてしまいます。これが「最初は回るがすぐに止まる」現象の正体です。
解決策 ファン検知機能の無効化
システムの根幹にある「ファン監視フラグ」をオフにすることで、給電停止を防ぎます。
実行するコマンド
echo 0 > /sys/module/geminilake_synobios/parameters/check_fan「回転数が低い=故障」という判断をシステムがやめるため、電力が供給され続け、低速モードでもファンが回り続けます。
注意点: DS720+ (Geminilake世代) 専用のパスです。
実践!タスクスケジューラへの登録手順
再起動のたびに設定がリセットされるのを防ぐため、以下の手順で登録します。
- DSM [コントロールパネル] > [タスクスケジューラ] を開く。
- [作成] > [トリガーされたタスク] > [ユーザー定義のスクリプト] を選択。
- [全般] タブの設定:
タスク:Disable Fan Checkなど(ここにはコマンドを入れず、名前を付けます)。
ユーザー: root (必ず最高管理者権限にします)。
イベント: ブートアップ。 - [タスク設定] タブの設定(最重要):
「ユーザー定義のスクリプト」欄に、上記のコマンドを貼り付けます。 - 保存と実行: [OK] で保存した後、一覧からそのタスクを選んで [実行] を押せば即座に適用されます。
まとめ ー Synology Roon Serverの高速化
DS720+という一見「非力」に見えるCeleron機でも、適切なハードウェア構成とOSレベルのチューニングを組み合わせることで、10TB、10万曲というライブラリでもストレスのないRoon Serverへと進化させることができました。
特に「NVMeの独立ボリューム化」によるレスポンス向上と、「Dirty Page設定」によるUIフリーズの解消は、DS720+ユーザーにとって必須とも言える延命策です。
これにNoctuaファンによる静音化を加えれば、リスニングルームに置いてもほぼ無音の理想的なオーディオサーバーが完成します。
「動作が重いからPCへ移行」と考える前に、ぜひこれらのステップを試してみてください。わずかな手間で、NASの速度が大きく改善されるはずです。
SynologyをRoon Serverとして運用している、これから運用してみたいと考える方に参考になれば幸いです。
最新モデルDS725+の実力は?
DS720+から比較すると、大容量のRoonライブラリ運用において以下のような大きな進化を遂げています。
- ネットワークの高速化:2.5GbEポートを標準搭載しており、より高速なデータ転送が可能になりました。
- 処理能力の大幅な向上:CPUに「AMD Ryzen R1600」を搭載し、DS720+(Celeron J4125)と比較して純粋な演算能力が大きく引き上げられています。これにより、Roonの検索やデータベース処理のレスポンス向上が期待できます。
- 初期メモリの倍増:出荷時から4GBのECCメモリ(最大32GBまで拡張可能)を搭載しており、メモリを大食いするRoon Serverにとって心強い仕様です。
- 標準機能でのNVMeボリューム化:Synology純正のNVMe SSDを使用すれば、スクリプト等の裏技を使わずとも、公式の標準機能として「SSDストレージプール(独立ボリューム)」を作成可能です。
オーディオ視点での注意点
1点だけ留意すべきは、直近の前モデル(DS723+)と同様に、DS725+のRyzen CPUには内蔵GPU(iGPU)が搭載されていないという点です。「Roon ServerはGPUを搭載している方が音が良い」というオーディオ界隈の定説を重視する方にとっては悩ましいポイントかもしれません。
しかし、純粋な「動作のサクサク感」や大容量データを安全・快適に使用するサーバーとしての性能はDS720+から確実にステップアップしています。NAS一台ですべてを完結させたい方にとって、DS725+は非常に魅力的な後継機と言えます。
Roon
SACD
コメント