poiuty: Проверьте и посмотрите вывод по ps aux
Процессы пхп резко не умирают, если выставить приоритет - особо мешать остальным не будет, если это не форк
cgroups очень слабо документирован в интернете... По крайней мере новый.
Вижу только три утилиты по cgroups:
cgclear
cgconfigparser
cgrulesengd
Причём первая важная не возвращает никакого результата (прочиталась или нет - кто знает?)
cgconfigparser /etc/cgconfig.conf
Как сделать группы и чтобы они загружались при перезагрузке - не понятно. В ручную монтировать точно не вариант...
cgrulesengd
Error: libcgroup initialization failed, Cgroup is not mounted
poiuty: Процессы не работают 10 секунд под нагрузкой.
Если сделано умышленно (например для теста) или скрипт очень кривой (например какой-нибудь cron или вообще тот, который отключает тайм лимит [хотя конечно лучше это запретить, но всё же]), то он может загружать полностью ядро/ядра долго.
poiuty: Два варианта - "жесткие лимиты, пусть использует N ресурсов и не больше" - "мягкие лимиты, пусть лучше быстрее обработает"
Для первого - это поднять виртуалки и раскидать туда клиентов. Каждому гарантировано CPU, RAM. Или использовать cgroups -> для юзеров на CPU и RAM. PHP-PFM можно запускать под разными пользователями. Для RAM - лучше выставить лимиты на кол-во процессов php. И лимит делать только по CPU.
Для LAMP - лимит делать на I/O, не особо актуально. Грузит больше mysql, но есть userstat у percona.
Мне если честно любой из предложенных вами вариантов подойдёт. Но в идеале "жесткие лимиты", правда хотелось бы без виртуалок...
ISPManager не использую и не планирую. Можно как-нибудь без него это сделать? И если делать скрипт, то как часто его запускать? Ну т.е. понятно что запуск один раз навечно, но как часто он должен выполнять действия - если раз в милисекунду - не будет ли слишком грузить CPU? Прежде всего волнуют динамические фреймворки (php, perl, node.js, ruby)
Я понимаю, но я новичёк, подскажите, как хотя бы в теории это реализовывается, я в основном про второй вариант (когда надо честное разделение по домену)? Написать скрипт на bash? Модифицировать ядро?
p.s. У вас полезный блог. Может напишите статейку про мою проблему?)
beginerx: ivan-lev у вас в посте в самом конце также шифрованная ссылка с рефкой! :)
через bit.ly :)
Есть такая поговорка - в чужом глазу соринку видим а в своем бревно не замечаем!
Это про вас!
Спалим и вашу рефку - вот прямая ссылка http://100vps.net
себе пока взял десяточек аков вот тут http://www.000webhost.com/ (ну там сами понимает через тор проджект надо, раша ай-пи не дадут фришый полнофункциональный аккаунт)
Таких умников весь форум. Нечему удивлятся. Сидят с репутацией набитой своими даблами и думают, что они короли всея руси.
Проверьте и посмотрите вывод по ps aux
Процессы пхп резко не умирают, если выставить приоритет - особо мешать остальным не будет, если это не форк
cgroups очень слабо документирован в интернете... По крайней мере новый.
Вижу только три утилиты по cgroups:
Причём первая важная не возвращает никакого результата (прочиталась или нет - кто знает?)
Как сделать группы и чтобы они загружались при перезагрузке - не понятно. В ручную монтировать точно не вариант...
Процессы не работают 10 секунд под нагрузкой.
Если сделано умышленно (например для теста) или скрипт очень кривой (например какой-нибудь cron или вообще тот, который отключает тайм лимит [хотя конечно лучше это запретить, но всё же]), то он может загружать полностью ядро/ядра долго.
я раз в 3 минуты пускаю, но при этом еще собираю стату
http://poiuty.ru/grafiki-cpu-load-na-virtualnom-xostinge.html
Не совсем понятно.
Скрипты PHP например обычно работают не больше, чем 10 секунд. Если запускать раз в 3 минуты, то сама проблема (занятые ресурсы) никуда не денется.
Можете накодить скрипты и пускать их по крону.
Но как часто?
Два варианта
- "жесткие лимиты, пусть использует N ресурсов и не больше"
- "мягкие лимиты, пусть лучше быстрее обработает"
Для первого - это поднять виртуалки и раскидать туда клиентов. Каждому гарантировано CPU, RAM.
Или использовать cgroups -> для юзеров на CPU и RAM. PHP-PFM можно запускать под разными пользователями. Для RAM - лучше выставить лимиты на кол-во процессов php. И лимит делать только по CPU.
Для LAMP - лимит делать на I/O, не особо актуально. Грузит больше mysql, но есть userstat у percona.
И второй случай, можно менять nice пользователям
Для ISPmanager -> php как fcgi
http://poiuty.ru/ispmanager-menyaem-nice-pri-dlya-processov.html (набросок)
А так же блокировать тех, кто нагрузил весь сервер (например форк или ddos)
http://poiuty.ru/process-killer-dlya-ispmanager-pro.html (набросок)
Мне если честно любой из предложенных вами вариантов подойдёт. Но в идеале "жесткие лимиты", правда хотелось бы без виртуалок...
ISPManager не использую и не планирую. Можно как-нибудь без него это сделать? И если делать скрипт, то как часто его запускать? Ну т.е. понятно что запуск один раз навечно, но как часто он должен выполнять действия - если раз в милисекунду - не будет ли слишком грузить CPU? Прежде всего волнуют динамические фреймворки (php, perl, node.js, ruby)
Могу ещё предложить 2 VDS с 200 ГБ диском, 1 ядром и 4 ГБ памяти [и всегда можете заказать ещё, когда надо]. Цена будет примерно такая же.
Честно - особой разницы нет, если вам не важно 50-100 мс задержки (бывает иногда на атомах). Хоть Xeon 2013 года, хоть Atom.
nice, ionice, cgroups
Я понимаю, но я новичёк, подскажите, как хотя бы в теории это реализовывается, я в основном про второй вариант (когда надо честное разделение по домену)? Написать скрипт на bash? Модифицировать ядро?
p.s. У вас полезный блог. Может напишите статейку про мою проблему?)
трассировку можно было посмотреть, если пинг нужен то мой пингуется 188.165.233.54
На какой локации у вас сервер, если не секрет?
ivan-lev у вас в посте в самом конце также шифрованная ссылка с рефкой! :)
через bit.ly :)
Есть такая поговорка - в чужом глазу соринку видим а в своем бревно не замечаем!
Это про вас!
Спалим и вашу рефку - вот прямая ссылка http://100vps.net
себе пока взял десяточек аков вот тут http://www.000webhost.com/
(ну там сами понимает через тор проджект надо, раша ай-пи не дадут фришый полнофункциональный аккаунт)
Таких умников весь форум. Нечему удивлятся. Сидят с репутацией набитой своими даблами и думают, что они короли всея руси.
Рассмотрите такой вариант:
VDS (KVM)
400 ГБ места на SATA3 (с Hardware RAID)
2 ядра Intel Xeon
8 ГБ оперативной памяти (гарантированно)
Порт 100 мбит на порту 1 Гбит, 50 мбит / сек круглосуточно можете лить
Торренты можно (но не забудьте про anti-p2p организации, не кричите о вашем сервере на каждом шагу :D)
Абузоустойчивость приемлимая (48 часов на удаление контента у вас будет)
Доступ по VNC (бесплатный и круглосуточный)
Администрирование от себя лично предоставлю
ОС только Linux
Локация: Германия, Мюнхен
44$ / мес с учётом всех налогов (первый раз оплата за два месяца вперёд)
Оплата через любой доступный метод (в частности WM, Yandex, карточки)
Также можно с диском в 800 ГБ, но цена чуть выше вашего бюджета (другие параметры тоже увеличиваются).