Sambaサーバの性能が出ない その4 (2019/07/26) [仮想化]
Sambaサーバの性能に関するお話です。
1年前にその1~3として記事を書いていますが、いったんそれらは忘れることにします。前提や仮設がアバウトなため、もしかしたら細かいところで矛盾が生じているかもしれません。ただ、当時は当時なりの結果や結論に至っている訳で、それは記録として残し、改竄するようなことはしません。
事の発端は、XenServer 7.6をCitrix Hypervisor 8.0(バージョンアップで名前も変わった)にアップグレードして運用している今日この頃、Sambaサーバの性能が出てないなぁと再帰認識したことです。
Hypervisor 8.0へのアップグレードに関しては、同時期にFreeBSD 11.2R→12.0Rへの入れ替えや、Windows側のアンチウィルスソフトのアップグレードも実施していたので、正直なところ何が悪影響を及ぼしているのか分かりませんでした。
ただ少なくとも、1年前はXenServerで100MiB/s前後の転送速度があったものが、今のCitrix Hypervisor 8.0では55MiB/s前後の転送速度で頭打ちしてしまっているという事実です。
もともとCitrix SD-WANの実験を行うために、今のCitrix Hypervisor 8.0環境を崩すつもりだったので、せっかくなので使用しているサーバのベアメタルとしての性能や、仮想環境での性能を計測してみることにしました。
■条件
・FreeBSDはインストール直後の環境を使う
・VMware Toolsなど、仮想環境に紐付く最低限のツールは導入するが、それ以外のチューニングはしない
・FreeBSDにインストールするSambaは、samba48-4.8.12_x
・Sambaの設定ファイルは、普段自分が使用しているものを使う
・Windows側からFreeBSD Sambaサーバにアクセスする
・Windowsでは、FastCopyをMAX転送速度(バッファ256MiB)で使用する
・ディスクは東芝製HDD(SATA) 1本のみを使う。
FreeBSD 11系は、11.3Rが出たばかりなので、こちらを使って測定をします。12系は11.2R→12.0Rへの入れ替え時に、遅くなったという印象があるので入念にチェックします。
あとあと分かったのですが、FreeBSDはOS側でディスクキャッシュを持っているようで、同じデータで再測定をすると劇的に良い数値となり、それがFastCopyの平均転送速度を狂わせてしまうので、ここではディスクキャッシュが効かなくなってからのiostat 5の数値を読み取っています。
■ベアメタルFreeBSD 11.3R
Read 86~91MiB/s
■ベアメタルFreeBSD 12.0R ノンパッチ
Write 0~110MiB/s ※激しくバラつく(FastCopyの平均転送速度 48~55MiB/s)
Read 71~78MiB/s
■ベアメタルFreeBSD 12.0R-p7
Write 60~111MiB/s ※うねりのある安定
Read 80~90MiB/s
といった感じでした。やはり12.0R ノンパッチ状態では、ディスクI/O…特にWriteに問題があったようです。(Readも若干遅い) OSパッチを当てたことで大幅に安定するので、やはり何か不具合を抱えていたのでしょうか。Writeに問題があることは後で分かったので、11.3RではWriteは取得しておりません。
オンメモリのキャッシュについてちょっと振れていますが、Read再測定時に劇的に性能値が向上することが分かり、調べているとOSが持っているディスクキャッシュから読み出しを行っているようです。
判明していることは、
・16GiBのメモリで、再測定時の11GiB程度は劇的に性能向上した(80MiB/s → 110MiB/s)
・劇的な性能を示している間、iostatによるディスクアクセスは0MiB/sだった
・Sambaプロセスを、stop → startしても、11GiB程度はディスクキャッシュが効いたままだった
Twitterの方で、Windows側の常駐ソフトによる差異があると書きましたが、実際はそのようなことはなく、常駐ソフトをOFFにしたタイミングで、2回目のファイル転送再測定を実施したため、劇的に性能向上したように見えただけでした。
FreeBSD 12.0R-p7で、Writeの方がピーク性能が高いのは、やはりストレージのWriteキャッシュが効いているからでしょうかね?
1年前にその1~3として記事を書いていますが、いったんそれらは忘れることにします。前提や仮設がアバウトなため、もしかしたら細かいところで矛盾が生じているかもしれません。ただ、当時は当時なりの結果や結論に至っている訳で、それは記録として残し、改竄するようなことはしません。
事の発端は、XenServer 7.6をCitrix Hypervisor 8.0(バージョンアップで名前も変わった)にアップグレードして運用している今日この頃、Sambaサーバの性能が出てないなぁと再帰認識したことです。
Hypervisor 8.0へのアップグレードに関しては、同時期にFreeBSD 11.2R→12.0Rへの入れ替えや、Windows側のアンチウィルスソフトのアップグレードも実施していたので、正直なところ何が悪影響を及ぼしているのか分かりませんでした。
ただ少なくとも、1年前はXenServerで100MiB/s前後の転送速度があったものが、今のCitrix Hypervisor 8.0では55MiB/s前後の転送速度で頭打ちしてしまっているという事実です。
もともとCitrix SD-WANの実験を行うために、今のCitrix Hypervisor 8.0環境を崩すつもりだったので、せっかくなので使用しているサーバのベアメタルとしての性能や、仮想環境での性能を計測してみることにしました。
■条件
・FreeBSDはインストール直後の環境を使う
・VMware Toolsなど、仮想環境に紐付く最低限のツールは導入するが、それ以外のチューニングはしない
・FreeBSDにインストールするSambaは、samba48-4.8.12_x
・Sambaの設定ファイルは、普段自分が使用しているものを使う
・Windows側からFreeBSD Sambaサーバにアクセスする
・Windowsでは、FastCopyをMAX転送速度(バッファ256MiB)で使用する
・ディスクは東芝製HDD(SATA) 1本のみを使う。
FreeBSD 11系は、11.3Rが出たばかりなので、こちらを使って測定をします。12系は11.2R→12.0Rへの入れ替え時に、遅くなったという印象があるので入念にチェックします。
あとあと分かったのですが、FreeBSDはOS側でディスクキャッシュを持っているようで、同じデータで再測定をすると劇的に良い数値となり、それがFastCopyの平均転送速度を狂わせてしまうので、ここではディスクキャッシュが効かなくなってからのiostat 5の数値を読み取っています。
■ベアメタルFreeBSD 11.3R
Read 86~91MiB/s
■ベアメタルFreeBSD 12.0R ノンパッチ
Write 0~110MiB/s ※激しくバラつく(FastCopyの平均転送速度 48~55MiB/s)
Read 71~78MiB/s
■ベアメタルFreeBSD 12.0R-p7
Write 60~111MiB/s ※うねりのある安定
Read 80~90MiB/s
といった感じでした。やはり12.0R ノンパッチ状態では、ディスクI/O…特にWriteに問題があったようです。(Readも若干遅い) OSパッチを当てたことで大幅に安定するので、やはり何か不具合を抱えていたのでしょうか。Writeに問題があることは後で分かったので、11.3RではWriteは取得しておりません。
オンメモリのキャッシュについてちょっと振れていますが、Read再測定時に劇的に性能値が向上することが分かり、調べているとOSが持っているディスクキャッシュから読み出しを行っているようです。
判明していることは、
・16GiBのメモリで、再測定時の11GiB程度は劇的に性能向上した(80MiB/s → 110MiB/s)
・劇的な性能を示している間、iostatによるディスクアクセスは0MiB/sだった
・Sambaプロセスを、stop → startしても、11GiB程度はディスクキャッシュが効いたままだった
Twitterの方で、Windows側の常駐ソフトによる差異があると書きましたが、実際はそのようなことはなく、常駐ソフトをOFFにしたタイミングで、2回目のファイル転送再測定を実施したため、劇的に性能向上したように見えただけでした。
FreeBSD 12.0R-p7で、Writeの方がピーク性能が高いのは、やはりストレージのWriteキャッシュが効いているからでしょうかね?
コメント 0