MTA (MessageTransferAgent)で誰にも真似できない独自技術を習得

  1. ホーム
  2. >
  3. 技術レポート
  4. >
  5. MTA (MessageTransferAgent)

技術レポート

「TripletaiL」開発フレームワーク

「TripletaiL」開発フレームワーク
ユミルリンク10年の歴史と共に

Erlang性能分析ツール

Erlang性能分析ツール
高い要求が生み出した性能分析ツール

高速クロス集計インデックス

高速クロス集計インデックス
求められたハードルは100万規模

MTA(MessageTransferAgent)

MTA
(MessageTransferAgent)
大量メール配信の高速化に挑む

SMTP/DNSシミュレーションツール

SMTP/DNSシミュレーションツール
配信性能の鍵はここにある

「TC + WAL」ストレージエンジン

「TC + WAL」ストレージエンジン
ハイパフォーマンスを極めろ

最新情報をお届けします ユミマガ

MTA (MessageTransferAgent) 大量メール配信の高速化に挑む

MTA (MessageTransferAgent)

大規模の宛先に向けて大量のメール配信を行うためのエンジン

PERSONALITY

メール配信システムのコアとなる基本設計・開発を任されている。

ただ速く送るだけではダメ
メール配信を速く行おうとすると、CPUやディスクI/Oによって性能の限界が生じてきました。そこで、低負荷で配信を行うため、ソフトウェアを工夫し高速配信を実現してきました。
しかし、徐々にインターネット上のメールが増え始め、スパムメールが大量に流通する時代になり、メールを受信する側もスパムメールに対する対策を行うようになってきました。ただ単に速く送ろうとしても、相手側から見たら、「負荷をかける迷惑な送信元」に見られてしまいます。例えば、大量にSMTP接続を張ればベンチマークでは高速に送ることができますが、実際に行ったら相手側から迷惑サーバと判断され通信を切断されてしまいます。そこで、相手が許容できる範囲で、なるべく短時間にメールを送信することが必要になりました。
細やかな調整が要

相手サーバ側がどの程度なら良いと見なすのか、どういう送信だと迷惑と思われてしまうのか、その閾値は送信側には分かりません。少しずつ同時接続数などのパラメータを変えて様子を見たり、規模の違う様々な配信のTCP通信のパケットデータを分析することで、送信速度と相手側への負荷のバランスが取れたポイントを探し出しました。
また、メールを受信する側がどのようなポイントで判断をするのかも、それぞれ違います。同時にどのくらいの接続をするかといった基本的なことだけではなく、エラーの発生率、一定時間での送信ボリュームなど、様々な要素が影響してきます。
メール配信MTAは何度か作り直していますが、そのたびに制御できることを増やしています。受信側から見たいろいろな視点で、ちょうど良い範囲に送信量をコントロールできるように作成しました。あわせて、ドメインごとにちょうど良いパラメータを求める作業も日々行っています。

大量の配信データを元に日々分析
安定した配信のためには、たくさんのデータから送信方法を見つけ出していく必要があります。大量の配信データを元に、それらの統計データを一元管理して、日々のパラメータの変動を簡単に調べることができるようにしています。いつの配信で、どのドメインのエラー率がどうだったか、配信パラメータの違いによる影響がないか、など、OLAPサーバを使って多数の軸から分析できるようにしています。
この方法で全体的な変化を把握し、個別に解析が必要と判断したときには、配信エンジンの詳細なログを分析したり、TCPの通信パケットを直接解析し、パラメータを調整しています。
「ユミルリンクのシステムなら安心」と言われ続けたい
メールの利用者は増え、新しいウェブメールサービスも増えています。これからも、安定して配信いただける環境を提供し続けたいと思っています。特に利用者が多いドメインに関しては、随時パラメータを調整していく必要があります。
メール配信システムを利用するお客様に、このような裏での調整作業を意識させたくはありません。「ユミルリンクの配信システムならいつでもスムーズに配信できる」と、安心して言っていただけるようなご評価を維持していきたいです。