同時実行パフォーマンステスト
1 テストの目的
Apache と Nginx の同時実行パフォーマンス テストの結果に基づいて、それぞれの同時実行モデルの長所と短所を分析します。
パフォーマンス評価項目には、RPS (1 秒あたりに処理されるリクエストの数)、CPU 使用率、メモリ使用量、最大同時実行数が含まれます。
Apache および Nginx 同時実行モデルの長所と短所に基づいて、適切な同時実行モデル フレームワークを選択します。
2 テスト環境
1. ハードウェア環境
サーバー: インテルサーバー Borad
8コアCPU、2Gメモリ、160Gハードドライブ、
クライアント: サーバー側環境と同じ
2. オペレーティングシステム
オペレーティング システム: Red Hat EnterPrise Kernel Linux 2.6.18
クライアント: Red Hat EnterPrise Kernel Linux 2.6.9
3. ネットワークトポロジ
サーバーとクライアントは 100M ネットワークケーブルを介してスイッチに接続されています
サーバーIPアドレス: 192.168.192.201
クライアントIPアドレス: 192.168.192.200
3 つのテスト方法
3.1 テストツール
Apache 2.2.10 にはツールベンチが付属しています
ウェブベンチ 1.5
3.2 テスト手順
1. 設備の点検・設置
すべてのシステム デバイスが損傷しておらず、使用可能であるかどうかを確認し、デバイスをホストに接続します。
2.ネットワーク接続チェック
サーバーとクライアントは100Mネットワークケーブルを使用して同じスイッチに接続されています
3. オペレーティングシステムの準備
Red Hat Enterprise を開始する
マウスドライバーをインストールし、ネットワークを設定します
4. ダウンロード、インストール、設定
付録を参照してください
5. Apache テスト
Apacheを実行します
cd /usr/local/apache/bin
./apachectl -k start
Apache サービスのテストが正常に開始されました
窓の下にアクセスしてください: http://192.168.192.201/index.html
「動作します!」のテストページが表示されます
Apcheベンチテストプログラムを実行する
cd /usr/local/apache/bin
./ab -c クライアント -n リクエスト http://192.168.192.201/index.html
Webベンチテストプログラムを実行する
cd /usr/local/bin
webbench -c クライアント -t 時間 http://192.168.192.200/index.html
(クライアントはユーザー数を表し、リクエストは同時実行数を表します)
6. Nginx テスト
nginxを実行します
./nginx
nginx サービスのテストが正常に開始されました
窓の下にアクセスしてください: http://192.168.192.201/index.html
「nginxへようこそ!」ページが表示されます
結果の比較可能性をテストするには、Apache テスト ページのindex.html をコピーして、nignx テスト ページをカバーします
Apcheベンチテストプログラムを実行する
cd /usr/local/apache/bin
./ab -c クライアント -n リクエスト http://192.168.192.201/index.html
Webbech テスト プログラムを実行する
cd /usr/local/bin
webbench -c クライアント -t 時間 http://192.168.192.200/index.html
7. テスト結果を記録します
ベンチテスト結果を記録: テストにかかった時間 (テスト時間、単位: 秒)、1 秒あたりのリクエスト数 (1 秒あたりに処理されたリクエストの数)
Webベンチ テスト結果を記録します: 速度 (Apache ベンチとの一貫性を保つため、1 分あたりに処理されるリクエストの数、*30 は記録中に 1 秒あたりに処理されるリクエストの数に変換されます)、実行時間は次に従って指定されます。運用コマンド -t、デフォルトは30秒
CPU 使用率を確認するコマンド: top
メモリ使用量コマンド: 無料
4 テスト計画
Nginx シングルスレッドテスト
Nginx マルチスレッドテスト
Apache ワーカーモードのテスト
Apache プリフォーク モードのテスト
5 データの概要
テスト構成: Apache 構成リファレンス 7.4、Nginx 構成リファレンス 7.5
元データは元データxlsをご参照ください
データは次のように要約されます:
サーバークライアントRPS
アイドルフリー (中古) アイドルフリー (中古)
Nginx 単一プロセス 79 102526K 82 185196K 20757
Nginx マルチプロセス 81 395444K 85 177405K 20861
Apahce プリフォーク 38 154380K 75 178215K 30181
Apache ワーカー 41 81506K 81 183166K 24669
6 テストの結論
7 付録
7.1 Webベンチのインストール
ステップ操作
インストール パッケージ wget をダウンロードします http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz
tar zxvf webbench-1.5.tar.gz を解凍します
cd webbench-1.5 をコンパイルします
作る
インストールメイクインストール
7.2 Apache のインストール
ステップ操作説明
インストールパッケージをダウンロードします ソフトウェアパッケージ httpd-2.2.10.tar.gz を http://www.apache.org からダウンロードします 最新の安定バージョン
tar xvzf httpd-2.2.10.tar.gz を解凍します
コンパイルオプション ./configure --prefix=/usr/local/apache インストールパス
--enable-module=shared プロセス間の共有メモリ
--enable-module=書き換え
--enable-threads スレッドのサポート (ワーカーモードが有効)
--enable-shared=max
--with-mpm=worker ワーカーモードの選択
--with-mpm=prefork プリフォークモードの選択
--with-mpm=イベント I/O 多重化のサポート
コンパイルする
インストールする インストールする
7.3 Nginxのインストール
ステップ操作説明
インストールパッケージをダウンロードします ソフトウェアパッケージ nginx-0.7.24.tar.gz を http://sysoev.ru/nginx/download.html からダウンロードします 最新の安定バージョン
tar xvzf ginx-0.7.24.tar.gz を解凍します
コンパイル ./configure --prefix=/usr/local/ インストールパス
コンパイルする
インストールする インストールする
7.4 Apache の設定
Apache 設定コマンド:
cd /usr/local/apache/conf
vi http.conf
プリフォークモードのパラメータ設定:
構成 Apache
プリフォーク モード --with-mpm=prefork
システム起動時に作成されるプロセス数 StartServers 128 //Nginx と同等
アクティブな子プロセスの数 ServerLimit 50000
子プロセスのライフサイクル中に処理される接続の数 MaxRequestsPerChild 0 // 0 は制限がないことを意味します
子プロセスの最大数 MaxClients 50000
リスニングポート リッスン80
タイムアウト タイムアウト 300
キープアライブ キープアライブ オン
Sendfile を有効にする
ワーカーモード構成:
設定項目の実装
ワーカーモード --with-mpm=ワーカー
システム起動時に作成されるプロセスの数 StartServers 32
アクティブな子プロセスの数 ServerLimit 7812
最大スレッド数 MaxClients 500000
子プロセスのスレッド数 ThreadsPerChild 64 //Apache で許可される最大値と等しい
リスニングポート リッスン80
タイムアウト タイムアウト 300
キープアライブ キープアライブ オン
Sendfile を有効にする
7.5 Nginx 構成
Nginx 設定コマンド:
cd /usr/local/nginx/conf
vi nginx.conf
Nginx 構成コマンドをテストします:
./nginx –t
シングルワーカープロセスの主な構成:
Nginx の構成
プロセスworker_processes 1;
プロセス worker_connections 102400;
によって処理された接続の数
リスニングポートサーバー {
聞いてください 80;
}
Sendfile sendfile オン;
I/O多重化方法はepollを使用します;
マルチワーカー構成:
Nginx の構成
プロセスworker_processes 16;
プロセス worker_connections 102400;
によって処理された接続の数
リスニングポートサーバー {
聞いてください 80;
}
Sendfile sendfile オン;
I/O 多重化方式は epoll を使用します。
上記は、同時実行パフォーマンス テスト Apache nginx を内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。