Немного про nginx

iHead
На сайте с 25.04.2008
Offline
137
#61
babnicks:
Я считаю что во всем нужна мера, и процессы которые действительно параллельны надо выполнять параллельно, если это не приводит к непомерным расходом на их диспетчеризацию, именно для этого создаются многопроцессорные ЭВМ и многоядерные процессоры ;)

В разумных пределах параллельное программирование действительно необходимость, такова природа вещей, как бы Вам не хотелось обратного ;)

параллельное программирование придумали для того, чтобы иметь возможность нагрузить процессор на 100% (ОС пока не умеют это делать самостоятельно), иметь возможность масштабировать задачу на десятки, сотни и тысячи компьютеров, чтобы либо обрабатывать больше данных либо обрабатывать одни и те же данные за разное (меньшее время).

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

iHead добавил 29.10.2011 в 21:33

netwind:
Тут не надо пытаться распараллелить, чтобы нагрузить второй процессор - он и так нагружен другими клиентами.

почти одно и тоже написали :)

Рекомендуемый хостинг партнер 1С-Битрикс (https://www.ihead.ru/bitrix/), PHP-хостинг (https://www.ihead.ru/php/), доверенный партнер RU-CENTER (https://www.ihead.ru/news/573.html), официальный представитель REG.RU в Кирове (https://www.ihead.ru/news/851.html)
babnicks
На сайте с 23.10.2009
Offline
47
#62
iHead:
параллельное программирование придумали для того, чтобы иметь возможность нагрузить процессор на 100%

Его придумали для параллельного выполнения параллельных процессов :) а не для того, чтобы загружать процессор... :D

netwind, iHead, Вы что мне оба доказываете? :D Что у nginx сейчас все хорошо и не надо ничего менять, ну дык я согласен :) не будем ничего менять в nginx (тем более ни Вы, ни я, не являемся авторами данного продукта).

netwind:

Тут не надо пытаться распараллелить, чтобы нагрузить второй процессор - он и так нагружен другими клиентами.

К сожалению nginx ничего не знает о том, чем занимается второй процессор, по процессорам потоки распределяет ОС, вполне возможно что второй процессор курит бамбук, а текущий процессор загрузился на 100% и перестал адекватно отвечать ;) особенно если кто-то указал worker_processes=1 ;)

Из того, что число клиентов ЗНАЧИТЕЛЬНО превосходит количество процессоров НИКАК не следует что расходы на обмен и диспетчеризацию тоже будут значительными, я Вам это уже объяснял, все зависит от выбранной архитектуры и принципа разбиения на нити.

Я не спорю и никогда не спорил с тем, что излишние нагрузки на диспетчеризацию потоков это плохо.

Давайте кончать этот спор ни о чем :)

100% защита от спам-ботов (https://www.keycaptcha.com)
I
На сайте с 23.12.2010
Offline
25
#63
ClockWorkOrange:
Я понял. В конфиге nginx "аффинити-чего-то-там в конфиге" не нашел :)

worker_cpu_affinity

CPU affinity is represented as a bitmask (given in hexadecimal), with the lowest order bit corresponding to the first logical CPU and the highest order bit corresponding to the last logical CPU.

Examples:

CPU #0: 0x00000001

CPU #1: 0x00000002

CPU #2: 0x00000004

CPU #3: 0x00000008

CPU #0 and CPU #1: 0×00000003

CPU #2 and CPU #3: 0x0000000C

All CPUs: 0xFFFFFFFF

т.е. запустить nginx на CPU0 и CPU2

worker_cpu_affinity 0001 0100

проверить на каких ядрах работает можно так:

taskset -p PID

если в конце стоит mask: f - значит данный процесс может использовать любое ядро.

iopiop добавил 30.10.2011 в 00:26

iHead:
начать с числа ядер, которые видит ОС с на процессорах с гипертредингом. если полноценных ядер 4, а с гипетредингом 8, то ставить worker_processes 8 смысла нет. я об этом.

не догоняю я этого :-(

разжуйте пожалуйста для идиота, почему 4, а не 8? в чем плюс четырех, а не восьми? для упрощения понимания предлагаю использовать систему где стоит только ngnix и отдает только статику.

спасибо.

iHead
На сайте с 25.04.2008
Offline
137
#64
iopiop:

не догоняю я этого :-(
разжуйте пожалуйста для идиота, почему 4, а не 8? в чем плюс четырех, а не восьми? для упрощения понимания предлагаю использовать систему где стоит только ngnix и отдает только статику.
спасибо.

гипертрединг не умножает реальную производительность на 2. нет у вас 8 ядер физически при гипертрединге на 4 ядерном проце. поставить можно 8, но будет ли от этого лучше неизвестно. скорее, узким местом окажется не процессор, а диск или сеть.

это все ИМХО.

iHead добавил 30.10.2011 в 01:34

babnicks:
Давайте кончать этот спор ни о чем :)

давайте.

доказывать ничего не хотел, да и не имею для этого глубоких знаний.

I
На сайте с 23.12.2010
Offline
25
#65
iHead:
гипертрединг не умножает реальную производительность на 2. нет у вас 8 ядер физически при гипертрединге на 4 ядерном проце. поставить можно 8, но будет ли от этого лучше неизвестно. скорее, узким местом окажется не процессор, а диск или сеть.
это все ИМХО.

но вы же сами указывали коэффициент 1.6? Т.е. если поставить 8, хуже точно не будет, а лучше скорее всего будет, не так ли?

Как бы вопрос важный, если мы начнем добавлять БД и будем привязывать к ядрам, нужно же понимать сколько ядер у нас, 4 или 8.

babnicks
На сайте с 23.10.2009
Offline
47
#66
iopiop:
но вы же сами указывали коэффициент 1.6? Т.е. если поставить 8, хуже точно не будет, а лучше скорее всего будет, не так ли?

Это он про вычисление PI говорил ;) Если поставить 8, то имхо хуже не будет, за исключением того, что память сожрется.

Вопрос в другом - нужно-ли Вам там 8? Может и с 2 все прекрасно работает, зачем жрать лишнюю память, когда она так нужна для БД?

Lord Maverik
На сайте с 15.04.2003
Offline
471
#67

А у меня вот такой еще вопрос про nginx. Вчера добавлял на сайт новость, там картинок штук 10. В общем новость открылась, хотел глянуть, не тут то было.

При открытии главной страницы получил Bad Gataway от nginx. При этом админка работала и любый другие страницы открывались. Попробовал открыть главную в другом браузере - открылась. Что это такое и как с этим бороться?

RedMall.Ru (https://redmall.ru) - Товары из Китая (Таобао, Tmall) с проверкой качества, скидка для форумчан 7% Партнерская программа 2 уровня: 5% + 5%. Подробнее. (https://redmall.ru/about/partner/)
Joker-jar
На сайте с 26.08.2010
Offline
154
#68

Bad Gateway случается при недоступном бэкенде, например. Проверьте логи. Ошибка не повторяется?

Lord Maverik
На сайте с 15.04.2003
Offline
471
#69
Joker-jar:
Bad Gateway случается при недоступном бэкенде, например. Проверьте логи. Ошибка не повторяется?

Так яж говорю, внутренняя открывается при этом, и главная в другом браузере тоже.

Lord Maverik добавил 31.10.2011 в 07:50

А еще в логах всегда такая фигня есть:

2011/10/30 06:25:06 [emerg] 7111#0: open() "/var/www/nginx-logs/USER" failed (13: Permission denied)

куча строчек, где USER разные пользователи.

izbushka
На сайте с 08.06.2007
Offline
110
#70
Lord Maverik:
А еще в логах всегда такая фигня есть:

дак что тут не понятного? нет прав на /var/www/nginx-logs/USER. Дайте ему их или логи переложите/отключите

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий