Welcome! Log In Create A New Profile

Advanced

Ошибки на Solaris 10 x86

October 21, 2011 02:09PM
Привет.

Solaris 10 x86
nginx-1.1.5


Некий веб-сервер, раздающий статический контент. Статический контент состоит как из маленьких файлов (картинки), так и из больших дистрибутивов. 10-15 запросов в секунду, 200-700 установленных соединений, траффик 200-600 Мбит.

Чем больше число коннектов, тем больше время, проходящее между началом установления сессии и отправкой первого HTTP-запроса. Собственно, это и хотелось бы затюнить. Сейчас оно в районе 2-5 с. Хотелось бы его уменьшить настолько, насколько это возможно.

В данный момент испольуется /dev/poll:

events {
worker_connections 1024;

use /dev/poll;
devpoll_events 4096;
devpoll_changes 4096;
multi_accept on;
}

Пробовал poll/select. Большой разницы между poll и /dev/poll не заметил, на select все как-то менее позитивно (хотя и не сильно, но заметно).

Я читал архивы, и видел упоминания, что в солярке должно быть почему-то 32. Не понял и не нашел почему, разницы между 32 и другими значениями субъективно не заметил. Я бы хотел воспользоваться eventport, так как читал, что это модная и эффективная схема работы. Но когда я его включаю, то тут же получаю в логах мегатонны

2011/10/06 15:02:53 [alert] 9936#0: port_dissociate() failed (2: No such file or directory)
2011/10/06 15:02:53 [alert] 9936#0: port_dissociate() failed (2: No such file or directory)
(просто буквально мегабайты в секунду лога)

Все ссылки из гугла на эту тему ведут сюда же, в топик:
http://forum.nginx.org/read.php?21,16750

Топик я читал. Насколько я понимаю, там дело кончилось тем, что автор стал пробовать не-eventport по совету Игоря. Проблем с ulimit у меня нет, все остальное объективное из топика я постарался применить.
Хотелось бы все-таки прояснить, почему не получается с eventport ?

Второе. Для оптимизации работы с большими файлами я бы хотел включить directio. Когда я его включаю, то первые несколько минут все просто взлетает. Однако, по прошествии некоторого времени, все опять скатывается к этим 2-5 с, с тенденцией к увеличению этого времени по мере увеличения числа сессий. А в логах тем временем появляются подобные записи:

2011/10/21 21:07:44 [alert] 29308#0: *26142 directio(DIRECTIO_ON) "/usr/local/public/backups/files/files2/ea_games/fifa_12/fifa12_pc.zip" failed (25: Inappropriate ioctl for device), client: 42.113.6.222, server: www.files2.enaza.ru, request: "GET /ea_games/fifa_12/fifa12_pc.zip HTTP/1.1", host: "files2.enaza.ru", referrer: "http://blog.vnnclub.com/2011/09/download-fifa-12-full-crack-100-1-link.html"

(если у кого-то возникает вопрос по поводу легальности контента - все в порядке и ничего противоправного, просто реферрер видимо с какого-то модного молодежного дорвэя).

Записей не то что бы очень много по сравнению с предыдущей проблемой, но порядком, и они появляются постоянно.

Я полагаю, что "(25: Inappropriate ioctl for device)" означает, что все плохо, и поэтому directio отключил.
Таким образом, всем тем, что, по мнению документации и многочисленных обзоров является быстрым и правильным, воспользоваться не удалось.
Можно ли как-то исправить эту ситуацию ? Со своей стороны готов предоставить детальные логи/трэйсы и т.д.

Спасибо.
Subject Author Posted

Ошибки на Solaris 10 x86

drook October 21, 2011 02:09PM

Re: Ошибки на Solaris 10 x86

Igor Sysoev November 09, 2011 06:18AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 275
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready