config file for only static files.
Igor Sysoev
is at rambler-co.ru
Sat Apr 5 12:51:36 MSD 2008
On Sat, Apr 05, 2008 at 03:55:47AM +0000, Amer wrote:
> I wanted to run a particular configuration by you guys to get your thoughts. I'm
> moving from lighttpd to nginx.
>
> First a little bit of background. The site is a single server running FreeBsd.
> It's a Dual Processor Quad Core Xeon 5310 1.60GHz (Clovertown) with a 2 x 8MB
> cache and 4 GB RAM. The site serves only static content. There is absolutely
> zero dynamic content. No databases involved. Each static file is about 50 kb.
>
> I get about 3000-3500 requests/second with lightpd and with my initial setup of
> nginx I get about the same. While I'm happy with this I used a very simple
> config file and just wanted to see if the experienced folks over here could
> point out some things that might be able to boost that up even further. It's
> very simple and short (just about 20 lines) and I hope some of you could give me
> some advise to get more performance (if possible).
>
> ----------------------------------------------
>
> worker_processes 4;
>
> events {
> worker_connections 1024;
> }
>
> http {
> include mime.types;
> default_type application/octet-stream;
>
> sendfile on;
> tcp_nopush on;
>
> keepalive_timeout 65;
>
> gzip on;
> gzip_types text/plain text/html text/css application/x-javascript
> text/xml application/xml application/xml+rss ext/javascript;
>
> server {
> listen 80;
> server_name localhost;
>
> location / {
> root /usr/local/www/data;
> index indexd12.html;
> }
>
> error_page 404 /404.html;
>
> }
> }
As it was suggested, try to use gzip_static.
Also, remove unused MIME types from gzip_types.
There is no application/xml, application/xml+rss, and ext/javascript
in default miem.types. The gzip modules tests Content-Type sequentially,
so the shorter list is the better.
You may need to increase worker_connections, 1024 mean that you are
able to handle 4*1024 connections only. You also need to increase
number of files, sockets, etc in kernel.
If you do not need access_log, you may set it off.
Or, you may use buffered log:
http {
access_log /path/to/log buffer=32k;
Also you may marginally decrease number of syscalls using:
timer_resolution 100ms;
And finally use open file descriptor cache to decrease number of
open()/stat()/close() syscalls:
http {
open_file_cache max=10000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
However, I do not think that all these settings will result in more
requests/seconds in your environment.
--
Igor Sysoev
http://sysoev.ru/en/
More information about the nginx
mailing list