медленный DIRECTIO

dimkalinux dimkalinux at gmail.com
Thu Feb 12 12:02:59 MSK 2009


Добрый день,

Тестирую NGINX в области раздачи больших файлов и обнаружил странную проблему.
Конфигурация сервера: 18 sata-II винтов в аппаратном RAID-6. ОС CentOS 5.2.
После настройки оси на чтение файлов большими кусками райд и nginx
выдают скорость
порядка 700 мегабайт/c (~3.5 гигабита), что и есть пределом для данной
конфигурации сервера. Последовательное чтение одного файла одним
клиентом.
Кеш файловой системы XFS сброшен полностью. При включении Directio
скорость чтения сильно падает — до 100 мегабайт/с,
то есть примерно в 7 раз. Создаётся ощущение что при directio nginx
или ОС читает файл сильно мелкими частями, неудобными для raid.

С другой стороны, при использовании directio на «гарячем файле»,
который качают много клиентов одновременно наверное не оправдано?
Нужен ли он вообще при раздаче больших файлов. Большие это от 1 до 8 гигабайта .

И еще один вопрос, я правильно понимаю что при чтении с диска worker
nginx блокируется полностью, и пока не окончится
чтение файла спанить новые процессы он не способен. Значит, для того
чтобы сервер смог обслужить 300 пользователей — надо иметь
как минимум 300 воркеров?

-- 
dimka-linux,
Jabber: dimkalinux at gmail.com
Public key: 8B5EDD83


More information about the nginx-ru mailing list