| tags:macos sync categories:computing

Syncthingのリソース消費状況

安宿にて、宿の猫が部屋に入り込み、ベッドを占領される。 扇風機の風が心地よいのかぐっすりと寝ている。

Sleeping Cat

おかげで外には出れず、、部屋でちまちまと文章を書いてる。

でも、猫ってわりと寝相が悪いんだなと、、 気がついたら、頭の位置が180度回転してる。。

Syncthing Dropbox Memory Usage

カレンダーのファイルやなんやと、ちょっと同期するファイルが増えてきてます。 Syncthingを同期をするたびにわざわざ立ち上げてましたが、 やはり面倒になってきたので常時立ち上げておくことにしました。

しかし常時オンというのはバッテリーの消費上あまり気が進まないので、 CPUへの負担やメモリー使用状況などまずはチェックすることしました。 そして、類似サービスのDropboxと比較をしてみて、酷ければ再考。

結果

通常立ち上げているドロップボックスとさほど変わりが無いようです。 スレッドの数もメモリーも控えめです。 メモリがガリガリと増えていくこともなく安定して動作しています。

Syncthing Dropbox CPU Usage

同期時には10%くらいにCPUの消費がありますが、 同期しているアンドロイドフォンからの写真やスクショの転送もあっという間です。 まぁ、常時立ち上げていても問題は無しと判断しました。やはり・快適&気楽ですね。

自動で起動させるためには自分で LaunchAgentsのサービスを使って行うと思ってましたが、 brew services start syncthing でbrewが代理で行ってくれます、らっくー。

🍺  /usr/local/Cellar/syncthing/1.2.2: 23 files, 19.9MB, built in 47 seconds
==> syncthing
To have launchd start syncthing now and restart at login:
  brew services start syncthing
Or, if you don't want/need a background service you can just run:
  syncthing
jin@gallo:~ $
jin@gallo:~ $ brew services start syncthing
==> Tapping homebrew/services
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-services'...
remote: Enumerating objects: 14, done.
remote: Counting objects: 100% (14/14), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 14 (delta 0), reused 8 (delta 0), pack-reused 0
Unpacking objects: 100% (14/14), done.
Tapped 1 command (43 files, 59.8KB).
==> Successfully started `syncthing` (label: homebrew.mxcl.syncthing)
jin@gallo:~ $

チェックしてみたところ、中身はやはりLaunchAgentsのサービスのようです。 ~/Library/LaunchAgents/homebrew.mxcl.syncthing.plist のファイルが作られサービスに登録されます。 ファイルの中身はこんな感じです。

<?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>homebrew.mxcl.syncthing</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/opt/syncthing/bin/syncthing</string>
      <string>-no-browser</string>
      <string>-no-restart</string>
    </array>
    <key>KeepAlive</key>
    <dict>
      <key>Crashed</key>
      <true/>
      <key>SuccessfulExit</key>
      <false/>
    </dict>
    <key>ProcessType</key>
    <string>Background</string>
    <key>StandardErrorPath</key>
    <string>/usr/local/var/log/syncthing.log</string>
    <key>StandardOutPath</key>
    <string>/usr/local/var/log/syncthing.log</string>
  </dict>
</plist>

登録を解除したいときにはlaunchctlで行えます。 再登録に関しても同様。

jin@gallo:~ $ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.syncthing.plist
jin@gallo:~ $ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.syncthing.plist

追加の設定・変更のためのウェブ管理画面へ行くには: http://localhost:8384 にアクセスします。設定を変更・追加した時はここから再起動を行います。


ドロップボックスのアプリからはジワジワとオプトアウトしつつあります。。 (enpassの同期は3台以上でも同期できるようなのでそのまま使わせてもらってますが。。)

Syncthingは推しです。Unisonや他の同期のソフトなどを入れたりすれば、 ファイルの更新が頻繁にある容量の少ないファイルがメインの場合は NASよりも良と思います。 (マックからだとNASのスピードが遅かったりするんですよね。良い印象が無い。)

See Also

comments powered by Disqus