2016-05-23こんにちは、開発本部の大西です。外部に公開できるAccelPlatformの導入事例がないので、皆さんお困りだと思いますので、参考になるかはわかりませんが、弊社の社内システムで利用している環境についてご紹介させていただきます。※IT統制等の理由から、2システム併用という形になっています。いうような機能や業務で利用しています。(※販売管理や営業システムなどはこれとは別で存在しています。)サーバはAmazonEC2の東京リージョンのエクストララージで、これまで利用していたiWPv7.2上の社内システムと同居しています。同時アクセスが100〜150程度ですので、コストと運用面から考えて、現状、IM、DB含め、すべてのソフトが、この1つのサーバで完結しています。バックエンドな部分から説明すると、データベースも共同で、Oracle11gを利用しています。すべきなのですが、もともとJA16SJISTITLDEというSJISの文字コードのデータベースをそのまま流用しているので、iAP自体に中国語が入っているんですが、DBの文字コードがSJISなので、文字化けで入ってしまっていてまともに使えない状態です。将来的には、iAPだけ切り出して、別DBにしないとダメだなぁ〜と感じています。1.1.4を使っています。Cassandraは、通常、データをメモリ上に保持していて、自動でDiskに書き込むという動きをしますが、過去、3回ほど、Diskにデータが書きだされてなくて、IMBoxデータがぶっ飛ぶという地獄に叩き落される恐怖体験をしているので、今は、15分毎に強制的にDiskに書き出すflashという処理をcronで動かしています。iAP自体は、普通にインストールしてるので、あんまり語ることはないですが、Javaのパラメータは、こんな感じです。-XX:MaxTenuringThreshold=32-Djava.io.tmpdir=/xxx/resin/tmpは、普通であれば、不要ですが、この環境OS自体のディスクの空き容量がかなり厳しく(使用率90%以上)、また、iAPからファイルアップロードされるとJavaがtemp領域に一時的にファイルを作成しながら処理するようになっています。そのため、数百Mのファイルを何個もあげられるとディスク領域がすぐに無くなってしまうので、このパラメータで、ディスクに多少余裕のあるESB領域の場所にtmp領域を明示的に指定してそこを使うようにしています。フロント部分のWebサーバ、Apacheの部分に関してですが、普通、Apacheを前に立てた場合、mod_cauchoを使うのが定石ですが、iAPの場合、mod_cauchoを利用するとIMBoxで利用しているCometという通信ができません。そのため、新着メッセージの表示が表示されません。参考:mod_caucho-モジュールを利用した場合、common_imbox-の新着メッセージの表示が表示されません。この環境は、v7.2も同居している環境で、こちらの方がResin3.1のmod_cauchoを利用しているので、iAP接続には、mod_proxyでのリバースプロキシで、iAPが稼働している、Resinに接続しています。これだと、静的コンテンツの取得も全部、Resinに行ってしまって、Apacheの役目は、SSLしかなくなってしまい、Apacheを立てている意味がなくなりますので、IM-Jugglingで静的コンテンツを別に出力して、Apacheのコンテンツ配下に格納し、mod_rewriteで振り分けて、静的コンテンツは、そちらを見に行くようにしています。設定は、こんな感じです。http://127.0.0.1:8080/accel/巷では、リバースプロキシや静的コンテンツの配信であれば、nginxが速いといわれていて、少し試しましたが、それほど効果がなく、設定がミスっていたのか、IMBoxの各ユーザのアイコンが出なくなってしまったので、深追いはやめました。Module)を標準のpreforkからworkerに変更しました。CentOSの場合、変更は非常に簡単で、/etc/sysconfig/httpdで、通常にコメントアウトされているHTTPD=/usr/sbin/httpd.workerのコメントを外すだけです。この環境のようにIM専用だとこれだけでも、若干体感できる程度のそこそこの速度向上がありました。同じApacheでPHPを使っているような環境ではできないよう模様です。次にやったのは、一部で流行しているSPDYの導入です。2.0になるんではないかといわれているものです。サポートしているブラウザが、ChromeとFirefox、Opera程度で、また、実運用で利用されているのは、Googleの各サービスとtwitterとfacebookのごく一部程度です。Apacheの場合、mod_spdyというものがGoogleから提供されていて、最近のLinuxだと通常はyumコマンド一発で導入できますが、この環境のOSが、CentOS5.4と古いため、CentOS5.4で提供されているApacheやglibc自体が古く入りません。Apacheやglibcをなんとか対応しているものに更新して、インストール時に必要なPythonも2.7にVerUpしてから必要ソースを取得して、コンパイルしました。Try&Errorでやってほぼ半日ほどかかってかなり大変でした。ChromeでSPDY通信が有効になっているか確認する場合は、「chrome://net-internals/#spdy」にアクセスするか、以下のエクステンションを使うのが楽です。indicator(SPDYの時は、URLのわきに緑色の稲妻のようなマークが出ます。DDOMContentLoaded:429ms)あれ?そんなに速くない・・・。indicatorの拡張入れると緑色に輝くので、そのままにしておこう・・・。いうような内容で動いています。ちなみに、他の事例の参考になると思うので、数値的なものを書いておくと、同時負荷は、平日午前中は、常に100〜150ユーザが接続しています。100000;count-------300つまり、利用開始から5ヶ月ほど、ユーザ数:300人で、グループ数:のべ162個、のべメッセージ数;42915です。現状Cassandraでのディスクの使用量は、約300Mぐらいです。(※添付ファイルは除く)とまあ、こんな感じで動いています。コメントをキャンセルメールアドレスが公開されることはありません。