directio

Igor Sysoev is at rambler-co.ru
Tue Aug 5 19:28:31 MSD 2008


On Tue, Aug 05, 2008 at 06:15:28PM +0300, Aleksej Novikov wrote:

> Hello Igor,
> 
> Tuesday, August 5, 2008, 4:30:08 PM, you wrote:
> 
> > On Tue, Aug 05, 2008 at 04:28:45PM +0300, Aleksej Novikov wrote:
> 
> >>    > Да, при использовании O_DIRECT ОС может читать с диска прямо в
> 
> >>    > пользовательскую память. FreeBSD делает fallback к обычному чтению,
> 
> >>    > если параметры не удовлетворяют прямому чтению. В общем, я добавлю
> 
> >>    > в 0.7.7 directio, а там будем смотреть на каких Линуксах это >
> 
> >>    >  работает.
> 
> >>    Поставил 7.7.
> 
> >>    directio 10m;
> 
> >>    sendfile off;
> 
> >>    отдаются большие файлы (до 1gb) кусками (byte-range)
> 
> >>    в результате ничего не отдаётся, с логах ошибка как и раньше писал
> >>    Валерий,
> 
> >>    2008/08/05 08:17:46 [crit] 10732#0: *34732 pread() failed, file
> >>    "/some/filename" (22: Invalid argument) while sending response to
> >>    client, client: xx.xx.xx.xx, server: a.bb.cc.dd, request: "GET
> >>    /so/file HTTP/1.1", host: "myhost"
> 
> >>    Добавлю также, что сам файл это symlink на файл на другом диске.
> 
> >>    /some/filename  -> /another/disk/filename
> 
> > А какой Линукс - ядро и дистрибутив ?
> 
> 
> kernel 2.6.23.12  SMP  i686 Intel(R) Xeon(TM) CPU 3.00GHz 
> Gentoo

Пока вроде единственный Линукс, который умеет читать с невыравненными
параметрами при включённом O_DIRECT - CentOS 5.2, ядро 2.6.18.


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





More information about the nginx-ru mailing list