• お問い合わせ
  • ユーザー登録
インデックス

メールサーバの性能測定

Version 1.0

本資料は、Turbolinux 11 Serverを導入した環境において、メールサーバ(SMTPサーバ)を稼働させた場合の性能を、メールサーバ用ベンチマークチールであるPostalを用いて計測した結果をまとめた資料です。


目次

第1章 はじめに
第2章 メールサーバ性能測定環境
2.1 概要
第3章 性能測定の実施
3.1 想定する要件
3.2 実施方法
第4章 性能測定結果
4.1 性能測定結果
4.2 考察



第1章 はじめに

一般的に、アプリケーションサーバやデータベースサーバ等のサーバアプリケーションについての性能を調査したデータおよび手法についての情報は入手することが容易ですが、メールに関連する情報は比較的少ないです。現在、メールは企業・個人を問わず、インターネットを介した最も普及しているコミュニケーション・ツールです。本資料では、一般的に企業等に導入されているサーバ環境において、メールに係わるサーバアプリケーションの性能を把握し、メールシステムを構築する際に必要となるシステム設計に有用となる情報をまとめています。

注意:本書に記載している内容については、動作およびパフォーマンスを保証しているものではございません。

なお、メールに関わるサーバアプリケーションの性能測定に、Postalプロジェクトから提供されているPostalスイートを用いて計測した結果および方法をまとめています。




第2章 メールサーバ性能測定環境


2.1 概要

メールサーバの性能測定を行うあたり、下記の構成のシステムを準備しました。


図 2-1:メールサーバ性能測定環境(システム構成図)

また、本性能測定環境は、富士通株式会社 Platform Solution Center 新しくウィンドウが開きますにご協力いただき、提供されるサービスを利用して構築しました。



2.1.1 サーバA

本性能測定環境において、サーバAは送信用メールサーバとして使用します。ハードウェア情報と主なソフトウェア情報を、以下の表にまとめます。

表 2-1:サーバAのハードウェア情報
項目 内容
品名 / モデル PRIMERGY RX300 S4 新しくウィンドウが開きます
CPU QuadXeon5460 3.16GHz/12MB × 2
メモリ 2GB × 2 = 4GB
HDD 147GB(SAS,15Krpm) × 3 (RAID5構成で294GB)

表 2-2:サーバAのソフトウェア情報
項目 内容
OS Turbolinux 11 Server
Linux Kernel Kernel 2.6.23-7
C Library glibc 2.6.1-4
SMTPサーバ Postfix 2.4.5-10
POPサーバ imap 2006j2-4


2.1.2 サーバB

本性能測定環境において、サーバBは受信用メールサーバとして使用します。ハードウェア情報と主なソフトウェア情報を、以下の表にまとめます。

表 2-3:サーバBのハードウェア情報
項目 内容
品名 / モデル PRIMERGY RX200 S4 新しくウィンドウが開きます
CPU QuadXeon X5460 3.16GHz/12MB × 2
メモリ 2GB × 2 = 4GB
HDD 147GB(SAS,15Krpm) × 1 (RAID1構成で147GB)

表 2-4:サーバBの詳細情報
項目 内容
OS Turbolinux 11 Server
Linux Kernel Kernel 2.6.23-7
C Library glibc 2.6.1-4
SMTPサーバ Postfix 2.4.5-10
POPサーバ imap 2006j2-4


2.1.3 サーバC

本性能測定環境において、サーバCは測定用クライアントおよびDNSサーバ、各メールサーバのネットワーク間のゲートウェイとして使用します。ハードウェア情報と主なソフトウェア情報を、以下の表にまとめます。

表 2-5:サーバCのハードウェア情報
項目 内容
品名 / モデル PRIMERGY TX300 S4 新しくウィンドウが開きます
CPU Xeon X5460 3.16GHz/12MB × 2
メモリ 2GB × 2 = 4GB
HDD 147GB(SAS,15Krpm) × 3 (RAID5構成で294GB)

表 2-6:サーバCの詳細情報
項目 内容
OS Turbolinux 11 Server
Linux Kernel Kernel 2.6.23-7
C Library glibc 2.6.1-4
DNSサーバ bind 9.4.2-1
計測ツール Postal 0.70


性能測定環境の構築方法と性能測定ツールの設定は下記をご参照ください。





第3章 性能測定の実施


3.1 想定する要件

電子メールシステムの仕組みは、他のクライアント/サーバ系システムと同様に、電子メールを送受信するメールクライアントと、受け取った電子メールを適切に配送や蓄積を行い、メールクライアントからの要求に従い転送等を行うメールサーバで構成されます。

一般的に、コンピュータシステムを評価する指標として「信頼性」「可用性」「保守性」「保全性」「安全性」の5項目が挙げられますが、本性能測定では、最も普及しているインターネットを介したコミュニケーション・ツールは電子メールシステムであることを考慮し、情報が矛盾を起こさずに一貫性を保っていることを指標とする保全性と、適切な環境で継続的に電子メールシステムが稼働する可用性を実現するために基となるデータを得ることができるように性能測定を実施することにしました。また、電子メールシステムにおいて、メールクライアントは、PCで動作する多種メールクライアントソフトウェアや携帯電話、他のシステムからの利用等であり多岐にわたります。このため、メールサーバに焦点を絞ることにしました。

電子メールシステムを利用する企業規模はまちまちであり、一定時間に電子メールを利用する量と企業規模は連動しない場合もあります。このため、特定のハードウェア/ソフトウェア環境においてメールサーバを運用した場合に指標となるデータを本性能測定から得ることにより、電子メールシステムを利用する企業規模や利用形態により、電子メールシステムのメールサーバの構成を設計する際に叩き台となりうるデータを入手できることを目的として性能測定を実施しました。



3.2 実施方法

下記の構成図のとおり、サーバCにおいてメールクライアントであるPostalを稼働させ、サーバAにおいて稼働するメールサーバから、サーバBで稼働するメールサーバにメールを送信した際の性能測定を実施しました。


図 5-1:性能測定方法の概要図

メールクライアントについては、仮想的に複数メールクライアントから、一定時間に複数の電子メールを送信し、メールを受送信するサーバAの負荷状態を測定しました。

メールサーバは、メールクライアントから受信した電子メールを一旦キューイングし、電子メールが自サーバ宛であればスプールし、外部のメールサーバ宛であれば、決められた手順で外部のメールサーバに配送します。このキューイングは、メールサーバのハードディスクを利用するため、メールサーバのハードディスクの空き容量があれば、メールサーバのCPUやメモリ、ネットワーク処理能力が許す限りメールを受送信可能ですが、利用可能なハードディスクの容量は無限ではないため、キューイングされるメール数が増加し続けるメールサーバおよび電子メールシステムは現実的ではありません。

従って、キューイングされる電子メール数も合わせて取得するように性能測定を実施しました。




第4章 性能測定結果


4.1 性能測定結果


4.1.1 32ビット環境における性能測定結果

Turbolinux 11 Server(32ビット)で稼働するメールサーバに対して、メールクライアントであるPostalを実行(1Kバイトの電子メールを100クライアントから1分間に最大6,000通送信)した結果は下記の通りでした。

表 4-1:「postal -m 1 -M 1 -t 100 -r 6000」の実行結果(32ビットOS環境)
No. 時間 メッセージ数
(1分間)
メッセージ数
(累計)
データ(Kバイト)
(1分間)
データ(Kバイト)
(累計)
エラー数 コネクション数
(1分間)
コネクション数
(累計)
1 14:54 2909 2909 4381 4381 0 3009 3009
2 14:55 5691 8600 8180 12561 0 5691 8700
3 14:56 6000 14600 8765 21326 0 6000 14700
4 14:57 6000 20600 8763 30089 0 6000 20700
5 14:58 6000 26600 8762 38851 0 6000 26700
6 14:59 6000 32600 8760 47611 0 6000 32700
7 15:00 6000 38600 8763 56374 0 6000 38700
8 15:01 6000 44600 8763 65137 0 6000 44700
9 15:02 6000 50600 8764 73901 0 6000 50700
10 15:03 6000 56600 8762 82663 0 6000 56700
11 15:04 6000 62600 8763 91426 0 6000 62700
12 15:05 6000 68600 8765 100191 0 6000 68700
13 15:06 6000 74600 8763 108954 0 6000 74700
14 15:07 6000 80600 8763 117717 0 6000 80700
15 15:08 6000 86600 8762 126479 0 6000 86700
16 15:09 6000 92600 8764 135243 0 6000 92700
17 15:10 6000 98600 8765 144008 0 6000 98700
18 15:11 6000 104600 8763 152771 0 6000 104700
19 15:12 6000 110600 8762 161533 0 6000 110700
20 15:13 6000 116600 8763 170296 0 6000 116700
平均 5830 8515 0.00 5835

性能測定時のメールサーバ(Turbolinux 11 Server(32ビット))の状態は下記の通りでした。

表 4-2:性能測定(100クライアントから最大6,000通/1分 送信)時のサーバA(メールサーバ)の状態
No. 時間 CPU使用率 空きメモリ ディスクI/O(tps) キューイング数
1 14:54 1% 3914436 77.8 347
2 14:55 1% 3893936 97.5 105
3 14:56 1% 3779884 131.4 0
4 14:57 1% 3744144 150.36 235
5 14:58 1% 3655304 173.31 1089
6 14:59 1% 3561292 194.79 733
7 15:00 1% 3461148 208.61 1299
8 15:01 2% 3398700 211.38 754
9 15:02 2% 3350332 215.61 0
10 15:03 2% 3191860 233.37 5007
11 15:04 2% 3190412 241.02 343
12 15:05 2% 3132312 240.44 100
13 15:06 2% 3081880 236.08 47
14 15:07 2% 3048088 231.64 361
15 15:08 2% 2952400 238.52 20118
16 15:09 2% 2862580 257.39 8159
17 15:10 2% 2791976 264.24 281
18 15:11 2% 2755168 262.69 188
19 15:12 2% 2721852 259.85 341
20 15:13 2% 2812732 256.87 20442

Turbolinux 11 Server(32ビット)で稼働するにメールサーバ対して、メールクライアントであるPostalを実行(1Kバイトの電子メールを700クライアントから1分間に最大20,000通送信)した結果は下記の通りでした。

表 4-3:「postal -m 1 -M 1 -t 700 -r 20000」の実行結果(32ビットOS環境)
No. 時間 メッセージ数
(1分間)
メッセージ数
(累計)
データ(Kバイト)
(1分間)
データ(Kバイト)
(累計)
エラー数 コネクション数
(1分間)
コネクション数
(累計)
1 15:29 6733 6733 10238 10238 0 7161 7161
2 15:30 14425 21158 21353 31591 0 14697 21858
3 15:31 13745 34903 20090 51681 26 13754 35612
4 15:32 13570 48473 19259 70940 3 13477 49089
5 15:33 9225 57698 14022 84962 0 9338 58427
6 15:34 10860 68558 15451 100413 11 10692 69119
7 15:35 11302 79860 16899 117312 5 11404 80523
8 15:36 11661 91521 16665 133977 0 11644 92167
9 15:37 8882 100403 13344 147321 0 8981 101148
10 15:38 10274 110677 14997 162318 0 10105 111253
11 15:39 9846 120523 14327 176645 0 9890 121143
12 15:40 8862 129385 13029 189674 0 8976 130119
13 15:41 9700 139085 13653 203327 6 9597 139716
14 15:42 9619 148704 14180 217507 0 9690 149406
15 15:43 7083 155787 10731 228238 4 7136 156542
16 15:44 9191 164978 12966 241204 5 9107 165649
17 15:45 9000 173978 13446 254650 1 8912 174561
18 15:46 8349 182327 12323 266973 2 8529 183090
19 15:47 11019 193346 15622 282595 0 10855 193945
20 15:48 10371 203717 15626 298221 0 10523 204468
平均 10186 14911 3.15 10223

性能測定時のメールサーバ(Turbolinux 11 Server(32ビット))の状態は下記の通りでした。

表 4-4:性能測定(700クライアントから最大20,000通/1分 送信)時のサーバA(メールサーバ)の状態
No. 時間 CPU使用率 空きメモリ ディスクI/O(tps) キューイング数
1 15:29 2% 3491304 136.01 3030
2 15:30 5% 3309648 222.24 20632
3 15:31 6% 3175416 245.81 31300
4 15:32 6% 3135012 246.92 36122
5 15:33 7% 3071084 237.74 40217
6 15:34 7% 2964260 240.84 51477
7 15:35 7% 2881708 240.27 53963
8 15:36 7% 2822992 234.72 57261
9 15:37 7% 2803068 232.93 59217
10 15:38 8% 2742216 231.68 64008
11 15:39 8% 2675748 229.81 70121
12 15:40 8% 2604096 228.28 72863
13 15:41 8% 2554248 226.74 75696
14 15:42 8% 2477464 224.09 81207
15 15:43 8% 2483392 222.95 82514
16 15:44 8% 2418264 221.78 86118
17 15:45 8% 2382748 219.97 87440
18 15:46 8% 2318372 218.34 90557
19 15:47 8% 2229216 220.56 95139
20 15:48 8% 2185916 223.15 98414


4.1.2 64ビット環境における性能測定結果

Turbolinux 11 Server(64ビット)で稼働するメールサーバに対して、メールクライアントであるPostalを実行(1Kバイトの電子メールを100クライアントから1分間に最大6,000通送信)した結果は下記の通りでした。

表 4-5:「postal -m 1 -M 1 -t 100 -r 6000」の実行結果(64ビットOS環境)
No. 時間 メッセージ数
(1分間)
メッセージ数
(累計)
データ(Kバイト)
(1分間)
データ(Kバイト)
(累計)
エラー数 コネクション数
(1分間)
コネクション数
(累計)
1 13:36 1000 1000 1462 1462 0 1100 1100
2 13:37 5900 6900 8618 10080 0 5900 7000
3 13:38 5305 12205 7893 17973 0 5305 12305
4 13:39 6695 18900 9634 27607 0 6695 19000
5 13:40 6000 24900 8762 36369 0 6000 25000
6 13:41 5000 29900 7447 43816 0 5000 30000
7 13:42 7000 36900 10079 53895 0 7000 37000
8 13:43 6000 42900 8763 62658 0 6000 43000
9 13:44 6000 48900 8765 71423 0 6000 49000
10 13:45 5700 54600 8469 79892 0 5700 54700
11 13:46 4921 59521 7185 87077 0 4921 59621
12 13:47 6424 65945 9381 96458 0 6424 66045
13 13:48 6663 72608 9732 106190 0 6663 72708
14 13:49 5871 78479 8503 114693 0 5871 78579
15 13:50 6421 84900 9306 123999 0 6421 85000
16 13:51 6000 90900 8763 132762 0 6000 91000
17 13:52 5946 96846 8710 141472 0 5946 96946
18 13:53 5089 101935 7549 149021 0 5089 102035
19 13:54 6730 108665 9739 158760 0 6730 108765
20 13:55 6051 114716 8822 167582 0 6051 114816
平均 5736 8379 0 5741

性能測定時のメールサーバ(Turbolinux 11 Server(64ビット))の状態は下記の通りでした。

表 4-6:性能測定(100クライアントから最大6,000通/1分 送信)時のサーバA(メールサーバ)の状態
No. 時間 CPU使用率 空きメモリ ディスクI/O(tps) キューイング数
1 13:36 1% 3565192 212.64 298
2 13:37 1% 3418964 251.41 195
3 13:38 1% 3402040 307.93 504
4 13:39 1% 3328792 330.59 524
5 13:40 1% 3246336 346.3 364
6 13:41 1% 3198940 356.5 293
7 13:42 2% 3047612 362.97 0
8 13:43 2% 3017336 369.11 273
9 13:44 2% 2960888 374.22 363
10 13:45 2% 2854596 382.89 275
11 13:46 2% 2772364 390.93 5682
12 13:47 2% 2659864 399.22 4549
13 13:48 2% 2681100 403.05 20289
14 13:49 2% 2801312 404.07 22092
15 13:50 2% 2834500 403.55 23676
16 13:51 2% 2851592 406.75 25106
17 13:52 2% 2852784 408.83 26721
18 13:53 2% 2868784 408.97 28192
19 13:54 2% 2875732 407.95 30269
20 13:55 2% 2895612 407.46 31988

Turbolinux 11 Server(64ビット)で稼働するメールサーバに対して、メールクライアントであるPostalを実行(1Kバイトの電子メールを700クライアントから1分間に最大20,000通送信)した結果は下記の通りでした。

表 4-7:「postal -m 1 -M 1 -t 700 -r 20000」の実行結果(64ビットOS環境)
No. 時間 メッセージ数
(1分間)
メッセージ数
(累計)
データ(Kバイト)
(1分間)
データ(Kバイト)
(累計)
エラー数 コネクション数
(1分間)
コネクション数
(累計)
1 14:02 3081 3081 3081 3081 0 3506 3506
2 14:03 15339 18420 22475 25556 0 15609 19115
3 14:04 12736 31156 18787 44343 0 12701 31816
4 14:05 13702 44858 19663 64006 0 13656 45472
5 14:06 10712 55570 15994 80000 0 10733 56205
6 14:07 14784 70354 21045 101045 0 14728 70933
7 14:08 10149 80503 15241 116286 0 10269 81202
8 14:09 12745 93248 18423 134709 0 12746 93948
9 14:10 11596 104844 16676 151385 0 11525 105473
10 14:11 13846 118690 20376 171761 0 13711 119184
11 14:12 11266 129956 16434 188195 0 11422 130606
12 14:13 10725 140681 15657 203852 0 10775 141381
13 14:14 11601 152282 16748 220600 0 11478 152859
14 14:15 13734 166016 20085 240685 0 13769 166628
15 14:16 11824 177840 17225 257910 0 11829 178457
16 14:17 9957 187797 14747 272657 0 10040 188497
17 14:18 12765 200562 18834 291491 0 12748 201245
18 14:19 11593 212155 16533 308024 0 11557 212802
19 14:20 9661 221816 14487 322511 0 9650 222452
20 14:21 12707 234523 18394 340905 0 12698 235150
平均 11726 17045 0 11758

性能測定時のメールサーバ(Turbolinux 11 Server(64ビット))の状態は下記の通りでした。

表 6-8:性能測定(700クライアントから最大20,000通/1分 送信)時のサーバA(メールサーバ)の状態
No. 時間 CPU使用率 空きメモリ ディスクI/O(tps) キューイング数
1 14:02 1% 3119072 280.04 5513
2 14:03 3% 2771840 393.04 22485
3 14:04 3% 2674336 420.91 33689
4 14:05 4% 2581784 435.53 42707
5 14:06 4% 2545260 445.68 49452
6 14:07 4% 2467092 457.95 57425
7 14:08 4% 2365068 467.09 64789
8 14:09 5% 2279164 469.79 70916
9 14:10 5% 2235788 475.44 76992
10 14:11 5% 2229344 477.3 82280
11 14:12 5% 2118300 478.27 93359
12 14:13 5% 2059888 480.02 97235
13 14:14 5% 1984468 482.53 105416
14 14:15 5% 1932328 483.49 111238
15 14:16 5% 1861396 482.9 121524
16 14:17 5% 1820184 485.22 123904
17 14:18 5% 1713844 486.19 134724
18 14:19 5% 1665712 485.53 140220
19 14:20 5% 1607972 486.49 145615
20 14:21 5% 1558812 484.71 154397



4.2 考察


4.2.1 メールサーバのメール受信

本性能測定では、同一PCサーバに32ビット(x86)と64ビット(x86-64)のLinuxを導入しメールサーバを稼働させて性能を測定しました。測定方法は、100メールクライアントから1Kバイトの電子メールを1分間に最大6,000通送信した場合と、700メールクライアントから1Kバイトの電子メールを1分間に最大20,000通を、32ビットと64ビットのLinuxにおいて稼働するメールサーバに20分間送信し、データを収集しました。集計したデータについては、第6章 性能測定結果を参照してください。

100メールクライアントから1Kバイトの電子メールを1分間に最大6,000通送信した場合、32ビットのLinux環境で稼働するメールサーバは、安定して6,000通を受信しているのに対して、64ビットのLinux環境で稼働するメールサーバは、メールの受信数にばらつきがあり、総受信メッセージ数も32ビットLinux環境で稼働するメールサーバよりも少ないことが分かります。これは、本性能測定で実施した負荷(100メールクライアントから1Kバイトの電子メールを1分間に最大6,000通送信)であれば、32ビットのLinux環境で稼働するメールサーバの方が効率良くサービスを提供することができると判断できます。

次に実施した、700メールクライアントから1Kバイトの電子メールを1分間に最大20,000通送信した場合、32ビットのLinux環境で稼働するメールサーバは、最大でも14,425通、平均10,186通であったのに対して、64ビットのLinux環境で稼働するメールサーバは、最大15,339通、平均11,726通でした。また、32ビットのLinux環境で稼働するメールサーバでは、1分間に平均3.15通のエラーが発生したことから、本性能測定で実施した負荷の場合、64ビットのLinux環境で稼働するメールサーバの方が率良くサービスを提供することができると判断できます。


4.2.2 メールサーバのキューイング

本性能測定では、メールサーバにオープンソースソフトウェアのメール転送エージェント(MTA)であるTurbolinux 11 Serverに収録されているPostfixを使用しました。Postfixは、メールを受信すると、一旦、ディスク領域にキューイングして配送先を確認後に配送します。本性能調査測定では、サーバCのメールクライアントからサーバAに対して送信された全てのメールは、サーバBに配送されます(図 5-1:性能測定方法の概要図性能測定方法の概要図(15ページ)を参照)。本性能測定は、サーバAにキューイングされたメールが、サーバBまで配送される時間についての計測は実施していませんが、これは、実際にメールサーバが運用される場合、サーバAとサーバBの間にはインターネットが介在しネットワーク帯域が一定ではないため、実運用面では参考となる数値にはならないと考え集計していません。本性能測定では、サーバAにキューイングされたメール数を1分間に一度集計しています。

100メールクライアントから1Kバイトの電子メールを1分間に最大6,000通送信した場合、32ビットのLinux環境で稼働するメールサーバは、キューイングされたメールを効率的に配送していることがわかりますが、64ビットのLinux環境で稼働するメールサーバは、本性能測定で実施した負荷の場合に70,000通を超えたところから、メールの配送が遅延しキューにメールが貯まってしまい、キューイング数が増加していることがわかります。このことからも、前項と同様に本性能測定で実施した負荷の場合は、32ビットのLinux環境で稼働するメールサーバの方が効率良くサービスを提供することができると判断できます。

次に実施した、700メールクライアントから1Kバイトの電子メールを1分間に最大20,000通送信した場合、32ビット,64ビットのLinux環境で稼働するメールサーバ共に、キューイング数が減ることはなく、メールクライアントから送信された累計メール数に比例してキューイング数が増加しています。


4.2.3 総括

本性能測定環境においては、100メールクライアントから1Kバイトの電子メールを1分間に最大6,000通送信し、20分間に累計11万通のメールを受信するメールサーバを安定して運用することが可能であることがわかります。また、メールサーバのキューイングに利用するディスク空間を確保することにより、64ビットLinux環境で稼働するメールサーバの場合は、700メールクライアントから1Kバイトの電子メールを1分間に最大15,000通送信し、20分間に累計23万通のメールを受信することが可能であることがわかります。




謝辞

本性能測定を実施するにあたり、多くのご協力をいただきました。ここに、心より感謝の意を表します。性能測定報告書作成には、富士通株式会社 プラットフォーム技術本部ソリューション技術統括部、株式会社PFU カスタマサポート事業部プロフェッショナルサポート部から多大な助言をいただきました。また、性能測定に係わる環境を、富士通株式会社 Platform Solution Centerにご協力いただき構築し、性能測定を実施しました。


fujitsu ロゴ PFU ロゴ