OpenSSLは、DebianのパッケージよりUbuntuの方が40%前後良い結果になるのですが、原因はコンパイルオプションの違いによるものと思われます。
今回、マイクロサーバ技術課にてDebianのOpenSSLを再構築、速度検証を行った結果を、当blogにて報告します。
<検証環境>
OpenBlocks AX3/4 Debian 7.1 kernel: 3.2.40
OpenBlocks AX7 Debian 7.1 kernel: 3.2.40
OBDN技術ブログによる動作検証は、該当するソフトウェアの動作を保証およびサポートを行うものではありません。
内容に関するご指摘などありましたら、ブログ記事の担当までご連絡下さい。
1.OpenSSLの作成
開発環境の準備
SSD併用モードの検証機を用意します。
以下のコマンドを入力して、ビルド環境を作成します。
# apt-get install build-essential devscripts
# apt-get build-dep openssl
# apt-get source opnessl
OpenSSLのビルド
configはデフォルトで。
# cd openssl-1.0.1e
# ./config
# make
2.ベンチマーク
以下のopensslのオプションコマンドによるベンチマークを行いました。
# openssl speed md5 sha rc4 aes-128-cbc aes-256-cbc -elapsed
elapsedオプション
このオプションを付けた場合は、経過時間に実時間を使用します。
付けない場合は、経過時間にユーザ時間を使用します。
( timeコマンドでいうところのrealを使うかuserを使うかの違いです。)
# time
real 0m0.000s
user 0m0.000s
sys 0m0.000s
AX3
MD5
|
16 bytes |
64 bytes |
256 bytes |
1024 bytes |
8192 bytes |
| original |
3959.72k |
14570.50k |
45317.27k |
96043.04k |
142521.75k |
| rebuild |
3176.47k |
11748.89k |
38143.49k |
86815.81k |
139127.92k |
SHA
SHA1
|
16 bytes |
64 bytes |
256 bytes |
1024 bytes |
8192 bytes |
| original |
4118.90k |
13892.91k |
37209.22k |
64278.28k |
81364.79k |
| rebuild |
3258.12k |
11657.12k |
35595.82k |
73223.14k |
105856.43k |
SHA256
|
16 bytes |
64 bytes |
256 bytes |
1024 bytes |
8192 bytes |
| original |
1185.47k |
2831.95k |
21233.46k |
27692.57k |
30383.88k |
| rebuild |
9166.13k |
22245.57k |
40425.80k |
50926.48k |
55104.13k |
SHA512
|
16 bytes |
64 bytes |
256 bytes |
1024 bytes |
8192 bytes |
| original |
1001.78k |
4010.72k |
5859.25k |
8083.48k |
9087.40k |
| rebuild |
2900.56k |
11631.05k |
16581.49k |
22607.95k |
25313.55k |
RC4
|
16 bytes |
64 bytes |
256 bytes |
1024 bytes |
8192 bytes |
| original |
76616.54k |
92183.77k |
99732.75k |
101792.74k |
101980.87k |
| rebuild |
86311.48k |
97458.94k |
101188.81k |
102165.26k |
101828.47k |
AES
AES 128 CBC
|
16 bytes |
64 bytes |
256 bytes |
1024 bytes |
8192 bytes |
| original |
19698.47k |
24733.85k |
26619.24k |
27161.86k |
27324.81k |
| rebuild |
37864.58k |
48231.72k |
52411.28k |
53509.61k |
53727.00k |
AES 256 CBC
|
16 bytes |
64 bytes |
256 bytes |
1024 bytes |
8192 bytes |
| original |
15526.19k |
18610.97k |
19649.15k |
19927.86k |
20001.00k |
| rebuild |
31212.60k |
37900.44k |
40606.87k |
41398.18k |
41575.08k |
A7
MD5
|
16 bytes |
64 bytes |
256 bytes |
1024 bytes |
8192 bytes |
| original |
1498.52k |
5339.41k |
15721.63k |
30893.06k |
42628.34k |
| rebuild |
1175.85k |
4268.61k |
13349.97k |
28286.55k |
42101.42k |
SHA
SHA1
|
16 bytes |
64 bytes |
256 bytes |
1024 bytes |
8192 bytes |
| original |
1297.46k |
4093.24k |
10183.34k |
16189.44k |
19507.88k |
| rebuild |
1140.14k |
3761.33k |
9810.09k |
16310.86k |
20307.97k |
SHA256
|
16 bytes |
64 bytes |
256 bytes |
1024 bytes |
8192 bytes |
| original |
1185.47k |
2831.95k |
5132.54k |
6406.29k |
6927.70k |
| rebuild |
2689.97k |
6131.58k |
10653.60k |
13119.15k |
14002.60k |
SHA512
|
16 bytes |
64 bytes |
256 bytes |
1024 bytes |
8192 bytes |
| original |
153.51k |
617.22k |
871.08k |
1195.69k |
1349.91k |
| rebuild |
729.19k |
2926.45k |
4139.18k |
5635.75k |
6278.72k |
RC4
|
16 bytes |
64 bytes |
256 bytes |
1024 bytes |
8192 bytes |
| original |
22444.42k |
25887.09k |
27038.89k |
27221.73k |
27396.78k |
| rebuild |
22965.96k |
26169.81k |
27001.28k |
27336.02k |
27303.04k |
AES
AES 128 CBC
|
16 bytes |
64 bytes |
256 bytes |
1024 bytes |
8192 bytes |
| original |
4880.32k |
5504.11k |
5666.79k |
5733.38k |
5720.79k |
| original |
7606.46k |
8501.16k |
8808.19k |
8854.03k |
8899.24k |
AES 256 CBC
|
16 bytes |
64 bytes |
256 bytes |
1024 bytes |
8192 bytes |
| original |
3751.82k |
4089.11k |
4202.92k |
4214.39k |
4232.53k |
| rebuild |
5890.15k |
6452.46k |
6589.41k |
6650.88k |
6660.10k |
3.検証結果から
AX3
- AESは2倍程度高速となります。
- MD5は遅くなります。
- RC4, SHA1は大きく変わりません。SHA256, SHA512は数倍高速となります。
A7
- AESは3割程度高速となります。
- MD5は遅くなります。
- RC4, SHA1は大きく変わりません。SHA256, SHA512は数倍高速となります。
暗号化アルゴリズム単位で指定できるので、MD5を指定しない前提であれば、リビルドをすることにより速度向上を見込めます。