кеширование статики в RAM

Igor Sysoev is at rambler-co.ru
Mon Oct 26 18:04:29 MSK 2009


On Mon, Oct 26, 2009 at 01:56:52PM +0200, MZ wrote:

> Igor Sysoev wrote:
> 
> > Да, во FreeBSD page cache не учитывает популярность страниц, отданных
> > sendfile()ом или прочитанных с помощью read(). Популярность учитывается
> > только при обращеннии к mmap()тым страницам. Тем не менее, какое-то
> 
> Насколько я понял МакКусика, для read() сначала делается что-то типа 
> того что и для mmap() - страница загружается в память и привязывается к 
> vnode файла.
> Разница между read() и mmap() в том что в первом случае нужные данные 
> после загрузки с винта в память копируются в указанные в read() 
> анонимные страницы привязанные к процессу, а во втором - загруженная 
> страница с данными сама биндится в адрессное пространство процесса.

Да.

> В обоих случаях при работе с данными идет обращение к странице 
> привязанной к vnode - для read() чтоб скопировать в адрессное 
> пространство процесса, который затем зашлет данные в сокет, и для mmap() 
> - чтоб скопировать уже сразу в сокет.

При копировании read()ом данных в адресное пространство процесса
используется дополнительное отображение, по которому не ведётся
статистика обращений:
http://lists.freebsd.org/pipermail/freebsd-current/2007-October/078034.html
http://lists.freebsd.org/pipermail/freebsd-current/2007-October/078058.html

> Не в курсе как с zero_copy, будет ли засчитываться обращение ядра к 
> mmap-нутым страницам или нет.
> 
> Я все правильно понял, или где-то ошибся ?


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list