FreeBSD 13-STABLE で CPU が 100% 使われると nfsd の性能が落ちる2022年03月08日 13時06分45秒

FreeBSD 13.1-RELEASE の準備がはじまり今週中にでも releng/13.1 が切られる予定になっている。そこで、手元の環境を 13-STABLE にし、テスト中。

インストールした後などに、機械間の同期を行う。USB 接続の外付けハードディスクを使ったり、NFS や ggate を使ったり等、方法は気まま。

今回、STABLE-13 で nfs の性能の劣化が見付かった。amd64 を利用。CPU が 100% になると、nfsd の通信速度が十分の一ぐらいまで落ちる。

少し分かりづらいので、もう少し具体的に。今回、利用中のサーバは 4 コア。amd64 版と i386 版を準備している。buildworld を -j4 で行っている最中だと、nfs 上で動かしている rsync が極端に遅くなるのを見付けた。そこで、-j3 で buildworld をやり直す。clang のビルドに入り CPU が三つ使われている間は、性能の劣化はない。ここに、他のプロセスを加えて残りの一つの CPU も使い尽くすと、再度 rsync のネットワークが遅くなった。

再検証のため、同じ動作を 12.3-RELEASE i386 でも実験。こちらは -j4 以上を使っても、nfsd のネットワーク転送速度は落ちない。

13.0-RELEASE ではまだ試していない。

まあ、rsync を早くするだけならば、ssh 越しでもデーモンモードでもやって、ローカルで動かせば速くはなる。

次回最終回