質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

ロードバランサー

ロードバランサー【負荷分散装置】は、複数のサーバへアクセス要求を分散する装置です。 要求を分散することで各サーバが快適な応答速度を保つことを目的としており、 アクセスの多い大規模サイト等は、この装置により 複数のサーバに負荷を分散する事で安定な運用が可能です。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

解決済

5回答

8522閲覧

一時的な大量アクセスによるサイトが重くなるのをなんとかする方法。

HandA-P

総合スコア28

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

ロードバランサー

ロードバランサー【負荷分散装置】は、複数のサーバへアクセス要求を分散する装置です。 要求を分散することで各サーバが快適な応答速度を保つことを目的としており、 アクセスの多い大規模サイト等は、この装置により 複数のサーバに負荷を分散する事で安定な運用が可能です。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

11クリップ

投稿2015/02/02 15:45

現在クラウドサーバにてECサイトを運営してます。
一時的な大量アクセスにより、サイトが重くなり、たまに繋がらなくなります。
サーバの構成は、それぞれ
WEBサーバ
DBサーバ
上記のように分けて構成してます。

クラウドサーバなので、スペック自体は、容易にあげられるのですが、試しにMAXのプランで稼働させた際、CPUもメモリも余裕があるのに、ネットワーク転送だけが90%超えになってしまいます。
ロードバランサーやRDMは使用していないのですが、やはりロードバランサーなど利用したほうがいいのでしょうか?
WEBサーバのみにロードバランサーを利用して、DBサーバ自体は、サーバのスペックのみでも問題ないのでしょうか?

初歩的な質問ですいませんがよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

ベストアンサー

まず、高負荷時に何がボトルネックになっているかを調査されると良いかと思います。

・Webサーバがネック
⇒ECサイトとのことですので、何らかのプログラムが走っていると思いますが、
高負荷時に特定の処理がネックになっている可能性もあります。
⇒コネクション数など設定も確認してください。
・DBがネック
⇒スロークエリーなどが発生していないかチェックしてください。
適切なインデックスが張られているか、キャッシュなどを行いSQLの発行数を
少なくすることは可能か、ディスクi/Oは……、チューニングは行われているか……など
様々なポイントが考えられます。

ここまでを確認して、ソフト側ではなくサーバ構成やスペックの変更が必要であると結論づいた段階で次のステップに進まれるのが良いかと思います。ただ静的なファイルの転送がネックであれば、CDNの利用を検討するのは良いかと思います。AWSであればCloudFrontなど。

投稿2015/02/02 19:45

munyaX

総合スコア783

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

年商100億超のECサイトを運用しています。

商品情報や在庫情報をDBからリアルタイムに取得している場合、
DBアクセスが増えすぎてそれが原因で遅くなります。
解決策としてはキャッシュサーバを立てて情報をキャッシュに持たせる。
あるトリガーでキャッシュクリア、再度情報を取得、といった感じです。

商品画像についてもCDNを使ってキャッシュさせています。
AWSならCloudfront、AzureであればAzureCDNがあります、どちらかといえば前者がおすすめです。

他にはDBのINDEXの不備で遅くなるパターンを経験しました。

どちらにせよ、何かアクションを起こす前にまずは調査です。

調査した結果、ボトルネックとなっている箇所を判別し、
検証結果を元にどうすべきか判断して下さい。

調査方法としてはメソッド単位で時間がかかっている箇所を見つける。
DBのスロークエリを確認する。
が基本かなと思います。

投稿2015/02/10 05:54

Euz_Water

総合スコア23

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

転送量が限界に近づいているのは、DB~Webサーバ、Webサーバ~外部のどちらでしょうか。

  • DB~Webサーバの場合

まずはSQL文をチューニングして、不要なデータを転送しないようにしましょう。SQL文の段階で高度な処理を行うことで、必要な結果だけをWebサーバに伝えれば通信量を軽減できます。

  • Webサーバ~外部の場合

Webサイトの最適化を行いましょう。画像の最適化、gzip転送はこの2つだけでも劇的に転送量を抑えることができます。自動で各種の最適化を施してくれる、Google製のモジュールもあります。

投稿2015/02/03 00:44

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

よくあるトラフィック不足の可能性があります。
WEBサーバーDBサーバーの内容にもよりますが、画像や静的ファイルの配信で動的ファイルのロード時間が伸び遅くなる、または単純に静的ファイル配信でネットワークトラフィックの上限値に達してしまい遅くなるというケースかとおもわれます。

トラフィック不足の場合はLBを追加するよりCDN等で静的ファイルのみキャッシュ配信すると高速になります。

お手頃なCDNサービスとしては以下のようなものがあります。

AWS Cloudfront
http://aws.amazon.com/jp/cloudfront/

キャットストリーム エッジキャッシュCDN
http://cdn.cat-stream.com

投稿2015/07/01 02:16

ashly

総合スコア119

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

とりあえず、cloud watch見てみてボトルネック見つけましょう。

投稿2015/02/03 02:19

matsubokkuri

総合スコア744

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問