読者です 読者をやめる 読者になる 読者になる

Ubuntu serverに入れてるDropboxが変なメッセージを出すようになった

ちょっと前くらいからこんなメッセージが出るようになった

$ Unable to monitor entire Dropbox folder hierarchy. Please run "echo 100000 | sudo tee /proc/sys/fs/inotify/max_user_watches" and restart Dropbox to correct the problem.

わけもわからず言われるがままコマンド叩いてたんだけど、毎日ログインVM起動する度に表示されてていい加減鬱陶しくなったので調べた。

/proc/sys/fs/inotify/max_user_watches とは

引用の引用

/proc インターフェース

以下のインターフェースは、inotify で消費されるカーネルメモリの総量を制限するの
に使用できる:

/proc/sys/fs/inotify/max_queued_events

このファイルの値は、アプリケーションが inotify_init(2) を呼び出すときに使用さ
れ、対応する inotify インスタンスについてキューに入れられるイベントの数の上限
を設定する。この制限を超えたイベントは破棄されるが、 IN_Q_OVERFLOW イベントが
常に生成される。

/proc/sys/fs/inotify/max_user_instances

1 つの実ユーザ ID に対して生成できる inotify インスタンスの数の上限を指定す
る。

/proc/sys/fs/inotify/max_user_watches

作成可能な監視対象の数の実 UID 単位の上限を指定する。

lsyncdで上限ファイル数を超えた時の対処策 - Unix的なアレ

だそうです。要するに監視対象のファイル数が上限をオーバーしたってことか。

/etc/sysctl.conf

/proc/sys/fs/inotify/max_user_wathces は直接書き換えても再起動の度にリセットされるらしいので、/etc/sysctl.conf を編集する

こいつはカーネルパラメータを設定するファイルだそうです。そんな事言われたらインフラ知識からっきしな僕は怖くて手が震えてしまうんですががが。
[ThinkIT] 第5回:カーネルをチューニングする (1/4)

管理者権限で開く。

$ sudo vi /etc/sysctl.conf

以下の行を追加する

fs.inotify.max_user_watches = 100000

追加後にこの設定を反映させるために以下のコマンドを叩く

$ sudo sysctl -p

これでたぶん直ったはず。