Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: sendfile(2) patch и отда ча больших файлов на 7-STABLE amd64
On Tue, Feb 03, 2009 at 11:55:07AM +0300, Artemiev Igor wrote:
> On Tue, Feb 03, 2009 at 09:26:30AM +0300, Igor Sysoev wrote:
> > То есть,
> >
> > 1) загрузились,
> > 2) поставили kern.ipc.sfreadahead=64,
> > 3) сделали несколько закачек, первая из них быстрая, остальные - медленные,
> > 4) поставили kern.ipc.sfreadahead=1,
> > 5) сделали несколько закачек, все из них быстрые.
> >
> > Так ?
> > И при этом при повторных закачках всё равно происходит обращение к диску ?
> Да, только kern.ipc.sfreadahead=16, а так всё точь в точь. Обращение к диску
> есть при каждой закачке.
Да, с 64 я ошибся, должно быть 16.
> > Если это так, то я не понимаю, почему: sfreadahead используется только
> > во время чтения. Если страница файла уже в памяти (а они все в памяти, о чём
> > говорит 1039M Inactive), то код проходит мимо sfreadahead и он вообще
> > не должно влиять на выполнение.
> Выглядит так, будто UIO_NOCOPY отрабатывается не совсем ожидаемо. Можно,
> конечно, предположить, что этот флаг zfs пока не поддерживается, но с ufs
> проблема тоже наблюдается
zfs, насколько я понимаю, во FreeBSD копирует всегда. Но дело в том, что
при повторных обращениях к файлу это место вообще не должно работать.
> Ну вот в аттаче два ядерных трейса, соответствующих началу закачки: 1й с
> выключенным zfs prefetch и zil, второй с включенными. В обоих идёт обращение
> к
> диску. Может это как-то поможет.
>
> Вообще, у тебя самого оно по-прежнему работает на свежей 7.1-STABLE? У меня
> означенный выше эффект воспроизводится на 6.4-STABLE и 7.1-STABLE.
У меня это работает на 7.0-RELEASE-p5, но, думаю, дело не в версии, а в zfs.
А если этому файлу несколько раз сделать dd of=/dev/null, после первого dd
есть обращения к диску ?
--
Игорь Сысоев
http://sysoev.ru
|