- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
В общем такой маленький вопросик.
У nginx worker_processes советуют ставить равным количеству ядер.
Процессор:Intel® Core™ i7-920 Quad-Core
Память:8 GB DDR3 RAM
По спецификации проца там 4 ядра, но 8 потоков.
В данном случае что лучше ставить, 4 или 8?
В общем такой маленький вопросик.
У nginx worker_processes советуют ставить равным количеству ядер.
По спецификации проца там 4 ядра, но 8 потоков.
В данном случае что лучше ставить, 4 или 8?
8
десять символов
Спасибо :)
Аналогичный вопрос.
У 2-х процессорного xeon 5650 шесть ядер на процессор. С гипертрейдингом получается 24 виртуальных процессора на сервере.
Сколько в этом случае ставить значение worker_processes?
Поставил 24.
Работает нормально. Но как проверить, что значение worker_processes выставлено оптимально?
да все очень просто - сколько тредов одновременно может выполняться, столько и нужно ставить.
У вас с гипертредами 24? Значит ставьте 24.
Я, правда, ставлю N + 1
На очень нагруженных системах можно выделить отдельно треды скажем для веб-сервера и отдельно для базы данных, чтобы программные треды не скакали по аппаратным. Но это на действительно очень нагруженных системах
Это все в теории естественно, на практике зависит от конкретного случая, какие компоненты у вас работают, как распределяется нагрузка по компонентам, какие требования у компонентов. Ну и добавьте сюда железо, которое не из одного проца состоит, есть же еще харды, сетевые карты, как прерывания распределены. Шаманство, в общем
Ну и старый принцип - работает нормально? Не трогай.
гипертрединг - вобще-то не удваивает полноценные ядра.
иногда результат может быть близок к удвоенному, но зачастую прирост от гипертрединга где-то 1.6 раза.
да и необходимости нет в большом числе процесcов nginx, т.к. внутри процесса параллелизация происходит за счет событий.
для точного и оптимального ответа лучше задать вопрос вот тут
я бы поставил 4, у вас сервер не только ведь статику отдает, но и, наверняка, динамику генерит, БД поднята (а там везде свои потоки).
Один из способов определения количества процессоров, которое "видит" система. Для Linux
гипертрединг - вобще-то не удваивает полноценные ядра.
иногда результат может быть близок к удвоенному, но зачастую прирост от гипертрединга где-то 1.6 раза.
Это так, но немного не в тему, т.к. производительность падает не из-за того, что есть недостаток ниток, а из-за того, что нитки используют общий кеш.
да и необходимости нет в большом числе процесcов nginx, т.к. внутри процесса параллелизация происходит за счет событий.
нельзя ли тут поподробнее? Я плохо понимаю как может быть параллелизация в одном потоке за счет событий - если у вас куча событий стоит в очереди и ждет выполнения, то тут не параллелизация, а наоборот как раз наоборот, последовательное выполнение.
В этом кстати недостаток систем построенных по этой схеме - теряется интерактивность, если у вас выстроилась очередь из 100 сообщений, то обрабатываются эти сообщения последовательно, и пока 99 сообщений не будет обработано, 100-е будет ждать своей очереди. В отличии от многониточных систем, где каждой нитке (грубо говоря, сообщению), дается немного времени выполнения, поэтому обрабатываться сотое сообщение вполне может начаться когда обработка первого еще не закончилась.
я бы поставил 4, у вас сервер не только ведь статику отдает, но и, наверняка, динамику генерит, БД поднята (а там везде свои потоки).
это да, надо смотреть на конкретную систему. А еще лучше вообще ничего не трогать, если все устраивает :)
иногда результат может быть близо к к удвоенному, но зачастую прирост от гипертрединга где-то 1.6 раза.
Про прирост чего Вы говорите? 1.6 раза от чего? Вы это где и когда видели УДВОЕНИЕ 😮 хоть чего-либо от использования гиппер-трейдинга? 😂
да и необходимости нет в большом числе процесcов nginx, т.к. внутри процесса параллелизация происходит за счет событий.
😂 это как ? Это что за ноу-хау "параллелизация за счет событий" ?
Параллелизация внутри nginx идет за счет создания нитей в рамках одного процесса (имеется ввиду не по кол-во коннектов, а просто что в nginx работает несколько потоков, как и в любом достаточно сложном демоне).
TC, по сабжу имхо надо понять какая доля нагрузки лежит именно на nginx, возможно как раз nginx стоит вообще загнать на 1-2 процесса (у меня лично nginx вообще в один процесс работает, так как его роль 1% от общей вычислительной нагрузки), а остальное пускай кушает mysql, php и прочие ресурсоемкие процессы.
Вобщем зависит все от того, какой у Вас сайт, какие ресурсы он потребляет больше всего.
Дело в том что nginx, сам по себе, не много ресурсов потреблеят, и возможно нет никакого смысла, а то и вообще вред (в виде лишней скушанной памяти) в увеличении кол-ва его процессов.
Параллелизация внутри nginx идет за счет создания нитей в рамках одного процесса (to iHead, почитайте на досуге в чем отличия)
хм, че-то вы тут загнули.
сцылкой не поделитесь почитать? а то быстрый гуглопоиск ниче не дает такого.
хм, че-то вы тут загнули.
сцылкой не поделитесь почитать? а то быстрый гуглопоиск ниче не дает такого.
Я не имею ввиду ветвление по кол-ву пользователей, но явно nginx внутри работает не в рамках одного потока. Ссылка :)
В этом его и отличие от apache, что апач создает потоки для каждого запроса в результате чего, в памяти могут застревать процессы, которые уже давно выполнились, но ждут пока клиент закончит прием данных.
Но и в nginx явно одновременно работает несколько потоков каждый своего назначения, одни отвечают за ввод/вывод, одни за чтение файлов, другие за проксирование.
Писать веб-сервер в ОДИН поток это очень не эффективно, так как одновременно разные коннекты находятся на разной стадии выполнения и эти стадии зачастую полностью параллельны друг-другу.
Это имхо, исходники дадут точный ответ, если он нужен :)
PS: мельком сейчас посмотрел исходники nginx, на первый взгляд все именно так, как я написал :)