FreeBSD Meltdown対策機能による性能影響ベンチマーク
2018年3月に入ってからFreeBSDに取り込まれたMeltdown対策機能(PTIの実装およびPCIDの利用)が性能にどういった影響をもたらすかを調べたベンチマーク結果が「Performance Benchmark for PTI (aka Meltdown mitigation)」として公開されました。ベンチマークはシステムコール呼び出しに関するマイクロベンチマークとbuildworldによる時間(システム時間、ユーザ時間、実時間)比較です。
実行されたベンチマークはそれぞれ次のとおりです。
ベンチマークには次のスペックのマシンが使われたと説明があります。buildworldの並列オプションが48になっているのはこのマシンのコアの数に合わせたためでしょう。
表 ベンチマークに使ったマシンスペック
項目 | 内容 |
プロセッサ | Intel Xeon E5-2650 v4 (24 cores@2.20GHz) × 2個 |
メモリ | 256GB DDR4 ECC RAM |
ストレージ | 2.8TB SSD |
ベンチマークは次の4つのパターンで実施されています。PTIが有効化どうかがMeltdown対策機能が有効になっているかどうか、PCIDはハードウェアによるサポート機能を使って性能向上をはかっているかどうかです。PCIDはデフォルトで有効化されるので、基本的にはパターン2(+)とパターン4(%)を比較することになります。
パターン | PTI | PCID | ministat(1)出力 |
1 | 無効 | 無効 | x |
2 | 無効 | 有効 | + |
3 | 有効 | 無効 | * |
4 | 有効 | 有効 | % |
ベンチマーク結果はそれぞれ次のとおりです。
ベンチマークの結果、次のことが確認されています。
- PTIを有効にすることでシステムコールの時間が100%以上増加している
- PTIとPCIDを有効にした場合とそうでない場合のbuildworldを比較した結果、実時間とユーザ時間に関しては統計上有意義な差は認められなかったが、システム時間は5%ほど遅くなった
Meltdown対策のためにPTIを実装した場合、システムコールの呼び出しが遅くなることはその仕組み上予測されていたことです。ベンチマーク結果は予測に沿った結果になっているとみられます。
Spectreセキュリティ脆弱性への対処は、どういったパターンのときにこの脆弱性を利用できるのかを洗い出してから、その条件にならないように対処を入れるといった作業が必要になります。こちらは対策が取り込まれるまでまだ時間がかかるものと見られます。
BSD界隈四方山話終了のお知らせ
BSD界隈四方山話は今回で終了です。2015年5月1日にはじまり、ほぼ3年間ほど連載してきました。日本語である程度まとまった*BSDの情報を定期的にお届けするという取り組みを続けてきました。これからも情報を提供していきたかったのですが、今回でおしまいです。これまでのご愛好、誠にありがとうございました。
全国にお届けすることは難しいのですが、FreeBSDに関する情報交換はFreeBSD勉強会で行っています。発表が終わったあとの歓談の時間でいろいろなやりとりもできますので、興味がある方は参加をご検討いただければと思います。開催場所や開催時期は@daichigotoでアナウンスしています。
今後も週に1回くらいのペースで*BSDの情報をお知らせする活動を続けていきたいとは考えています。今のところ次の媒体は見つかっていません。興味がございましたら@daichigotoまでメッセージをいただければと思います。
FreeBSD勉強会
4月26日(木)19:00~ 第70回 - ヴァル研 セミナールーム
【sysctl(8)からカーネルの中身を追う】
*BSDに限らず、UNIX系OSではユーザランド側からsysctlコマンドを実行することで、カーネルが提供する機能のON/OFFやカーネルパラメータを設定することができます。今回のFreeBSD勉強会では、sysctlによるカーネルパラメータの設定を題材にしてカーネルソースコードの読み方を解説しようと思います。
また、ソースコードを読み解く際の当たりの付け方といった、カーネルに限らないコードリーディングのノウハウについても紹介できればと思いますので、カーネルソースコードをこれから読み始めてみようと思っている方はぜひご参加ください。
【AsiaBSDCon 2018復習】
AsiaBSDCon 2018で発表された内容を振り返ります。どんな発表内容だったかちょっと理解が追いつかなかった、といった場合の手助けとして利用できるように概要をお伝えできればと思います。
本勉強会への参加者には抽選か勝ち抜きかでデーモンTシャツなどのグッズをお渡しします :)
参加登録はこちらから。
FreeBSD勉強会 発表者募集
FreeBSD勉強会では発表者を募集しています。FreeBSDに関して発表を行いたい場合、@daichigotoまでメッセージをお願いします。30分~1時間ほどの発表資料を作成していただき発表をお願いできればと思います。