我知道这不是一个直接的编程问题,但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
你在做任何access_log’ing吗?考虑添加buffer = 32k,这将减少日志文件的写锁争用.
考虑减少工作人员的数量,这听起来很反直觉,但工作人员需要彼此同步以进行诸如accept()之类的sys调用.尝试减少工人数量,理想情况下我会建议1.
您可以尝试在侦听套接字上显式设置读取和写入套接字缓冲区,请参阅http://wiki.codemongers.com/NginxHttpCoreModule#listen