poiuty

Рейтинг
144
Регистрация
16.03.2009
HostRinger:
Но как часто?

я раз в 3 минуты пускаю, но при этом еще собираю стату

http://poiuty.ru/grafiki-cpu-load-na-virtualnom-xostinge.html

Можете накодить скрипты и пускать их по крону. Можете нагуглить себе мануал по cgroups (ядро модифицировать не надо вроде)

Два варианта

- "жесткие лимиты, пусть использует N ресурсов и не больше"

- "мягкие лимиты(например изменение nice), пусть лучше быстрее обработает"

Для первого - это поднять виртуалки и раскидать туда клиентов. Каждому гарантировано 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 (набросок)

if($cpu_pool_intval < 25)
{
echo $item->name." - ".$cpu_pool_intval."\n";
}

if($cpu_pool_intval > 25 && $cpu_pool_intval < 50)
{
echo $item->name." - ".$cpu_pool_intval." RENICE!\n";
$cpu_nice = shell_exec("renice +3 -u '$item->name'");

}

if($cpu_pool_intval > 50 && $cpu_pool_intval < 75)
{
echo $item->name." - ".$cpu_pool_intval." RENICE!\n";
$cpu_nice = shell_exec("renice +4 -u '$item->name'");

}

А так же блокировать тех, кто нагрузил весь сервер (например форк или ddos)

http://poiuty.ru/process-killer-dlya-ispmanager-pro.html (набросок)

htop

/var/log/

/usr/local/ispmgr/var/

или наймите админа

или попросите саппорт хостинга посмотреть и помочь

nice, ionice, cgroups

или виртуалки, например на openvz

machoster:
У нас благотворительный фонд, можем и бесплатно выдавать :)

Давайте бесплатно, штук 10 заберу.

Для начала поставить munin + плагины для mysql, nginx и php5-fpm

Далее настроить mysql, попробовать OpCache для php

Так же смотреть, чтобы под "настроенные" конфиги - хватило оперативки.

E5-2620 -> 6 ядер 12 потоков.

Если 3306 то не надо

Animegirl:
Тогда для чего в каждом мануале пихают эти команды?

1. Как проверить идёт ли коннект вообще?
2. Если в "SHOW SLAVE STATUS\G" выдаёт "Empty set (0.00 sec)", я так понимаю, ни чего не вышло, где копать ошибку?

Сначала создаем базу и заливаем дамп, потом

Настраиваем slave /etc/mysql/my.cnf:

server-id=2
replicate-do-db=dns

Далее перезагружаем mysql

Потом, заходим в консоль mysql

mysql -uroot -p

Далее пишем

CHANGE MASTER TO MASTER_HOST='IP', MASTER_USER='USER', MASTER_PASSWORD='PASS', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=<смотри у мастера>;
start slave;

И после этого

SHOW SLAVE STATUS\G

Эта команда - покажет всю инфу, включая ошибки.

Этим sql запросом - вы первый раз указываете данные -> ип мастера, юзер, пароль и т.д.

Далее сами включаете slave и смотрите, все ли ок? Если не ок - ищите ошибку и исправляете.

И далее все будет стартовать slave при старте.

Настраиваем slave /etc/mysql/my.cnf:

server-id=2
replicate-do-db=dns
Всего: 1077