御世話様です。
今、ある新サイト構築をシステム開発会社へ外注しているおります。
で、Webサーバ1台(仮に、「マシンA」とします)、DBサーバ1台(仮に、「マシンB」とします)という構成です。
ですが、ホームページにアクセスしたときの表示速度が異常に悪く、
また、DBサーバの負荷も高く(バックエンドでCSVからDBへの取り込みを定期的(cron)で行っているため)、
「負荷分散」をしているとのことです。
で、「負荷分散」として具体的にやっていることは、
「マシンA」上の必要なファイル郡を「マシンB」にもコピーし、
サイトにアクセスした人によって、ランダムに「マシンA」と「マシンB」へと、
アクセス先を振り分けているとのことです。
ですが、マシンBにあたった人は、前述のようにマシンBの負荷がそもそも高いので、
やはり、ホームページの表示速度が遅くなってしまうとのことです。
「で、マシンをもう1台増設したほうがいいかもしれない」と言っています。
--
自分は、あまりシステム開発(特にネットワーク関連)には詳しくないのですが、
かなり矛盾しているように思われます。気のせいでしょうか?
「ホームページにアクセスしたときの表示速度」が遅いといっても、
SQL文が無駄に長いものになっているため、DBの負荷が高くなっているんじゃないの?とも思うのですが。
正直、システム開発会社の言っていることも、
正確なことを言っていない可能性が高いです。
(でも、諸事情により、システム開発を他の会社に変えるということはできません)
こういった状況の場合、本来は、具体的に、どのように負荷の対策をはかるべきなのでしょうか?
以上、お助け願えれば幸いでございます。
No.3ベストアンサー
- 回答日時:
負荷が重いと分かっているDBサーバーに負荷を移してどうするんでしょう?駄目な会社ですね。
1.そもそもWebサーバーの何が重いのか?
2.DBサーバーの負荷が大きいのは何故か(CSV取り込み=重いではないです。処理が適切なら負荷も下がります)
3.表示速度が遅いのは何が原因か?(Webサーバーは本当に負荷が大きいのか?全部DBサーバーから引っ張ってきていないか?)
下手な対策をするまえに、原因を究明するのが先です。
チューニング、障害対策の基本です。
お礼が大変遅くなりまして申し訳ございません。
以下、インライン返信にて失礼いたします。
>1.そもそもWebサーバーの何が重いのか?
>2.DBサーバーの負荷が大きいのは何故か(CSV取り込み=重いではないです。処理が適切なら負荷も下がります)
>3.表示速度が遅いのは何が原因か?(Webサーバーは本当に負荷が大きいのか?全部DBサーバーから引っ張ってきていないか?)
そうですね、問題点の切り分けをすべきですね。
ただ、これを外注先にいまの時点で言うと、かえってテンパルと思うんですよね・・・。
PMの分際で3日くらいインフルエンザ(ほんとかよっ)で仕事できてなかったらしいですから。
仮にそうだとしても、ドキュメント管理ができていれば、他の人がプロマネをできるはずなんですが・・・。
>下手な対策をするまえに、原因を究明するのが先です。
>チューニング、障害対策の基本です。
了解しました。
ありがとうございました。
No.2
- 回答日時:
文章を読む限り、負荷分散を考慮しすぎて全く違うアプローチをした「典型的な失敗例」のように思えます。
「バックグラウンドでCSVの取り込み」なんて愚の骨頂というか…
普通こういうのは日次バッチでしょう。
データベースの最適化もチープなんでしょうね。きっと。
質問者様側から性能要求書を提示し、開発ベンダには性能評価テストを要求し、要求している性能に満たない場合は支払いしないような契約を結んで、システム再構築を依頼した方が幸せかも知れません。
開発ベンダに任せっきりだと、必要のない出費をする羽目になるのでクライアント側としても勉強して費用以上のシステムを納品してもらうよう努力してください。
お礼が遅くなりまして申し訳ございません。
以下、インライン返信にて失礼いたします。
>「典型的な失敗例
まったくそのとおりです。
>データベースの最適化もチープなんでしょうね。きっと。
こないだ、「DB設計書だせ」といったのですが、論理名(でしたっけ?とにかく日本語)もないし、PKEYやFKEYの情報もないし、備考もほとんど書いてないし、ER図ないし・・・という漢字です。
最適化以前の問題です;;
>質問者様側から性能要求書を提示し、開発ベンダには性能評価テストを要求し、要求している性能に満たない場合は支払いしないような契約を結んで、システム再構築を依頼した方が幸せかも知れません。
そうですね、ただ初期リリースまで日にちがないので、とりいそぎつくるしかない状態です。今後、そうしたいと思います。
(実は、自分がこのプロジェクトにはいったのもつい最近でして。。。)
>開発ベンダに任せっきりだと、必要のない出費をする羽目になるのでクライアント側としても勉強して費用以上のシステムを納品してもらうよう努力してください。
そうですね。もっと勉強します。
ありがとうございました。
No.1
- 回答日時:
そもそもせっかく2台構成にしているのに、そのうち1台をDBとWebサーバ機能を同居させているのがもったいないような気がします。
それに、マシンのスペックはどれくらいですか?最近のマシンであれば、1台でも相当のアクセス量に耐えられるスペックですよ。
また、ご質問では何がボトルネックになっているのかが分かりませんので、マシンを増設しても解決するかわかりません。
また、SQL文が長いのであればチューニングしたり、まずはハードを増設しなくてもできる対策があるはずです。
個人的には、
・まず、マシンAをWebサーバ専用に、マシンBをDBサーバ専用にします。
・可能ならば、「CSVからDBへの取り込み」の時間を深夜等アクセスが少ない時間に変えます。
・次にDBのSQLをチューニングします。
・それでダメなら、レスポンスタイムやCPU使用率、メモリ使用率等を測り、ボトルネックを見つけます。
・ここで、CPUやメモリの増設をします。
・それでもダメならばハード増設
こんな流れはいかがでしょうか?
しかし、その業者もダメですね。ハード増設が必要ならば、その根拠もちゃんと言えという感じですね。
お礼が大変遅くなりまして申し訳ございません。
以下インライン返信にて失礼いたします。
>マシンのスペックはどれくらいですか?
実は、基本的にはうちの会社はサイト制作というよりもサイト運営がおもなので、スペックについては現状こまかく把握していません。
というよりも、外注のコーポレイトサイトを見たのですが、
●当初のさいとこんせぷとはあいまいでもかまいません
●それをもとに、じっくり【ヒヤリング】して、しかるべき環境やシステム開発にとりかかります。
とかいてあるんですね。
なのに、スペックについて教えてといっても放置プレイだし、
そもそもテストリリース直前なのにDB設計やってる・・・
(しかも、「ER図」ってなに?状態・・・)
しかも、DB設計書が複数存在する。バージョン管理をしていない。
・・・ということでだめだめなんです。
損害賠償の可能性もあるでしょうね。
//本当は納期から大幅におくれているんです。
//プロマネのおやじも、プロマネしてなくて、「私もプログラミングしてますから」(<=ぜったいできない)とかいうし・・・。
まいっちゃったな。
>・可能ならば、「CSVからDBへの取り込み」の時間を深夜等アクセスが少ない時間に変えます。
ものすごいデータ量があるので、(cron(or at?))で、
18時間くらいかかったとか・・・。
なので、教えていただいた対策をとるしかないですね。
どうもありがとうございました。
--
対応策につきまして、丁寧にご開設いただきましてありがとうございます。
プロマネの人、XSSも、SQLインジェクションも、ディレクトリトラバーサルも知らないっぽいです。
切りのいいところで、他社に発注する予定をたててます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
同じ独自ドメインを2つのサーバ...
-
”Tortoise SVN” と ”Subversio...
-
DNSサーバを設定したのですがns...
-
「DNSサーバーを自動的に取得す...
-
サーバーというのとメインフレ...
-
プロキシサーバとDNSサーバにつ...
-
WSUSの設定方法・確認方法について
-
ワークグループ設定のPCの名前解決
-
iアプリに使用するサーバについ...
-
古いMacをサーバーに使いたい
-
centos webサーバー IPアドレス
-
Mail Distributorの使い方を教...
-
サーバの動的IPアドレスについて
-
LinuxからWindowsのbatファイル...
-
Permission deniedエラーについて
-
10台ほどの社内ネットワークに...
-
サーバルームの空気を換気したい
-
gitとgiteaの違いについて
-
LINUXのNTPサーバ同期について
-
無線LAN配下のPC同士のFTP
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「DNSサーバーを自動的に取得す...
-
DNSサーバを設定したのですがns...
-
”Tortoise SVN” と ”Subversio...
-
同じ独自ドメインを2つのサーバ...
-
ワークグループ設定のPCの名前解決
-
プロキシサーバとDNSサーバにつ...
-
サーバーというのとメインフレ...
-
LinuxからWindowsのbatファイル...
-
複数IPアドレスによるサーバ運...
-
マネージャ・エージェントモデ...
-
pingは通るけどサーバに繋がら...
-
サーバルームの空気を換気したい
-
社内でプロキシサーバ(Squid)の...
-
gitとgiteaの違いについて
-
別サーバに構築したApache+Tomc...
-
Linux の NTPクライアント設定...
-
FTPサーバの構成について
-
nslookup IPアドレスの数
-
WSUSサーバの移行について
-
pingでポートの指定
おすすめ情報