ほとんどすべての設定を調整できますが、この投稿では、調整がほとんどのユーザーに役立ついくつかの設定に焦点を当てています。 NGINXとLinuxを深く理解している場合にのみ変更することをお勧めする設定があります。したがって、Nginxサーバーから最高のパフォーマンスを得る方法がわかります
HI Guys !、この投稿では、基本的に、 /etc/nginx/nginx.confにある構成ファイルを使用したNGINXチューニングを確認します。
NGINXは、高性能のロードバランサー、キャッシュ、ウェブサーバーとしてよく知られており、世界で最も忙しいウェブサイトの40%以上に電力を供給しています。ほとんどのユースケースでは、デフォルトのNGINXおよびLinux設定が適切に機能しますが、最適なパフォーマンスを実現するには、多少の調整が必要になる場合があります。このブログ投稿では、システムを調整する際に考慮すべきNGINXおよびLinuxの設定について説明しています。
ワーカープロセス
NGINXは複数のワーカープロセスを実行でき、それぞれが多数の同時接続を処理できます。次のディレクティブを使用して、ワーカープロセスの数とそれらが接続を処理する方法を制御できます
worker_processes
NGINXワーカープロセスの数(デフォルトは1)。ほとんどの場合、CPUコアごとに1つのワーカープロセスを実行するとうまく機能します。これを実現するには、このディレクティブをautoに設定することをお勧めします。ワーカープロセスが大量のディスクI/Oを実行する必要がある場合など、この数を増やしたい場合があります。
worker_connections
各ワーカープロセスが同時に処理できる接続の最大数。デフォルトは512ですが、ほとんどのシステムには、より多くの数をサポートするのに十分なリソースがあります。適切な設定は、サーバーのサイズとトラフィックの性質によって異なり、テストを通じて見つけることができます。
キープアライブ接続
キープアライブ接続は、接続の開閉に必要なCPUとネットワークのオーバーヘッドを削減することにより、パフォーマンスに大きな影響を与える可能性があります。 NGINXはすべてのクライアント接続を終了し、アップストリームサーバーへの個別の独立した接続を作成します。 NGINXは、クライアントとアップストリームサーバーの両方のキープアライブをサポートします。次のディレクティブは、クライアントのキープアライブに関連しています。
keepalive_requests
クライアントが単一のキープアライブ接続を介して行うことができる要求の数。デフォルトは100ですが、はるかに高い値は、通常、単一のクライアントから多数のリクエストを送信する負荷生成ツールを使用したテストに特に役立ちます。
keepalive_timeout
アイドル状態のキープアライブ接続が開いたままになる時間。
次のディレクティブは、アップストリームキープアライブに関連しています
キープアライブ
各ワーカープロセスに対して開いたままになっている、アップストリームサーバーへのアイドル状態のキープアライブ接続の数。デフォルト値はありません。
アップストリームサーバーへのキープアライブ接続を有効にするには、構成に次のディレクティブも含める必要があります。
アクセスログ
すべてのリクエストをログに記録すると、CPUとI / Oの両方のサイクルが消費されます。影響を減らす1つの方法は、アクセスログのバッファリングを有効にすることです。バッファリングを使用すると、ログエントリごとに個別の書き込み操作を実行する代わりに、NGINXは一連のエントリをバッファリングし、1回の操作でそれらを一緒にファイルに書き込みます。
ログエントリは、ワーカープロセスがログファイルを再度開いているとき、またはシャットダウンしているときにも書き込まれます。アクセスログを完全に無効にするには、access_logディレクティブにoffパラメータを含めます。
送信ファイル
オペレーティングシステムのsendfile()システムコールは、あるファイル記述子から別のファイル記述子にデータをコピーし、多くの場合ゼロコピーを実現します。これにより、TCPデータ転送を高速化できます。 NGINXがそれを使用できるようにするには、httpコンテキストまたはサーバーまたはロケーションコンテキストにsendfileディレクティブを含めます。 NGINXは、コンテキストをユーザースペースに切り替えることなく、キャッシュされたコンテンツまたはディスク上のコンテンツをソケットに書き込むことができるため、書き込みが非常に高速になり、CPUサイクルの消費量が少なくなります。ただし、sendfile()でコピーされたデータはユーザースペースをバイパスするため、通常のNGINX処理チェーンやgzipなどのコンテンツを変更するフィルターの対象ではないことに注意してください。構成コンテキストにsendfileディレクティブとコンテンツ変更フィルターをアクティブ化するディレクティブの両方が含まれている場合、NGINXはそのコンテキストのsendfileを自動的に無効にします。
だから、あなたはすでにNginxサーバーから最高のパフォーマンスを得る方法を知っています
NginxWebサイト