西村2004.06.21コピーしましたPR「『大量のアクセスを受け付けるWebシステムをTomcatで構築するのは無理』とよく言われる。工夫を凝らせば、高負荷に耐えられる」。システム本部の堀内敏明本部長はこう言い切る。GMOメディアアンドソリューションズは、インターネットの個人ユーザーを対象にしたメールを使った広告事業を手がけている。GMOメディアアンドソリューションズは今年3月末、広告付きメールを配信するサービス「ふくびき.com」用のWebシステムをJavaで刷新。「3月末に稼働して以来、システムのトラブルは起きていない。Tomcatでも高負荷をかけられる安定なシステムを開発できることを示せた」と、システム開発に携わった同社システム本部研究開発部の佐藤真人部長は語る。GMOメディアアンドソリューションズが開発したふくびき.comのシステムは、120万人が利用でき1秒間に最大600件を受け付ける処理能力を備える。佐藤部長をはじめとする開発担当者はメモリーの有効活用がカギを握ると考えた。そのため「メモリーをいかに使いこなすかにこだわって、とことん改善を加えていった」(佐藤部長)。メモリーを有効に活用するために、GMOメディアアンドソリューションズが講じた策の一つが「一つのサーバーにTomcatを二つ起動させる」こと。通常は一つのサーバーにTomcatを一つ起動させる。同社があえてTomcatを二つ起動させた理由は二つある。一つは、片方のTomcatが動かなくなってもパフォーマンスに影響を及ぼさないようにすること。VM」のメモリー管理機能によって生じる問題を避けるためだ。VMの機能「ガーベジ・コレクション」が、勝手に働いてしまうことだ。GMOメディアアンドソリューションズが今回そろえたサーバーでは、1.6GBのメモリー領域がガーベジ・コレクションの対象になる。1.6GBのメモリー領域全部を対象にガーベジ・コレクションが働いてしまうと、メモリーの開放作業を終えるのに、最大10秒程度かかるおそれがあった。なれば、この間、Tomcatは外部からの処理を受け付けなくなってしまう。この問題は、一つのサーバーにTomcatを二つ起動することで軽減する。一つのサーバーでTomcatを二つ起動して、二つのTomcatが1.6GBのメモリーを800MBずつに分け合って処理する設定にする。メモリー領域も最大800MBと半減するので、一気に1.6GBを処理する場合に比べてガーベジ・コレクションにかかる時間を短縮できる。VMは日本BEAシステムズのJRockit。当社で試した結果、JRockitを使った場合、この方法が安定性とパフォーマンスを確保するのに有効だった」(佐藤部長)。メモリーの設定はTomcatの起動オプションで設定した。Linuxの設定も変更した。処理を多く受け付けられるように、プログラムを最大いくつ並行して処理できるかを決めるスレッド数を、標準設定の4倍にあたる4096にした。多くのスレッドを生成できるように、スタック・サイズを小さくした。標準設定の4分の1である256KBにした。佐藤部長は、「今回のプロジェクトでノウハウを蓄積すれば、他のシステムにも適用できる。考えて、気合を入れてプロジェクトに臨んだ。課題を解決していくのはエンジニアとしてとても楽しかった」と振り返る。同社は、20サイトほどのシステムを稼働させている。「今回、ふくびき.com用のシステム開発で、Tomcatなどを使いこなすためのノウハウを蓄積できた。今後は他のサービスのシステムにも生かしていきたい」と、堀内本部長は語る。各種ブロックチェーン事業に携わった経験を整理し、適切なブロックチェーン事業の企画について、実践的...システム再構築の要件定義テクニック課題解決に役立つ機能を分析し、新システムに継承すべき機能を絞り込み、不要な機能は削除す―。新シス...シニア・ベテラン社員マネジメント講座シニア社員のモチベーションを高め、活躍を後押しできるマネジャーになるための講座です。情報銀行の成り立ち、事例、現状課題やその行方を網羅。経営戦略である以上、「会計」の知識やスキルが欠かせません。