Отдача больших файлов

Lin shaman712 at inbox.ru
Fri Mar 13 11:50:12 MSK 2009


Здравствуйте
Nginx используется для отдачи файлов большого размера и меня интересует его настройка на максимальную производительность. В частности, какие буферы нужно выставить, чтобы уменьшить нагрузку на дисковую подсистему? Файлы могут отдаваться на скорости 250-350 Кб/с, но вместо этого при количестве клиентов в 300-400 скорость падает до 20-30. Я так понимаю, все упирается в дисковую подсистему и хотелось бы этот момент оптимизировать. Полагаю, что информацию лучше сразу читать в буферы приличного размера, чтобы было меньше обращений к дискам.
После изучения документации нашел следующие буферы:
- sndbuf в директиве listen. На что он влияет, я не совсем понял, прошу пояснить, если можно.
- output_buffers. Если я правильно понял, информация читается именно в эти буферы, а потом отдается клиенту. Таким образом, большое количество маленьких буферов увеличит количество обращений к дискам, а, значит, снизит производительность. Если же читать данные в один буфер около 256-512 кб, то обращений должно быть значительно меньше. Здесь, полагаю, все упрется только в количество памяти под буферы.
- sendfile_max_chunk. Описания этой директивы в документации вообще не нашел:( Полагаю, что действует она только при включенном sendfile, но как именно, объясните пожалуйста.
Заранее спасибо.





More information about the nginx-ru mailing list