• 締切済み

サーバー・サイジング・負荷分散について。

曖昧な質問で申し訳ないんですが、、 webシステムのサイジングってどうやればよいんですかね? 推奨サーバ構成は・・・?とクライアントに聞かれて困っています。 広告配信システムで、 同時アクセス  300/秒 ←この数字が未知の世界なんです。 ほどは見込んでいます。 かなり重いです。サーバ運営に関しては素人なので、 困っています。最適なサーバ構成案ってどう作ればいいんでしょうか? バナー配信、アクセスカウントが特に重いので、そこだけ切り離して、 web/app(php)サーバ【バナー配信用】×n web/app(php)サーバ【ユーザ転送・統計処理用】 databaseサーバ の構成かな、、、とか思うんですが、いかがでしょうか? 広告配信鯖は特に強い鯖を用意する必要があると思うのですが、 どの程度のマシンが最適でしょうか? また、どのように見積もればよいでしょうか? また複数台に負荷分散した場合、その管理はどの程度 複雑なものになるのでしょうか? 一応テスト環境 (AMD Sempron2600 cpu 1.8G) にて、模擬プログラム(画像配信)をテストしたら、ロードアベレージ4ほどでした。 この手の問題は初めてですので、困っています。 是非是非、よろしくお願い致します。

みんなの回答

noname#17587
noname#17587
回答No.4

酔いどれで書いているので乱文ご容赦 質問いただいたレベルから教えて欲しいのならコンサルに頼むべきでないでしょうか。2、300万の仕事量です。 で、言いたい事は、調査しろ・推測しろ・仮定しろですかね 調査しろ: 調査できる事はいくらでもあるでしょう。プロトタイプがあるなら、10倍の負荷をかけたら、CPU負荷100%まではどれくらいの負荷、擬似プログラム以外にその他に重い処理は無いのか?顧客の予算は、性能不足の際の増強までの時間は(1日or1ヶ月) 推測しろ: 顧客の言う事はどこまで本当か?同時アクセス300/秒は本当か?プロジェクトに用意できる人員は? 仮定しろ: いくら調べてもわからないことは仮定する。思い切りが必要。時には上司の決断も。 当然、なるべく多くの事柄を調査できるにこしたことがありません。 記述を見てみると当然調査する事柄すらおろそかにしている気がします。不確定事項を潰す事がサーバサイジングには重要になります。 で、ネットで気になった書籍をリンクします(目次がよさそうだなと思っただけですが)

参考URL:
http://www.ebookbank.jp/murauchi/ep/item/1-8177/
  • galluda
  • ベストアンサー率35% (440/1242)
回答No.3

がるです。この手の書籍は…正直、あんまり見たことないですねぇ(苦笑 時々技術系の雑誌に載っている話とか、あとは経験とか口伝とかで(笑)覚えてしまったので。 ただ、#2さんのお礼に書いてあります内容ですが。 基本的には ・1台あたりの許容アクセス数 ってのは、計算でもある程度出ますし、もうちょっと雑に考えるにしても、定期的に(初手は1~2時間に1回くらいのペースで)vmstatとかでCPUとメモリのチェックをすると、大まかに見えてくるものです。 それこそ、テスト環境で一度構築してみてもいいでしょうし。 そうすれば、後は単純な未来予測だけなので、 ・1台あたりこれくらい捌けて、現在これくらいの上昇率なので、8割ライン超えるこの辺くらいまでには台数増やしませんか? などと交渉が可能かと思います。 …まぁ、本当にしゃれにならない圧のシステムですと、NICとか回線速度とか、設計によっては同期パケットがコリジョン起こしまくるとか、予想外のボトルネックが発生するのですが(「台数増やしてもどうにもならない」レベルの上限値がだいたいこのあたりで決まりやすいです)。 多分そこまではいかないと思うので、上述のような感じである程度は見積もれるかとは思います。

noname#17587
noname#17587
回答No.2

サーバサイジングは経験も大事ですが最後は思い切りですからね ある程度負荷をきめうちで計算する事が多いです 広告配信がどのような仕組み動かすのかわからないのでそこに助言する事はできないのですが 高速な負荷分散装置を用意して、負荷に応じてWEBサーバを追加していくのはいかがでしょうか? ブレードサーバと負荷分散装置の一体型の製品もあるので(DELLとかHPにあったはず)検討してみてはいかがでしょう? 私も今度検証機を借りてみるつもりです

taketake77
質問者

お礼

うーん、負荷を決め打ちしたとして、 そこから必要となるサーバ構成を導くロジック ってどういうのでしょうかね? 駄目になったら、増やすにしても、 いつ、どの時点で、何台増やすのか、 クライアントに説明しなければいけないですからね。 なんらか、そういうロジックが欲しいのですが・・・、

taketake77
質問者

補足

さっそくのお返事誠にありがとうございます。

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.1

がると申します。 えっと…大変に失礼ながら。素人さんにどうこう出来るレベルの内容では到底ないように思えてしかたがないのですが(苦笑 とりあえず基本的なところを簡単に。 > 同時アクセス  300/秒 とありますので、ある瞬間に、同時に300アクセスが発生することが最低限確定しているのだと思われます。 これが「純粋な平均値」なのか「とりあえずここまでいければいいや」なのかによってもまた随分と違うのですが。 で、当然ながら、1アクセスが1秒未満で処理できないのであれば、同時アクセス数は当然ながら増えます。 んで。広告配信システムの場合「どんな広告を配信するか」など色々とありますので。構成については一概にはなんとも。 「パワフルなマシンを1台」はまぁ楽ですが、物理的に壊れたらそれまでですし、制限値も低いです。 ロードバランサを使うのも手ですが、設計を間違えるとあちこちにボトルネックが発生しますし、逆に「性能が伸びない」とか「ものすごい値段になってしまう」などの可能性も多々。 もちろん「うまく設計」すれば「ボトルネックがどこにもない」構成も可能ではありますが(そういう設計したことありますし)。 正直なところ。きちんとした技術をもつ会社さんに依頼をしたほうがよいと思います。

taketake77
質問者

お礼

さっそくのご回答ありがとうございます。 大変参考になりました。 現状、広告の原稿とリンクを貼り付けてもらい、クリック報酬・成果報酬を管理する、というアフェリエイトシステムがありまして、そのシステムをバナー対応・アクセス計測対応する、という開発案件の見積もりを行っております。 同時アクセス数 300/秒 というのは、クリック率を1%とした場合、現状のシステムの 要件(最大)クリック数を単純に100倍した数字です。 3クリック(秒)広告によってユーザーが導入される →媒体に300アクセス→バナー配信300回。 と計算しました。 >正直なところ。きちんとした技術をもつ会社さんに依頼をしたほうがよいと思います。 いろいろリサーチしてみたところ、現在の自分にはやはり重い仕事かな 、と感じてはいます・・・が。やはり難しいでしょうか・・・。

taketake77
質問者

補足

今回の案件は厳しいとして、 なんらか、このようなテーマを勉強するに あたり、お勧めの書籍等ありませんでしょうか? 今後のスキルUPのためにも、是非この機に習得してしまいたいので。

関連するQ&A

  • サーバーの負荷テストをしたい

    自宅で、WEBサーバーとDBサーバーを立ち上げています。 サーバーには、PHPやPerlで書かれたWEBアプリが入っています。 最近、アクセスが増えて300人位のユーザーが一斉にアクセスすると、レスポンスが遅くなるようになりました。落ちたこともあります。 このサーバーはこのプログラムで、どの程度の負荷にまで耐えられるのか、また余裕をもって動かすならどの程度の増強(サーバーの追加など)をしたらいいのか、わからないので負荷テストをしてみたいと思いました。 負荷テストの経験は全くありません。 一通り、ネットや本屋も見たのですが、よくわかりませんでした。 また、OSは、Cent OS3、WEBサーバーはApache2.2、DBはMySQLおよびPostgreSQLを使っています。 サーバーの負荷テストの方法について、教えていただけないでしょうか? よく解説しているサイトなどでも助かります。

  • メールサーバーの負荷分散方法を教えてください。

    自分はメールサーバーのことをよく知らないで質問します。 Perl(またはPHP)によって書かれたメール配信スクリプトによって、お客さん(仮に1万人)にメールを送ろうと思ったら数分ぐらいかかると書かれていました。 サーバーの性能によっても違うとは思いますが、 どうすればメール配信速度が上がるのでしょうか? メールサーバーの数を増やすことによって、 速度が上がったりしますか。 メールサーバーを、ウェブサーバーのようにmod_proxy等を使用して負荷分散することはできますか。もし可能であれば、その方法を簡単に教えてください。また、詳しいサイトがあればぜひ教えてください。 あと、もし負荷分散をしているとして、例えば大手メルマガサイトのまぐまぐやその他大手サイトのメールサーバーは何台ぐらい並列に動かしているものなのでしょうか。なにか参考になる情報があれば教えてください。

    • ベストアンサー
    • Perl
  • サーバーの負荷について

    webサービスを構築しようと思っていますが、専用レンタルサーバー(CPU6core)、メモリー24ギガですと,大体どれぐらいの同時アクセスに耐えられるのでしょうか? php,mysqlでテーブルは1000個ぐらいあります。 アクセスが多い場合、コストが予測できず、割に合わない気がしますが,アマゾンウェブサービスの方がいいのでしょうか? 教えてください,よろしく願いいたします。

  • 過負荷テストはどのようにしていますか?

    始めまして。私、WEBでの開発をしています。開発内容は某会社の業務日報を WEBにおこして、その入力された内容をデータベースに登録するシステムです。 言語はJAVAで、DBサーバーはUNIXにオラクルが乗っています。WEBサーバーは WIN2000サーバーでweblogic6.1が乗ります。WEBサーバーからDBサーバーへ コネクションを張っていてクライアントはサーバー経由でデータを引っ張ってきます。(簡単な説明で申し訳ございません。あまり公開できないものでして...。) さて、 同時にアクセスしたときの過負荷テストを検討中です。現在の環境では 少人数でのアクセスしかテストできないので大人数(240人くらい) がアクセスしたときの動作を検証するのは難しい状況です。大人数が同時に アクセスした場合での擬似的なテスト手法を知っている方は教えてはいただけないでしょうか?別に過負荷テストを行うためのツールのご紹介でもかまいません。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • Webサーバとアプリサーバの違い

    Webシステム(サーバ-クライアントモデルではないほう)の 三階層モデルについて教えてください。 このモデルではWebサーバ、アプリサーバ、DBサーバの三階層構成をとられていますが PHP、perlといった動的言語の処理はWebサーバ、アプリサーバどちらで 行われるのでしょうか? はじめ、私はアプリサーバ側かと思っていたのですが、こっちは「Javaプラットフォームを 動かすためのサーバ」と書かれているソースが多く、PHP、Perlについては Webサーバ側と書かれてたりアプリサーバ側と書かれてたりしていて判断に悩んでいます。 単純に「動的な処理を行う」という基準で考えればPHP、Perlの処理はアプリサーバ側だと 思うのですが、いかがでしょうか ご回答よろしくお願いします。

    • 締切済み
    • PHP
  • サーバー負荷テストはどのようにしていますか?

    サーバー負荷テストはどのようにしていますか? 始めまして。私は現在、WEBでの開発をしております。開発内容はモバゲー向けのソーシャルアプリとして提供する某会社のキャラクターが日本全国を自由に旅行できるGPS連動ゲームです。 現在テスト環境に実装はできていて、ニフティクラウドに負荷テスト用のサーバ(ロードバランサ(AP:mod_dosdetector,ipvsadm,keepalived,httpd)×1+APサーバ×2(Apache:httpd)+ロードバランサ(DB:ipvsadm,keepalived)×1+DBサーバ(マスタ:mysql)×1+DBサーバ(スレーブ:mysql)×2の7台構成です。 更新処理ではDB(マスタ)、参照処理はAPサーバからロードバランサ(DB)を介して、DB(ステーブ)を見ています。 この環境でサーバーの負荷テストをしたいと思っているのですが、まったくノウハウがありません。 サーバーの事についてあまり知識がなく、これからどのようにしたらできるのかまったくわからない状態です。 説明不足で申し訳ないですが、サーバー負荷テストの方法について、ご教授頂けないでしょうか? 何卒、宜しくお願い致します。

  • HTML5に対応の無料広告配信サーバはありますか?

    私、あるサイトを運営し、ページ内に バナーなどの広告を配信しています。 広告クリエイティブを作って、広告主様の広告なども 配信しているのですが、 最近、以下のようにクロームがフラッシュ広告を関知すると、 バナー上にクリックボタンをつけるという嫌がらせをはじめるとのこと。 http://web-tan.forum.impressrd.jp/e/2015/07/14/20401 再生ボタンが表示されてクリックしない限り アニメーションが表示されないようになるそうです。 gifとjpgのクリエイティブを配信すればいいのでしょうが、 私のサイトにFLASHのようにリッチなクリエイティブで 表示したいというニーズも多いので、HTML5で作った原稿を 入稿いただいて配信できるようにしたいのですが、 現在、DFPを使っているのですが、DFPには HTML5の原稿はアップロードできず、第三者配信と なります。 第三者配信ではなく、あくまでも私に直接HTML5の クリエイティブが入稿されたものを、 私のサイトに表示できるようにしたいのです。 有料の広告サーバーでHTML5対応のものはありますが、 今、無料を使っているので、できれば無料のもので いいものはありませんでしょうか。 DCM(DoubleClick Campaign Manager)というのがあるようなのですが、 相変わらず、Googleのヘルプは、ヘルプではないので、 入会?方法などわかりません。 上記のDCMの入会方法と費用がかかるのか? 上記DCM以外で、無料の広告配信サーバーがあるのか? この2点につきまして、ご教示いただければ幸いです。

  • Win2000Serverでのエラーについて

    今朝サーバーにエラーが出ていました(>_< 「16ビット MS-DOSサブシステム」と言うタイトルで 「C:\WINTN\system32\cmd.exe NTVDM CPUは不正な命令を検出しました。 CS2e4e IP:01ce OP:63 68 6f 20 65 アプリケーションを終了するには、[閉じる]を選んでください。」 とありましたが、何をどう対応していいのか分りません。どなたかご指導下さい。 環境はHPのサーバーマシンで「Windows2000Server」に「MSDE」を載せて、「Access2000」をアップサイジングしてDBを作成してWebサーバーにしております。 またこの様な時、調べるのに有効なサイトなどありましたらご紹介頂けましたら助かります。 宜しくお願いいたします。  

  • WEBサーバーとメールサーバーの連動について

    WEBサーバーとメールサーバーの連動がよくわからないのですが、Linux、PHP、MySQLのWEBサーバー、DBサーバー、メールサーバーで構成されているサーバーでPHPからメールを送信したりといったメールサーバーとWEBサーバーが連動したサイトを作るにはapacheのファイルやPHPの初期設定ファイルにメールサーバーIPアドレスの設定をする必要がありますか。

  • 負荷分散におけるセッションIDの共有

    Webサーバ(apache1.3系)を冗長構成にしている場合、 PHPのセッションIDを使用してのセッションIDの共有は、どのような方法がありますでしょうか? (どっちに振り分けられても、セッションが切れない方法です。) ※DBを使用する方法以外でお願いします。また、モバイルにも対応したいので、Cookieに格納しない方法以外でもお願いします。 参考URL等がありましたら、教えていただけたらとおもいます。 (Java+Tomcatをには、セッションのレプリケーションの機能があることはわかりました。) ロードバランサーの設定にそのような機能がありましたら、教えていただきたいです。

    • 締切済み
    • PHP