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

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

ただいまの
回答率

89.08%

Nginx+Node.jsの秒間アクセス数について

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 1,515

ako

score 15

AWSのEC2インスタンスにてNginx+Node.jsのサーバを作り色々試しているのですが、秒間のアクセス数500〜600くらいで限界がくるような感じです。
これはチューニングでなんとか出来るものなのでしょうか?
初めてなので手探りで進めており不安しかありません。
おすすめの設定などあればご教授いただけると助かります。

試したこと

limits.confを編集し、ソフトリミット、ハードリミットを60000に変更
nginx.confに以下を追記
worker_rlimit_nofile 150000;
events {
worker_connections  65535;
}

補足情報(言語/FW/ツール等のバージョンなど)

EC2インスタンス
c4.2xlarge
vCPU 8,メモリ 15GiB,専有 EBS 帯域幅 1000Mbps
Nginx/1.8.1

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+4

追加依頼ではなく、回答面に書きます。

・帯域幅を「実際どのくらい」使っていますでしょうか
・ローカルで(ab とかを用いて)リクエストを投げた場合の挙動と同じでしょうか、異なりますでしょうか
・静的ファイルへのリクエストで良いでしょうか
・CPU はどの程度使用していますか、何にリソースを使っていますか

が気になります。また、

・limits.conf で変更したのは何の limit でしょうか。ファイルディスクリプタの上限…だとすれば「どの程度、クライアントのアクセスが分散するか」が気になってきます。ほとんどの人が特定のファイルしか読まないのであれば、設定してもあまり意味はないです。
・ディスク読み込みがボトルネックになっている場合(IOPS の関係で) は理由・次の手を考える必要がありそう
・ログはどの程度とっているか、ファイル書き込みが多くないか

といったところでしょうか。現在のご自分の見立てや分析を付記すると回答もしやすいかと思います。

>・帯域幅を「実際どのくらい」使っていますでしょうか
?・ローカルで(ab とかを用いて)リクエストを投げた場合の挙動と同じでしょうか、異なりますでしょうか 
上記2点ですが、調査できておりません。
特に、帯域幅を実際どのくらい使っているか、の調査はどのように行ったらよろしいのでしょうか?

帯域幅は、(ネットワーク系)モニタリングツール(netstat, dstat)を用いるか、ifconfig の外向きの通信量(TX)の変化を自分で読みます。

>・静的ファイルへのリクエストで良いでしょうか 
Nginx + Node.jsの環境なので静的ファイルへのリクエストではないです。

それは大きいです。Node.js を用いていることを質問自体に追記してください。

>・CPU はどの程度使用していますか、何にリソースを使っていますか 
Node.jsのワーカープロセスが8つ動いており、主にそこに使っています。

ということは、ボトルネックは nginx ではないのではないかと思います。

>・limits.conf で変更したのは何の limit でしょうか
ファイルディスクリプタの上限になります。

静的ファイルをサーブしていないのなら、おそらく設定は無意味です。

>・ログはどの程度とっているか
Nginxはアクセスログはoffになっていて、エラーログのみです。
レベルはデフォルトのままなのでerrorのはずです。

ということは、書き込み負荷が高いことはないでしょう。

詳しい調査もいりますが、おそらく、Node.js の限界です。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/22 22:04

    返事が遅れてしまい申し訳ありません。

    >・帯域幅を「実際どのくらい」使っていますでしょうか
    ?・ローカルで(ab とかを用いて)リクエストを投げた場合の挙動と同じでしょうか、異なりますでしょうか
    上記2点ですが、調査できておりません。
    特に、帯域幅を実際どのくらい使っているか、の調査はどのように行ったらよろしいのでしょうか?
    >・静的ファイルへのリクエストで良いでしょうか
    Nginx + Node.jsの環境なので静的ファイルへのリクエストではないです。
    >・CPU はどの程度使用していますか、何にリソースを使っていますか
    Node.jsのワーカープロセスが8つ動いており、主にそこに使っています。
    >・limits.conf で変更したのは何の limit でしょうか
    ファイルディスクリプタの上限になります。
    >・ディスク読み込みがボトルネックになっている場合
    まだ調査できておりません
    >・ログはどの程度とっているか
    Nginxはアクセスログはoffになっていて、エラーログのみです。
    レベルはデフォルトのままなのでerrorのはずです。

    初めてだったので基準に出来る数値がなく、雑な質問になってしまったにもかかわらず返答を頂きありがとうございます。

    キャンセル

  • 2016/08/23 15:34

    上のご回答は質問の根幹に関わることなので、ぜひ質問に追記ください。

    キャンセル

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

  • ただいまの回答率 89.08%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る