- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый вечер. На сервере 4 ядра, висит сайт и еще 1 процесс, который должен быть высокодоступным. Пока что в пике посещаемости сайта наблюдаются тормоза на работе того самого процесса.
Есть ли возможность как-нибудь прямо указать, какие ядра процессора может использовать (а какие ни в коем случае не должен) mysql, apache, nginx?
Суть идеи в том чтобы 4е ядро было занято только одним процессом, а первые 3 - веб частью, либо еще как-то поделить.
Пока процесс запускаю через taskset -c 3 ./command******.sh
Может надо сервер настроить или ресурсов ему больше или сайт настроить?
Кажется это - http://www-01.ibm.com/support/knowledgecenter/SSETD4_9.1.2/lsf_admin/cgroup_affinity_binding9111.dita
Для nginx worker_cpu_affinity
В FreeBSD есть cpuset (можно поправить apachectl и стартовый скрипт mysqld).
С Linux, к сожалению, знаком поверхностно.
Может, но оптимизация имеет свой предел и лучше сделать так чтобы 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/ но там не очевидно куда, буду копаться
Может быть посмотреть в сторону приоритетов?
Во 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.
... я сейчас делаю через taskset. Команда позволяет дать affinity при запуске или уже работающим процессам по pid, а apache в режиме prefork создает эти процессы сам...
При форке affinity наследуется от родительского процесса.
Так что достаточно запустить родительский процесс с нужным affinity.
что мешает ограничить apache через cgroups?
про cgroups я просто не знаю, с учетом того что это VPS доступа может и не быть
nice можно попробовать, если решит проблему - хорошо. ок, тестирую, спасибо
Metal_Messiah, OpenVZ?
нет, виртуализация xen