8

これはプログラミングに関する直接的な質問ではないことはわかっていますが、stackoverflow のユーザーはどんな質問にも答えられるようです。

Centos 5.2 64 ビットを実行しているサーバーがあります。4GBメモリ搭載のかなりパワフルなデュアルコア2サーバー。主に静的ファイル、フラッシュ、写真を提供します。lighttpd を使用すると、簡単に 80 MB/秒を超えますが、nginx でテストすると、20 MB/秒未満に低下します。

私のセットアップは非常に簡単で、デフォルトのセットアップ ファイルを使用し、以下を追加しました。

user  lighttpd;
worker_processes  8;
worker_rlimit_nofile 206011;
#worker_rlimit_nofile 110240;

error_log   /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log  notice;
#error_log  /var/log/nginx/error.log  info;

pid        /var/run/nginx.pid;


events {
    worker_connections  4096;
}

http {
....

keepalive_timeout  2;
....
}

そして、nginxは少なくとも同じくらい強力であるはずだと思っていたので、何もしていないに違いありません.

4

3 に答える 3

7

nginx(kiil -HUP)をリロードすると、エラーログに次のようなものが表示されます

2008/10/01 03:57:26[通知]4563#0:シグナル1(SIGHUP)を受信し、再構成
2008/10/01 03:57:26[通知]4563#0:再構成
2008/10/01 03:57:26[通知]4563#0:「epoll」イベントメソッドを使用
2008/10/01 03:57:26[通知]4563#0:ワーカープロセスを開始します
2008/10/01 03:57:26[通知]4563#0:ワーカープロセスの開始3870

使用するためにnginxをコンパイルするイベントメソッドは何ですか?

access_logを実行していますか?buffer = 32kを追加することを検討してください。これにより、ログファイルの書き込みロックの競合が減少します。

ワーカーの数を減らすことを検討してください。直感に反するように聞こえますが、accept()などのsys呼び出しでは、ワーカーを相互に同期する必要があります。労働者の数を減らしてみてください。理想的には1をお勧めします。

リスニングソケットで読み取りおよび書き込みソケットバッファーを明示的に設定してみてください。http: //wiki.codemongers.com/NginxHttpCoreModule#listenを参照してください。

于 2008-10-01T08:01:10.250 に答える
3

おそらくlighttpdはある種のキャッシュを使用していますか?報告されている400%のパフォーマンス向上のために、nginxを使用してmemcachedを設定する方法を説明するすばらしい記事がここにあります。

memcachedモジュールのnginxドキュメントはこちらです。

于 2008-09-24T20:44:48.517 に答える
1

提案:-プロセッサごとに1人のワーカーを使用します。-さまざまなnginxバッファ設定を確認します

于 2008-10-12T20:35:24.183 に答える