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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Q&A

解決済

1回答

2712閲覧

nginxのロードバランサで1000req/secを処理するにはどうすれば

keisuu

総合スコア40

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

0グッド

0クリップ

投稿2017/07/02 04:33

編集2017/07/02 05:40

画像サーバのリクエスト分散にnginxのロードバランサを検討しています。
CentOS 6.9
nginx 1.10
運用するサーバはVPSを検討しており、現在はconoha VPSの 2Gプランを使用しています。
SSLに対応する必要があるのでこのような設定で、一応稼働はできているようです。

/etc/nginx/conf.d/balancer.conf upstream backends { server img1.example.com:443; server img2.example.com:443; } server { server_tokens off; listen 80; listen 443; ssl on; server_name img.example.com; ssl_certificate /home/hoge/live/cert.pem; ssl_certificate_key /home/hoge/live/privkey.pem; location / { proxy_pass https://backends; } }

稼働させるとタイムアウトになったのでfile-maxの値を変更してみました。

# cat /proc/sys/fs/file-max 320000

それでもエラーがでますので、nginx.confで
worker_rlimit_nofile 204800;
worker_connections 4096;
を設定してみましたが、それでも処理が追いつかないようでした。

nginx/error.log 2017/07/02 12:40:15 [error] 17762#0: *18772 upstream timed out (110: Connection timed out) while reading upstream, client: [IP], server: [SERVER], request: "GET /test.gif HTTP/1.1", upstream:
/etc/nginx/nginx.conf user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; worker_rlimit_nofile 204800; # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/nginx/modules/ *.conf; events { worker_connections 4096; }

そもそもサーバのスペックが足りてないか、設定が悪いのか、もしくは両方かもしれませんが、
1000req/secを処理するにはどれぐらいのスペック用意して、
どのような設定をすればよいかご教示頂けませんでしょうか。よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

1000req/sec なら、先にネットワークが埋まっちゃわないですか?
test.gif が10kBとかだと、100Mシェアだとちょっと厳しい気がします。

投稿2017/07/02 06:01

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

keisuu

2017/07/02 07:59

ありがとうございます、一応100mシェアが10台あります
keisuu

2017/07/02 08:13

あ、そうではなく、nginxのロードバランサが100mシェアだと無理って事ですか?
退会済みユーザー

退会済みユーザー

2017/07/02 08:23

冗長構成とか無視すると、以下のような構成でしょうか? インターネット |100Mシェア LB | \ こっちは1G? SV…SV 10台 この場合、インターネットとの接続部分でザクッと 10kB x 1000req/sec のトラフィックが発生します、バイト→ビット変換算すると 80Mbps ぐらい必要なため、100Mシェアだとちょっと厳しいかなぁ。という意味です。
keisuu

2017/07/02 08:42

ありがとうございます。 ローカル回線は使わず全部グローバルネットワークでやっています。 インターネット |100Mシェア LB | \ 各インターネット100Mシェア SV…SV 10台 という感じなんですが伝わりますでしょうか?
退会済みユーザー

退会済みユーザー

2017/07/02 08:58

構成は、把握できました。 test.gif を 1kB以下 にすると帯域的にはイケるはずですが、どうでしょう?
keisuu

2017/07/02 09:08

LBのnginxにネットワークトラフィックがかかるとなると、思っていたのと想定外になるためmunin等確認して考え直してみます。ありがとうございました。
keisuu

2017/07/03 10:20

LBのnginxにネットワークトラフィックが増えていましたので、根本的に考え直してみます。 DNSのラウンドロビンがいいんですかねぇ。 世の中の大規模サービスはどのようにやってるのかなーと疑問ですが、最近はS3を使ったりするのが多いんでしょうか。 今のサービスでS3を使うと、うん十万円ぐらい掛かってしまいそうで予算がきびしいです・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問