nginx设置问题

我知道这不是一个直接的编程问题,但stackoverflow上的人似乎能够回答任何问题.

我有一台运行Centos 5.2 64位的服务器.相当强大的双核2服务器,4GB内存.它主要提供静态文件,flash和图片.当我使用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至少应该是那么强大,所以我一定不会做某事.

当你重新加载你的nginx(kiil -HUP)时,你会在错误日志中得到类似的东西

2008/10/01 03:57:26 [notice] 4563#0: signal 1 (SIGHUP) received, reconfiguring
2008/10/01 03:57:26 [notice] 4563#0: reconfiguring
2008/10/01 03:57:26 [notice] 4563#0: using the "epoll" event method
2008/10/01 03:57:26 [notice] 4563#0: start worker processes
2008/10/01 03:57:26 [notice] 4563#0: start worker process 3870

你的nginx编译使用什么事件方法?

你在做任何access_log’ing吗?考虑添加buffer = 32k,这将减少日志文件的写锁争用.

考虑减少工作人员的数量,这听起来很反直觉,但工作人员需要彼此同步以进行诸如accept()之类的sys调用.尝试减少工人数量,理想情况下我会建议1.

您可以尝试在侦听套接字上显式设置读取和写入套接字缓冲区,请参阅http://wiki.codemongers.com/NginxHttpCoreModule#listen

相关文章
相关标签/搜索