Hello Andrey,
AYO> Тогда что подразумевалось под "засунуть в память"? Может я
AYO> чего в этой технологии не понимаю?
обычно ОС кеширует данные с диска в памяти.
SS> При этом файлы посланные при помощи sendfile() шлются прямо из дискового
SS> кэша - нет лишней перекачки
SS> kernel - user - kernel.
Это всё хорошо.
А можно ли сделать так, чтобы наоброт, файл по максимуму (до разумных
пределов, естественно) скачивался в
ОП и отдавался уже оттуда? Может стоит сделать связку nginx-nginx ?
Сейчас на машине, которая раздаёт только статику с помощью sendfile, память не
используется
вообще, а винты прогибаются.
Можно запретить sendfile и сказать, чтобы nginx читал файл большими кусками:
sendfile off;
output_buffers 1 64k;
Однако, я не думаю, что будет лучше. Во FreeBSD sendfile() выводит по одной
странице (4K) за раз, но ядро читает блоками, если не ошибаюсь, это 16K
(BKVASIZE), и при этом, если опять же не ошибаюсь, делается предчтение.
Игорь Сысоев
http://sysoev.ru