Hi, a silly question perhaps, but I'll ask anyway...
I have some servers that each hold about 4GB of static image content and they each serve data at about 50-60mbps. They use 250GB IDE drives and have 1GB RAM. The problem now is that they have about 20-30% IOWait. Even though they still function very well now, I worry that if content reaches 8GB, this will really start being a problem.
Is it expected to get such IOWait when the dataset is only 4GB?
I would say this depends on how many people are access the content. If the server handles a lot of files for its content you might want to look in to a SCSI solution or a SATA II Raid (NCQ will help greatly)
Using Async IO allows lighttpd it overlap file-operations. We send a IO-request for the file and get notified when it is ready. Instead of waiting for the file (as in the normal sendfile()) and blocking the server, we can handle other requests instead.
On the other side we give the kernel to reorder the file-requests as it wants to.
Taking this two improments we can increase the throughput by 80%.
On the other side we don’t spend any time in wait in lighty itself. 64 kernel threads are handling the read()-calls for us in the background which increases the idle-time from 12% to 40%, a improvement of 230% .
That might already help you a lot. Even though faster drives might be a good thing to think about anyway