メインコンテンツまでスキップ

macOSの「too many open files」エラーを修正 — RcloneViewで解決

· 約6分
Tayson
Senior Engineer

システムのファイルディスクリプタ上限を引き上げることで、macOS上のRcloneViewで発生する「too many open files」エラーを解決します — マウントおよび大規模同期操作向けに文書化された修正方法です。

macOSでは、1つのプロセスが使用できるファイルディスクリプタ(オープンファイル)数にデフォルトで上限が設定されています — macOSのバージョンによって通常256〜1024程度です。RcloneViewでクラウドドライブをマウントしたり、多数の同時ファイル操作を伴う大規模な同期を実行したりすると、この上限に達してしまい、too many open files のようなエラーや予期しないマウント失敗が発生することがあります。これは文書化されているmacOSの制限であり、解決にはシステムレベルの設定変更が必要です。

RcloneViewアプリのプレビュー

すべてのクラウドを一か所で管理・同期

RcloneViewはrcloneのクロスプラットフォームGUIです。フォルダを比較し、ファイルを転送・同期し、クリーンなビジュアルインターフェースでマルチクラウドのワークフローを自動化できます。

  • ワンクリック操作: コピー · 同期 · 比較
  • 信頼性の高い自動化のためのスケジューラーと履歴
  • Google Drive、OneDrive、Dropbox、S3、WebDAV、SFTPなどに対応
WindowsmacOSLinux
無料で始める →

コア機能は無料。Plusで自動化機能を利用可能。

この問題が発生する理由

RcloneViewを使ってクラウドストレージを仮想ドライブとしてマウントすると、rcloneプロセスはキャッシュされたファイルやアクティブなディレクトリ一覧のためにオープンファイルハンドルを保持します。ファイル数が非常に多いリモート — 50,000件のドキュメントを持つGoogle Driveや、数万のオブジェクトを持つS3バケットなど — では、負荷の高い操作中に同時ハンドル数がmacOSの控えめなデフォルト値を超えてしまうことがあります。

マウント操作をスムーズに行うために推奨されるファイルハンドルの上限は524,288です(ソフトリミットとハードリミットの両方をこの値に設定)。これはmacOS上のRcloneViewについて文書化されている数値です。

Mounting cloud storage in RcloneView on macOS

LaunchDaemon設定の作成

macOSでファイルディスクリプタの上限を恒久的に引き上げるには、システム起動時に上限を設定するLaunchDaemonのplistファイルを作成します。ターミナルを開いて、以下の手順を実行してください。

1. plistファイルを作成する:

sudo nano /Library/LaunchDaemons/limit.maxfiles.plist

2. 以下の内容を貼り付ける:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>limit.maxfiles</string>
<key>ProgramArguments</key>
<array>
<string>launchctl</string>
<string>limit</string>
<string>maxfiles</string>
<string>524288</string>
<string>524288</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>

3. 正しい権限を設定して読み込む:

sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
sudo chmod 644 /Library/LaunchDaemons/limit.maxfiles.plist

ファイルを作成したら、新しい上限を有効にするためにMacを再起動してください。再起動は必須です — 再起動せずにデーモンを読み込んだだけでは、上限がシステム全体に適用されない場合があります。

Cloud drive mount working correctly after fixing file descriptor limit on macOS

上限が適用されているか確認する

再起動後、ターミナルを開いて新しい上限が有効になっているか確認します。

launchctl limit maxfiles

出力にはソフトリミット・ハードリミットの両方に 524288 と表示されるはずです。それより低い値が表示される場合、plistファイルに書式エラーがある可能性があります — タイプミスや不可視文字がないか再確認してください。

macOSに関するその他の問題: 空のフォルダ

macOS Catalina以降のRcloneViewで、Desktop、Documents、Downloadsフォルダが空に表示される場合、原因は異なります。macOSのプライバシー権限がRcloneViewに付与されていないのです。システム設定 > プライバシーとセキュリティ > ファイルとフォルダに移動し、一覧からRcloneViewを見つけてアクセスを有効にしてください。あるいは、より広範な権限のためにRcloneViewをフルディスクアクセスに追加することもできます。権限を変更した後はRcloneViewを再起動してください。

RcloneView macOS privacy permissions configuration

はじめに

  1. rcloneview.comからRcloneViewをダウンロードします。
  2. ソフトリミット・ハードリミットを524288に設定した /Library/LaunchDaemons/limit.maxfiles.plist を作成します。
  3. 正しいファイル所有者と権限を設定し、Macを再起動します。
  4. 再起動後、launchctl limit maxfiles で上限を確認します。

ファイルディスクリプタの上限を引き上げることは一度きりのシステム変更であり、これにより今後RcloneViewで行うすべてのマウントおよび同期操作におけるオープンファイルエラーが解決されます。


関連ガイド:

対応クラウドプロバイダー

Local Files
WebDAV
FTP
SFTP
HTTP
SMB / CIFS
Google Drive
Google Photos
Google Cloud Storage
OneDrive
Dropbox
Box
MS Azure Blob
MS File Storage
S3 Compatible
Amazon S3
pCloud
Wasabi
Mega
Backblaze B2
Cloudflare R2
Alibaba OSS
Ceph
Swift (OpenStack)
IBM Cloud Object Storage
Oracle Cloud Object Storage
IDrive e2
MinIO
Storj
DigitalOcean Spaces