だから私は最近(2018年1月上旬)に修正されたKPTIカーネル修正を含むFedora 26ノートブック用のカーネルアップデートを受け取りました。衝突エラー。私はこれらの修正がLinuxシステムに与える影響について多くの推測を聞きました。実際、Intelは皇帝を信じているようです。まだきれいに服を着ている。このリンクからわかるように、業界の一部の情報源(特にApple、Microsoft、Amazon、Google)は影響が少ないと主張しています。このリンク。他の人大きな影響を与えると主張。
メディア報道の混乱に満足せず、「これが実際に私のコンピュータにどのような影響を与えるのか」と知りたかった。理論的には、CPUバインディングプロセスへの影響はわずかですが、多くのシステムコール(ディスクやネットワークI / Oなど)を実行するプロセスはより大きな影響を受けます。
私は以下に自分で答えます。
PS:私はより現代的なプロセッサのベンチマークを見たことがありません。非常に興味深いことに、私が聞いたように「…新しいプロセッサは大きなダメージを与えません。」そのプロセッサは何であり、「あまり大きくない」程度はどのくらいですか?私はIntel i5-3210mデュアルコア(コアあたり2スレッド)プロセッサを搭載した旧型Lenovo Thinkpad T430Sを使用しています。メルトダウンとその修復についてこれは現代的なものですか?マイクロソフトによると、「...(it) は、2015 年以前のプロセッサを搭載した Windows 7、8、10 を実行する消費者デバイスが速度低下を経験する可能性が高いと言います」独自のベンチマークでは、2015年と2017年のプロセッサ間の違いは見られないようです。
ベストアンサー1
新しいカーネルを起動する前に、いくつかの間違いを得たいと思います。カーネルを4.14.8から4.14.11にアップグレードしました。後者には、Meltdownの脆弱性に対するKPTIの修正が含まれています。私はIntel i5-3210mデュアルコア(コアあたり2スレッド)プロセッサを搭載した旧型Lenovo Thinkpad T430Sを使用しています。結果は興味深いので、ここに投稿する必要があると思いました。
私は3つのベンチマークを行いました。
- AIM9、アクセス可能 https://sourceforge.net/projects/aimbench/files/aim-suite9/Initial%20release/s9110.tar.Z/downloadこのベンチマークは古いですが、整数、浮動小数点、ファイル操作、メッセージ転送などを含むシステムの基本操作をテストするのはかなり包括的なようです。
- x86_64 gcc コンパイラでコンパイルします。
- 古代ボニー++ベンチマークバージョン1.97を実行します。
結果は次のとおりです。いくつかの驚くべき値(セカンダリループ/秒とディレクトリ操作AIM9ベンチマーク、ブロックシーケンシャル出力bonnie ++ベンチマークの両方がより良いパフォーマンスを示す)に加えて、システムはわずかな打撃を受けたようです。コンパイルには多くのファイルI / OおよびCPU操作も含まれているので、gccのコンパイルは非常に興味深いと思います。これらは私のコンピュータで定期的に行うことに似ています。それにもかかわらず、この3つのベンチマークセットはすべて1つの点に同意するようです。私のシステムは通常、KPTI Meltdown回復カーネルをインストールした後、整数および浮動小数点演算までかなりの打撃を受けました。もともと160分かかったgccのコンパイルは、172分しかかかりません。本当に悪いです。
AIM9 benchmark
AIM Independent Resource Benchmark - Suite IX v1.1, January 22, 1996
Copyright (c) 1996 - 2001 Caldera International, Inc.
All Rights Reserved
BEFORE:
Machine's name : rodin
Machine's configuration : kernel_4.14.8-200
Number of seconds to run each test [2 to 1000] : 10
Path to disk files : /var/tmp/aim9
AFTER:
Machine's name : rodin
Machine's configuration : kernel_4.14.11-200
Number of seconds to run each test [2 to 1000] : 10
Path to disk files : /var/tmp/aim9
注:AIM9ベンチマークには、コンパイル時にテストの1つが完了しないバグがあります。これがうまくいくには、creat-clo.cで97行を変更する必要がありました。
static int sigcount; /* count of signals */
これに関して:
volatile static int sigcount; /* count of signals */
私のベンチマークの結果は次のとおりです。
AIM9 Benchmark
BEFORE AFTER Percent Change Description
01 1.996 M 1.929 M -3.34 Thousand Double Precision Additions/second
02 1.980 M 1.945 M -1.75 Thousand Single Precision Additions/second
03 8.559 M 8.259 M -3.50 Thousand Long Integer Additions/second
04 8.592 M 8.280 M -3.63 Thousand Integer Additions/second
05 8.599 M 8.268 M -3.85 Thousand Short Integer Additions/second
06 205400.00 190400.00 -7.30 File Creations and Closes/second
07 552330.00 384665.33 -30.35 System Allocations & Pages/second
08 2.844 M 1.373 M -51.71 System Memory Allocations/second
09 75.980 M 74.623 M -1.78 Non-local gotos/second
10 1.131 M 651400.00 -42.43 Signal Traps/second
11 855.64 787.71 -7.93 Program Loads/second
12 3246.75 3846.15 18.46 Task Creations/second
13 166307.40 154135.80 -7.31 Link/Unlink Pairs/second
14 504839.16 369664.00 -26.77 Random Disk Reads (K)/second
15 451072.00 339628.37 -24.70 Random Disk Writes (K)/second
16 3.285 M 1.765 M -46.24 Sequential Disk Reads (K)/second
17 698880.00 598528.00 -14.35 Sequential Disk Writes (K)/second
18 537088.00 431616.00 -19.63 Disk Copies (K)/second
19 115.78 116.58 .69 Sync Random Disk Writes (K)/second
20 116.42 114.75 -1.43 Sync Sequential Disk Writes (K)/second
21 116.05 114.90 -.99 Sync Disk Copies (K)/second
22 79020.00 73711.29 -6.71 Directory Searches/second
23 311100.00 299400.00 -3.76 Thousand Double Precision Divides/second
24 316483.52 305694.31 -3.40 Thousand Single Precision Divides/second
25 105284.72 101688.31 -3.41 Thousand Long Integer Divides/second
26 294660.00 286470.00 -2.77 Thousand Integer Divides/second
27 290700.00 282420.00 -2.84 Thousand Short Integer Divides/second
28 424.140 M 407.756 M -3.86 Function Calls (no arguments)/second
29 462.336 M 448.460 M -3.00 Function Calls (1 argument)/second
30 485.198 M 472.115 M -2.69 Function Calls (2 arguments)/second
31 236.441 M 226.969 M -4.00 Function Calls (15 arguments)/second
32 195.30 186.63 -4.43 Integer Sieves/second
33 1.202 M 1.160 M -3.48 Thousand Double Precision Multiplies/second
34 1.204 M 1.166 M -3.18 Thousand Single Precision Multiplies/second
35 1.396 M 1.359 M -2.69 Thousand Long Integer Multiplies/second
36 1.396 M 1.357 M -2.83 Thousand Integer Multiplies/second
37 1.365 M 1.327 M -2.78 Thousand Short Integer Multiplies/second
38 554540.00 538080.00 -2.96 Numeric Functions/second
39 1.614 M 1.561 M -3.28 Zeros Found/second
40 2.513 M 2.431 M -3.28 Trigonometric Functions/second
41 18.605 M 17.861 M -4.00 Point Transformations/second
42 3880.00 3766.00 -2.93 Linear Systems Solved/second
43 28060.00 26980.00 -3.84 String Manipulations/second
44 14.751 M 14.373 M -2.55 Dynamic Memory Operations/second
46 5277.00 5121.00 -2.95 Sort Operations/second
47 4231.00 10771.00 154.57 Auxiliary Loops/second
48 2.828 M 2.900 M 2.54 Directory Operations/second
49 137.36 156.70 14.07 Shell Scripts/second
50 137.16 157.64 14.93 Shell Scripts/second
51 137.60 161.90 17.65 Shell Scripts/second
52 44.497 M 42.774 M -3.87 Series Evaluations/second
53 1.092 M 607030.00 -44.43 Shared Memory Operations/second
56 1.318 M 825670.00 -37.38 FIFO Messages/second
57 922370.00 664690.00 -27.93 Stream Pipe Messages/second
58 866290.00 632950.00 -26.93 DataGram Pipe Messages/second
59 1.922 M 1.038 M -45.96 Pipe Messages/second
60 19725.935 M 18947.483 M -3.94 Memory to Memory Copy/second
=========================================================================================================
GCC compile, both "configure" and "make"
Results summary::
configure: 38% real slowdown
make (x86_64 only): 7.7% real slowdown, 5.5% user CPU slowdown
BEFORE AFTER
time ../gcc-7.2.0/configure --disable-multilib | time ../gcc-7.2.0/configure --disable-multilib
... | ...
configure: creating ./config.status | configure: creating ./config.status
config.status: creating Makefile | config.status: creating Makefile
|
real 0m2.467s | real 0m3.420s
user 0m1.835s | user 0m1.936s
sys 0m1.108s | sys 0m1.295s
|
time make | time make
... | ...
real 160m8.766s | real 172m28.158s
user 152m11.430s | user 163m34.790s
sys 6m41.507s | sys 7m5.214s
=========================================================================================================
BONNIE++
Version: 1.97
See https://www.coker.com.au/bonnie++/experimental/ . This version was provided by my Fedora distribution.
Run using: bonnie++ -n 1024
Sample results:
BEFORE AFTER % change from before
Sequential Output, per char 1115 K/s 890 K/s -20
Sequential Output, block 358891 K/s 461208 K/s +28
Sequential Input, per char 4181 K/s 1989 K/s -52
Sequential Input, block 515347 K/s 521646 K/s -1,2
Random Seeks 5651 /s 5221 /s -7.6
Sequential Create, Create 41855 /s 40751 /s -2.74
Read 741945 /s 624554 /s -15.8
Delete 79832 / s 78340 /s -1.9
Random Create, Create 41198 /s 41003 /s -0.47
Read 741945 /s 719494 /s -3.02
Delete 61154 /s 60698 /s -0.74
Bonnie の結果は以下で確認できます。
今後: https://bintray.com/greygnome/generic/download_file?file_path=bon_results_before_kpti.html
後ろに: https://bintray.com/greygnome/generic/download_file?file_path=bon_results_after_kpti.html