2

What would be the system tunables to enhance serving static content? Like increase/decrease swappines, how to max out disk caching and so on...

JdeBP
  • 3,990
  • 18
  • 17
Calin Don
  • 151
  • 4
  • 1
    small or large files? – Karoly Horvath Jun 27 '11 at 22:50
  • Are you seeing much swap traffic with `vmstat 1`? – sarnold Jun 27 '11 at 22:51
  • I'm betting an untuned server, even a not very grunty one, could push out more content than a gigabit ethernet could take. Just make sure you've got enough memory so you're not swapping. – Paul Tomblin Jun 27 '11 at 23:36
  • The main optimization for static content would be to do some benchmarks to see if lighttpd is faster than apache. – Paul Tomblin Jun 27 '11 at 23:37
  • Just a few notes: I'm using nginx to serve that content; the average object size is 25k. My question is if you have some tips for optimizing the OS - have it to cache more aggressively, reduce the time to first byte sent over TCP, so on. Thanks. – Calin Don Jun 28 '11 at 11:31

1 Answers1

4

If you're looking for hardcore static performance, look into nginx. A web server that specializes specifically in serving static content.

You will find that Apache can serve static content quite quickly too if you don't use complex features or .htaccess files, etc.

Caching and connection handling are best left to the tunable features of the service daemon you choose.

Technically for any form of IO/general performance you want 0 swappiness - as that correlates to a memory problem (either too little memory, poor use, or legitimate consumption).

thinice
  • 4,716
  • 21
  • 38
  • I'm already using nginx and I know that it can saturate 1Gbps connection. The question is if there any tunables to reduce the time from HDD to TCP, basically reduce the time to first byte. – Calin Don Jun 28 '11 at 11:37
  • Depending on your memory consumption you could look into this: http://wiki.nginx.org/HttpMemcachedModule – thinice Jun 28 '11 at 13:40
  • Do you have an idea of what level of disk latency you have with a random request? – thinice Jun 28 '11 at 14:04
  • http://dl.dropbox.com/u/27595652/284694/diskstats_iops-day.png http://dl.dropbox.com/u/27595652/284694/diskstats_latency-day.png http://dl.dropbox.com/u/27595652/284694/memory-day.png are the relevant data from server monitoring. As you can see every kernel part is doing it's job good and I don't have specifically a problem with disk latency, but rather I'm asking for good practices when it comes to this type of server workload. – Calin Don Jun 29 '11 at 10:55
  • Memmcached doesn't seem a good solution for this, since it is introducing additional networking overhead. I'm trying to minimize the time from file to the network (reducing the latency). – Calin Don Jun 29 '11 at 10:58