ホームページ >運用・保守 >Linuxの運用と保守 >ベスト プラクティス: CentOS で Web サーバーを構築するためのパフォーマンス チューニング ガイド

ベスト プラクティス: CentOS で Web サーバーを構築するためのパフォーマンス チューニング ガイド

王林
王林オリジナル
2023-08-04 12:17:041381ブラウズ

ベスト プラクティス: CentOS で Web サーバーを構築するためのパフォーマンス チューニング ガイド

要約: この記事は、CentOS で Web サーバーを構築するユーザーに、サーバーのパフォーマンスを向上させることを目的としたパフォーマンス チューニングのベスト プラクティスを提供することを目的としています。そして応答速度。いくつかの主要な調整パラメータと一般的に使用される最適化方法が紹介され、読者がこれらの方法をよりよく理解して適用できるようにいくつかのサンプル コードが提供されます。

1. 不要なサービスをオフにする

CentOS 上で Web サーバーを構築すると、デフォルトでいくつかの不要なサービスが起動されますが、これらのサービスはシステム リソースを占有しますが、パフォーマンスには明らかな影響はありません。 Web サーバーを宣伝します。したがって、これらの不要なサービスをシャットダウンしてリソースを解放する必要があります。

次のコマンドを使用して、実行中のサービスを一覧表示します:

systemctl list-units --type=service --state=running

メール サービスをオフにするなど、実際の状況に応じて不要なサービスを閉じることを選択します:

systemctl stop postfix
systemctl disable postfix

2 . カーネル パラメータを調整する

カーネル パラメータの最適化は、サーバーのパフォーマンスを向上させるための重要な手順です。カーネルパラメータは、/etc/sysctl.conf ファイルを変更することで調整できます。一般的に使用されるカーネル パラメーターの調整ソリューションの一部を次に示します。

  1. ファイル ハンドル数の制限を増やす
# 增加系统最大文件句柄数
fs.file-max = 65535

# 增加每个进程可以打开的文件句柄数限制
ulimit -n 65535
  1. TCP 数の制限を増やす接続
# 增加系统的最大并发TCP连接数
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_max_syn_backlog = 1024
net.core.somaxconn = 65535
  1. グループ チャットの断片化を排除します
# 消除群聊分片
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_sack = 0
net.ipv4.tcp_dsack = 0
  1. システム TCP バッファ サイズを増やします
# 提高TCP接收窗口缓冲区大小(单位:字节)
net.ipv4.tcp_rmem = 4096 87380 4194304

# 提高TCP发送窗口缓冲区大小(单位:字节)
net.ipv4.tcp_wmem = 4096 16384 4194304

# 提高系统的TCP连接跟踪表的大小
net.netfilter.nf_conntrack_max = 65536

上記のパラメータを有効にするには、次のコマンドを使用します:

sysctl -p

3. 高性能 Web サーバーを使用する

適切な Web サーバーの選択も、パフォーマンスに重要な影響を与えます。 CentOS では、Nginx と Apache が一般的に使用される Web サーバーです。

  1. Nginx

Nginx は、非同期のノンブロッキング イベントドリブン アーキテクチャを使用して大規模なトラフィック リクエストを簡単に処理する、高性能 HTTP およびリバース プロキシ サーバーです。

Nginx のインストール:

yum install nginx

Nginx の構成:

/etc/nginx/nginx.confファイルを編集:

user www-data;
worker_processes auto;
worker_cpu_affinity auto;

events {
    worker_connections 1024;
    use epoll;
    multi_accept on;
}

http {
    # 配置HTTP服务器
    ...
}
  1. Apache

Apache は機能が豊富で広く使用されている Web サーバーであり、パフォーマンスは Nginx よりわずかに劣りますが、特定のシナリオでは依然として優れたパフォーマンスを提供します。

Apache のインストール:

yum install httpd

Apache の構成:

/etc/httpd/conf/httpd.conf ファイルを編集:

ServerLimit 2048
MaxClients 2048

4. キャッシュ アクセラレーションを使用する

キャッシュ テクノロジを使用すると、Web サーバーのパフォーマンスを効果的に向上させることができます。キャッシュの高速化には、次の 2 つの方法を使用できます。

  1. HTTP キャッシュ

適切な Cache-Control および Expires# を設定することにより、 # #Response ヘッダーを使用すると、クライアントは静的リソースをキャッシュし、サーバーの負荷を軽減し、ユーザーのアクセス エクスペリエンスを向上させることができます。サンプル コードは次のとおりです。

location /static {
    expires 7d;
}

    リバース プロキシ キャッシュ
リバース プロキシ キャッシュを使用して、動的コンテンツをキャッシュし、バックエンド サーバーへのリクエストを減らします。 Nginx の

proxy_cache モジュールを使用して、リバース プロキシ キャッシュを実装できます。サンプルコードは以下のとおりです。

proxy_cache_path /var/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;
server {
    ...
    location / {
        proxy_cache my_cache;
        proxy_cache_valid 200 301 302 5m;
        proxy_pass http://backend;
    }
}

結論

不要なサービスを終了し、カーネルパラメータを調整し、高性能なWebサーバーを使用し、キャッシュアクセラレーションを使用することで、CentOS上に構築されたWebサーバーのパフォーマンスを向上させることができます。優れたパフォーマンスと応答性。この記事で提供されているパフォーマンス チューニング ガイドがお役に立てば幸いです。

参考リンク:

    https://www.digitalocean.com/community/tutorials/5-tips-to-speed-up-your-nginx-web-server
  1. https://www.digitalocean.com/community/tutorials/how-to-optimize-nginx-configuration

以上がベスト プラクティス: CentOS で Web サーバーを構築するためのパフォーマンス チューニング ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。