Apache Nginx MySQL на разные ядра CPU

12
Metal Messiah
На сайте с 01.08.2010
Offline
163
2614

Добрый вечер. На сервере 4 ядра, висит сайт и еще 1 процесс, который должен быть высокодоступным. Пока что в пике посещаемости сайта наблюдаются тормоза на работе того самого процесса.

Есть ли возможность как-нибудь прямо указать, какие ядра процессора может использовать (а какие ни в коем случае не должен) mysql, apache, nginx?

Суть идеи в том чтобы 4е ядро было занято только одним процессом, а первые 3 - веб частью, либо еще как-то поделить.

Пока процесс запускаю через taskset -c 3 ./command******.sh

anonymous, думай что говоришь и не забывай подписать отзыв :)
LEOnidUKG
На сайте с 25.11.2006
Offline
1772
#1

Может надо сервер настроить или ресурсов ему больше или сайт настроить?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Andreyka
На сайте с 19.02.2005
Offline
822
#2
Не стоит плодить сущности без необходимости
iHead
На сайте с 25.04.2008
Offline
137
#3

Для nginx worker_cpu_affinity

В FreeBSD есть cpuset (можно поправить apachectl и стартовый скрипт mysqld).

С Linux, к сожалению, знаком поверхностно.

Рекомендуемый хостинг партнер 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)
Metal Messiah
На сайте с 01.08.2010
Offline
163
#4
Может надо сервер настроить или ресурсов ему больше или сайт настроить?

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

Ресурсов больше точно не надо, большую часть времени те что есть используются наполовину, но пока все работает не в полную мощность.

Andreyka, спасибо, но судя по команде

bsub -R "affinity[core:membind=localprefer]"./myapp

задается при запуске, так же как я сейчас делаю через taskset. Команда позволяет дать affinity при запуске или уже работающим процессам по pid, а apache в режиме prefork создает эти процессы сам...

iHead, отдельное спасибо, это вроде бы оно. Стояло

worker_processes 2;

добавил

worker_cpu_affinity 0001 0010;

буду смотреть.

Что касается mysql, нашел информацию о innodb_thread_concurrency, innodb_write_io_threads, innodb_read_io_threads но там ни слова о том как задать конкретные ядра, только рекоммендация давать конкуренцию 2*количество ядер, да и у меня myisam.

Больше про mysql и apache ничего не нашел.

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

Еще есть вариант вклеить запуск через taskset в скрипты, лежащие в /etc/init.d/ но там не очевидно куда, буду копаться

[Удален]
#5

Может быть посмотреть в сторону приоритетов?

Во FreeBSD есть nice.

Nice runs command at a low priority. (Think of low and slow). If -number is not given, nice assumes the value 10. The priority is a value in the range -20 to 20. The default priority is 0, priority 20 is the lowest possible. Nice will execute command at priority number relative to the priority of nice. Higher priorities than the current process pri- ority can only requested by the super-user. Negative numbers are expressed as --number.

J
На сайте с 20.02.2014
Offline
120
jkm
#6
Metal_Messiah:
... я сейчас делаю через taskset. Команда позволяет дать affinity при запуске или уже работающим процессам по pid, а apache в режиме prefork создает эти процессы сам...

При форке affinity наследуется от родительского процесса.

Так что достаточно запустить родительский процесс с нужным affinity.

M
На сайте с 30.08.2010
Offline
92
#7

что мешает ограничить apache через cgroups?

Metal Messiah
На сайте с 01.08.2010
Offline
163
#8

про cgroups я просто не знаю, с учетом того что это VPS доступа может и не быть

nice можно попробовать, если решит проблему - хорошо. ок, тестирую, спасибо

Glueon
На сайте с 26.07.2013
Offline
172
#9

Metal_Messiah, OpenVZ?

Есть много IP-сетей в аренду под прокси, парсинг, рассылки (optin), vpn и хостинг. Телега: @contactroot ⚒ ContactRoot команда опытных сисадминов (/ru/forum/861038), свой LIR: сдаем в аренду сети IPv4/v6 (/ru/forum/1012475).
Metal Messiah
На сайте с 01.08.2010
Offline
163
#10

нет, виртуализация xen

12

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