技術のご紹介

このブログを購読する

IT開発センターBlog

メール配信システムの高速化

メール配信システムの高速化

こんにちは、粟野です。

インクレイブでは、自社ASPサービスであるモバインや、仙台市メール配信サービスその他の受託案件等で、メールの配信システムに携わる機会を多く頂いております。

そういった中で気になった点や注意すべき点を何点かご紹介させて頂きたいと思います。(当たり前のことや、もう既にご存知の事も多いかと思いますが・・・)

※ システムの設計や構成によっては、参考にならない場合もありますので、ご了承の上御覧ください。

・高速なCPUとHDD、十分な量のメモリを積んだサーバを用意する。
大量のメールを処理するには、十分なメモリとそれを処理するCPUが重要です。できるだけHDDへのアクセスは無い方が好ましいのですが、必ず何度かアクセスは発生しますので、高速なSASである事が好ましいです。

・DNSの正引き、逆引き設定を正しく行う。
配信を行う場合に、意外と時間的コストになってしまいますので、ローカルにDNSのキャッシュサーバを構築する事も効果的です。また、配信側ドメインも、正しくDNS設定が行われている事が大切です。

・RDBMに適切なINDEXとキャッシュを設定する。
MySQLの場合は「key_buffer」「table_cache」等の値を適切に設定する事で、データ抽出のパフォーマンスが上がります。また、主キーやINDEXを適切に設定することも重要です。

・システムに十分なメモリの割り当てを行う。
PHPを使ったシステムの場合は、「memory_limit」の値を適切に設定する事でメモリの展開可能なデータ量が決まりますので、メモリに一時的に展開するデータ量から、数値を決め設定します。

・配信処理はniceで優先順位を上げて行う。
プログラムから配信をする場合、「nice」コマンド等でプログラムの優先順位を上げる事で、他の処理に邪魔されずに処理を行うことが出来ます。

・メール本文をメモリ上で展開する。
メール本文等、配信時に使いまわされる部分をHDDから都度読み込ませず、アクセスの速いメモリに展開し処理することで高速に処理が可能になります。また、配信先のメールアドレスをメモリに展開する事も効果的です。

携帯電話への送信の場合は、送ることのできる件数に上限がありますので、詳しくは各キャリアのWEBサイトを御覧ください。

docomo / au / SoftBank

こういったノウハウの積み重ねにより、モバインをはじめとするインクレイブのメール配信システムではPCはもちろん、携帯電話に対しても時間あたり数十万件の配信を可能にしています。

PAGE TOP

インクレイブのメール配信技術について

みなさんこんにちは、丸山です。

今日からdocomoでspモードサービスが開始されましたね。インクレイブでも何名かXPERIA所有者がいるので、申し込んでいるみたいです。

さて、そのiモードメールが公的に使えるようになることに便乗して(?)、今日はインクレイブのメール配信技術についてご紹介したいと思います。

インクレイブでは今年の5月に仙台市さまへメール配信システムを提供しましたが、その他にも自社製品の携帯販促ASP「モバイン」では携帯電話に特化した独自のメール配信技術を、モバイン以外でもPC・モバイルのプラットフォームを問わないメール配信技術を全国のお客様へご提供しております。

こういったメール配信の場合、
・どのくらいの会員さまへメールを配信するのか(配信規模)
・時間あたりどのくらいの速度でメール配信できるのか(配信速度)
といった評価項目が挙げられます。

配信規模について自社のデータを調べてみたら、なんと提供しているシステムが動いているサービス全体で、数百万規模の会員さまが対象となっていることがわかりました(!)

システムをご利用いただいているお客様、メールを受信されている方など、こんなに多くの方に情報をお届けしているシステムですが、今後もより一層お役に立てるよう、技術を磨いていきたいと考えております。

これらのメール配信に関する技術詳細は、またの機会にこのブログからもご紹介させていただきますので、お楽しみに。

PAGE TOP

Postfix + MySQLによるメールサーバ構築

Postfix + MySQLによるメールサーバ構築

こんにちは、粟野です。

インクレイブで構築するシステムによく使われるオープンソースの一つとして、PostfixというMTA(メールサーバソフトウェア)があります。

ご存じの方も多いと思いますが、このPostfixは導入も簡単で動作も高速、しかも、その気になれば複雑な設定もできてしまうという大変優れたMTAです。

インクレイブでは、他のオープンソースと連動させるために、Postfixインストールの際「MySQLのオプション」を有効にすることがよくありますので、今回はrpmパッケージからの導入を行わず、MySQLオプションを有効にしたrpmパッケージを作成・導入する方法をご紹介したいと思います。

ご利用予定のバージョンによって多少方法が異なる事もありますので、今回は、ちょっと古いバージョンとはなりますが弊社で成功した際の手順のご紹介となります。(CentOS 5 + postfix-2.3.3-2.1)

なお、この手順は新規インストールの場合の手順となりますので、既に運用中の場合、ご利用のバージョンが異なる場合などは、自己責任の上参考にしていただければと思います。また、ご利用バージョンに合わせた 「src.rpm」ファイルのご利用をお願いします。

■ 「src.rpm」を取得します
# cd ~
# wget http://ftp.riken.jp/Linux/centos/5/os/SRPMS/postfix-2.3.3-2.1.el5_2.src.rpm
# rpm -ivh postfix-2.3.3-2.1.el5_2.src.rpm
# cd /usr/src/redhat/SOURCES
■ 「spec」ファイルを編集します
# vi postfix.spec
----
%define MYSQL 1
----
■ rpmパッケージを作成します
# rpmbuild -ba postfix.spec

※rpm-buildが入っていない場合は関連するソフトウェアを含めてyumでいれておきます
# yum install rpm-build gcc db4-devel pkgconfig openldap-devel cyrus-sasl-devel pcre-devel
■ インストールします
# cd /usr/src/redhat/RPMS/i386
# rpm -ivh postfix-2.3.3-2.1.i386.rpm

これでインストールは完了です。

これにより、PostfixMySQLが連動できるようになりましたので「postfixadmin」や「phpMyAdmin」等と連動して管理を行うことができるようになります。

こういった積み重ねにより、モバインでは時間あたり数十万件の高速メール配信を実現しています。

PAGE TOP