第7回 やっぱり気になるスイッチ・オン! での性能変化
面 和毅
サイオステクノロジー株式会社
OSSテクノロジーセンター
開発支援グループ
グループマネージャー
2008/2/29
テストケース1:ショッピングサイト運用の場合
テストケース1では、一般的なショッピングサイトのスクリプトを実行した場合を考えます。今回はCGI検索 夢幻からダウンロードしたショッピングカートのスクリプトをサンプルとして使用しています。
●Apache Bench測定結果
同時アクセス数(-cオプションで指定)を変更して、SELinux有効と無効でそれぞれApache Benchで負荷をかけました。結果は表1やグラフ1を見て分かるとおり、SELinux有効と無効とでは目立った差異が出ませんでした。
同時アクセス数 | SELinuxの状態 | 完了したリクエスト数 | 失敗したリクエスト数 | 1秒当たりのリクエスト処理数 | 1リクエストの処理時間 | 転送速度 | 接続時間(ms) (Total/max) |
10 | Enforcing | 1000 |
0 |
158.18 |
63.22 |
236.95 |
6321 |
30 | Enforcing | 1000 |
0 |
166 |
180.72 |
251.83 |
331 |
50 | Enforcing | 1000 |
0 |
160.46 |
311.6 |
247.91 |
526 |
80 | Enforcing | 1000 |
0 |
165.17 |
484.34 |
247.43 |
3253 |
100 | Enforcing | 1000 |
0 |
162.59 |
615.04 |
246 |
2129 |
10 | Disabled | 1000 |
0 |
162.96 |
61.37 |
244.11 |
6136 |
30 | Disabled | 1000 |
0 |
148.48 |
202.05 |
225.99 |
740 |
50 | Disabled | 1000 |
0 |
159.43 |
313.62 |
250.15 |
862 |
80 | Disabled | 1000 |
0 |
165.88 |
482.26 |
248.5 |
4995 |
100 | Disabled | 1000 |
0 |
167 |
598.8 |
250.17 |
1009 |
表1 テストケース1でのApache Benchの結果 |
グラフ1 1秒当たりのリクエスト処理数はSELinux有効と無効で目立った差異はない |
●JMeter測定結果
JMeterのクライアント側のスレッド数を変化させて、SELinux有効と無効でそれぞれ負荷をかけました。こちらも結果は、SELinux有効と無効とでは目立った差異が出ませんでした。
スレッド数 |
SELinuxの状態 |
サンプル数 |
平均 |
中央値 |
90% Line |
最小 |
最大 |
エラー率(%) |
スループット(/sec) |
Kbytes /sec |
10 |
Enforcing | 32000 |
21 |
10 |
40 |
0 |
561 |
6.18 |
417.3 |
876.8 |
30 |
Enforcing | 96000 |
68 |
60 |
130 |
0 |
541 |
5.87 |
356.3 |
748.7 |
50 |
Enforcing | 160000 |
88 |
80 |
160 |
0 |
2153 |
5.72 |
392.4 |
824.4 |
80 |
Enforcing | 256000 |
163 |
150 |
281 |
0 |
2043 |
5.22 |
289.5 |
608.4 |
100 |
Enforcing | 320000 |
250 |
161 |
421 |
0 |
11166 |
5.1 |
162.2 |
340.7 |
10 |
Disabled | 32000 |
20 |
10 |
40 |
0 |
391 |
6.19 |
425.9 |
894.9 |
30 |
Disabled | 96000 |
106 |
100 |
190 |
0 |
661 |
5.74 |
342.4 |
719.5 |
50 |
Disabled | 160000 |
106 |
100 |
190 |
0 |
661 |
5.74 |
342.4 |
719.5 |
80 |
Disabled | 256000 |
162 |
150 |
290 |
0 |
1882 |
5.2 |
285.9 |
600.8 |
100 |
Disabled | 320000 |
238 |
160 |
391 |
0 |
3485 |
5.15 |
166 |
348.8 |
表2 テストケース1でのJMeterの結果 |
グラフ2 スループット、および処理量ともにSELinux有効と無効で目立った差異はない
|
テストケース2:ディスクI/Oを発生させた場合
テストケース2は、パフォーマンステストのために、PHPスクリプト内でランダムなディレクトリを作成し、その中に空のファイルを2000個作成してからすべて削除するというものになります。
●Apache Bench測定結果
同時アクセス数(-cオプションで指定)を変更して、SELinux有効と無効でそれぞれApache Benchで負荷をかけました。
結果は表3のとおりですが、やはりファイルを2000個作成/削除を繰り返すとHDDへのアクセスの負荷が大きいため、Webサーバの処理が追い付いていないようです。処理が追い付いていない場合には、測定結果の数値に関して信頼度が下がってしまうのですが、あえて比較するならSELinux有効では失敗したリクエスト数(Failed Request:この値が大きいほど、Webサーバの処理が追い付いていない)の数がSELinux無効の状態よりも多くなっています。
同時アクセス数 | SELinuxの状態 | 完了したリクエスト数 | 失敗したリクエスト数 | 1秒当たりのリクエスト処理数 | 1リクエストの処理時間 | 転送速度 | 接続時間(ms) (Total/max) |
10 | Enforcing | 1000 |
961 |
3.64 |
2746.57 |
320.78 |
7474 |
30 | Enforcing | 1000 |
965 |
3.39 |
8852.8 |
298.89 |
260266 |
50 | Enforcing | 1000 |
960 |
3.6 |
13897.27 |
317.21 |
203365 |
80 | Enforcing | 1000 |
584 |
3.48 |
22964.32 |
307.27 |
278228 |
100 | Enforcing | 1000 |
954 |
3.13 |
31955.57 |
276.45 |
319554 |
10 | Disabled | 1000 |
606 |
4.07 |
2454.59 |
452.01 |
245458 |
30 | Disabled | 1000 |
572 |
3.86 |
7772.18 |
426.38 |
255385 |
50 | Disabled | 1000 |
584 |
3.84 |
13020.67 |
425.17 |
159091 |
80 | Disabled | 1000 |
468 |
3.92 |
20408.88 |
433.85 |
251676 |
100 | Disabled | 1000 |
599 |
3.94 |
25405.93 |
436.13 |
240912 |
表3 テストケース2でのApache Benchの結果 |
グラフ3 SElinuxが有効であると、失敗したリクエスト数が増加し、処理量も落ちていることが分かる |
また、1秒当たりのリクエスト処理数の値も若干下がっているように見えます。これらから、SELinuxを有効にした際にテストケース2の場合にはパフォーマンスが若干落ちていると考えられます。
●JMeter測定結果
JMeterのクライアント側のスレッド数を変化させて、SELinux有効と無効でそれぞれ負荷をかけました。結果、SELinux有効と無効とではパフォーマンスに差異が生じ、SELinuxを有効にした際にパフォーマンスが低下するという結果が出ました。
スレッド数 |
SELinuxの状態 |
サンプル数 |
平均 |
中央値 |
90% Line |
最小 |
最大 |
エラー率(%) |
スループット(/sec) |
Kbytes /sec |
10 |
Enforcing | 9000 |
1845 |
2333 |
3866 |
0 |
142605 |
0 |
5.3 |
343.9 |
30 |
Enforcing | 27000 |
5858 |
2984 |
13058 |
0 |
1603396 |
0 |
4.9 |
312.9 |
50 |
Enforcing | 45000 |
10793 |
2974 |
26838 |
0 |
1134041 |
0 |
4.5 |
286.7 |
80 |
Enforcing | 72000 |
16742 |
1623 |
50593 |
0 |
1264458 |
0 |
4.5 |
292.7 |
100 |
Enforcing | 90000 |
8854 |
421 |
30123 |
0 |
395679 |
0 |
10.7 |
688.7 |
10 |
Disabled | 9000 |
648 |
351 |
1733 |
0 |
7771 |
0 |
15.1 |
971.1 |
30 |
Disabled | 27000 |
2022 |
541 |
5968 |
0 |
133792 |
0 |
14.5 |
931.6 |
50 |
Disabled | 45000 |
3309 |
491 |
10305 |
0 |
326149 |
0 |
14.5 |
934.7 |
80 |
Disabled | 72000 |
5307 |
481 |
17465 |
0 |
348671 |
0 |
14.5 |
932.2 |
100 |
Disabled | 90000 |
6690 |
461 |
22502 |
0 |
540947 |
0 |
14.3 |
921.2 |
表4 テストケース2でのJMeterの結果 |
グラフ4 SELinuxが有効の場合、スループットが低下していることが分かる
|
2/3 |
Index | |
やっぱり気になるスイッチ・オン! での性能変化 | |
Page1 「SELinux有効」がパフォーマンスに与えるインパクトとは 測定環境をチェック |
|
Page2 テストケース1:ショッピングサイト運用の場合 テストケース2:ディスクI/Oを発生させた場合 |
|
Page3 このテストから分かること パフォーマンス劣化が発生する場所を知れば導入は怖くない |
スイッチ・オン! SELinux 連載インデックス |
- Windows起動前後にデバイスを守る工夫、ルートキットを防ぐ (2017/7/24)
Windows 10が備える多彩なセキュリティ対策機能を丸ごと理解するには、5つのスタックに分けて順に押さえていくことが早道だ。連載第1回は、Windows起動前の「デバイスの保護」とHyper-Vを用いたセキュリティ構成について紹介する。 - WannaCryがホンダやマクドにも。中学3年生が作ったランサムウェアの正体も話題に (2017/7/11)
2017年6月のセキュリティクラスタでは、「WannaCry」の残り火にやられたホンダや亜種に感染したマクドナルドに注目が集まった他、ランサムウェアを作成して配布した中学3年生、ランサムウェアに降伏してしまった韓国のホスティング企業など、5月に引き続きランサムウェアの話題が席巻していました。 - Recruit-CSIRTがマルウェアの「培養」用に内製した動的解析環境、その目的と工夫とは (2017/7/10)
代表的なマルウェア解析方法を紹介し、自社のみに影響があるマルウェアを「培養」するために構築した動的解析環境について解説する - 侵入されることを前提に考える――内部対策はログ管理から (2017/7/5)
人員リソースや予算の限られた中堅・中小企業にとって、大企業で導入されがちな、過剰に高機能で管理負荷の高いセキュリティ対策を施すのは現実的ではない。本連載では、中堅・中小企業が目指すべきセキュリティ対策の“現実解“を、特に標的型攻撃(APT:Advanced Persistent Threat)対策の観点から考える。
|
|