WEBサーバーパラメータ最適化設定テンプレート

WEBサーバーパラメータ最適化設定テンプレート

WEBサーバーパラメータ最適化設定テンプレート

ヒロインの宣言:

凍った3フィートは一日の寒さではありません、経験は通常の継続的な蓄積に依存します。トラブルシューティングからパフォーマンスパラメータの調整まで、HULKの運用および保守チームは、会社の複数のライフラインビジネスをサポートする多くの経験を蓄積してきました。本日は、「HULKaddopsチームのWEBサーバーシステムパフォーマンスパラメータ」に関する記事を共有します。まとめテンプレート」、皆様のお役に立てれば幸いです!
PS:「HULKファーストラインテクノロジートーク」には、豊富なファーストラインテクノロジーと多様な表現がすべて含まれていますので、ご注意ください!

背景紹介

日常の運用・保守作業では、大量のトラフィックによるパフォーマンスのボトルネックが発生することがよくあります。たとえば、接続数が一定の値に達すると、サーバーの負荷が増加し始め、ログエラーが増加し始め、アプリケーションがタイムアウト。各システムの負荷容量には重要な値があり、システムが科学的な方法で調整されている場合、システムパフォーマンスのスループットが最大化され、システムリソースがこの重要な値を増やすために十分に活用されます。

長い経験の蓄積の後、チームは標準構成テンプレートを要約し、社内の複数の重要なビジネスラインを安定してサポートしてきました。無私無欲に、私たちはこのテンプレートをすべての人と共有し、パラメータの最適化についてこれらのことについてすべての人と話すことにしました!

システムパラメータの最適化

カーネルパラメータの最適化:


vi /etc/sysctl.conf 
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_intvl = 10
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_ecn = 0
net.ipv4.tcp_sack = 1
net.ipv4.tcp_dsack = 0
net.ipv4.tcp_fin_timeout = 3
net.ipv4.tcp_rmem = 4096 2097152 16777216
net.ipv4.tcp_wmem = 4096 2097152 16777216
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_tw_buckets = 18000
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_mem = 196608 2097152 3145728
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 16777216
net.core.wmem_default = 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.somaxconn = 262144
net.core.netdev_max_backlog = 300000
fs.file-max = 1280000
net.unix.max_dgram_qlen = 10000

sysctl-pを実行して有効にします。

詳細:

TCPには、各接続の最新のタイムスタンプをキャッシュできる動作があります。タイムスタンプが後続の要求でキャッシュされたタイムスタンプよりも小さい場合、無効と見なされ、対応するデータパケットは破棄されます。
推奨設定:
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_timestamps = 1

ファイルハンドルの制限:

vi /etc/security/limits.d/def.conf

  • ソフトnofile65535
  • hard nofile 65535
  • ソフトnproc65535
  • ハードnproc65535

保存して終了すると、有効になります。

Webプログラムパラメータの最適化

Nginx:


server {
 listen 80 backlog=2048;      
}

PHP:


pm = static;
pm.max_children = 1024;
pm.max_requests = 1000;
emergency_restart_threshold = 1;
emergency_restart_interval = 1m;

Nginx + PHP構成ファイルを変更した後、再起動して有効にします。

詳細:

pm.max_childrenの値は、「* softnproc」ファイルハンドルの数の制限を超えてはなりません。超えていない場合、エラーが報告されます。

総括する

チーム内のすべてのWebサーバーは、初期化プロセス中にこのテンプレートに従って構成されます。もちろん、特別な状況がある場合は、特定の問題を詳細に分析する必要があります。各パラメータの説明はGoogleで確認できるので、ここでは説明しません。パラメータの設定について質問がある場合、または通信したい場合は、私たちに従ってメッセージを残してください!o(∩_∩)o〜

おすすめ

転載: blog.51cto.com/15127564/2668205