read_ahead
Михаил Монашёв
postmaster at softsearch.ru
Tue Sep 15 00:10:30 MSD 2009
Здравствуйте, Игорь.
А этот патч для FreeBSD войдёт в 8.x ?
IS> aio sendfile в nginx'е использует флаг SF_NODISKIO и sendfile() не
IS> блокируется на диске, а сообщает об отсутствии данных в памяти,
IS> после чего nginx инициирует асинхронную подгрузку данных, читая
IS> только один байт. При этом ядро FreeBSD подгружает в память первые
IS> 128K файла, однако при последующих чтениях файл подгружается частями
IS> только по 16K.
IS> К письму прилагается два патча
IS> 1) для FreeBSD 7, реализующий fcntl(F_RDAHEAD, размер):
IS> patch -d /usr/src < patch.rdahead
IS> после чего пересобираем и устанавливаем ядро и перегружаемся.
IS> После загрузки обновляем fcntl.h:
IS> cd /usr/src/include/
IS> make obj all install
IS> 2) для nginx-0.8.15 - patch.read_ahead
IS> Настройки:
IS> sendfile on;
IS> aio sendfile;
IS> read_ahead 256k;
IS> tcp_nopush on;
IS> sysctl vfs.read_max=16 # 256K
IS> Для Линукса read_ahead с любым размером >0 вызывает просто
IS> posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL)
--
С уважением,
Михаил Монашёв, SoftSearch.ru
mailto:postmaster at softsearch.ru
ICQ# 166233339
http://michael.mindmix.ru/
Без бэкапа по жизни.
More information about the nginx-ru
mailing list