• XSS.stack #1 – первый литературный журнал от юзеров форума

Ботнет: оптимизация быстродействия на сервере.

laMRim

HDD-drive
Пользователь
Регистрация
03.08.2012
Сообщения
24
Реакции
0
Братцы, приветствую, вопрос на засыпку:

Залил на Zeus сегодня 10k ботов, сервер кряхтит, но работает, однако запросы по HTTP обрабатывает крайне медленно, да и вообще в целом работает медленно - админку открыть сложно, я увеличил количество оперативной памяти до двух гигов, однако на быстродействии это практически не сказалось, какие идеи как снять напряжение с сервера, может здесь уже дело в процессоре или есть возможность оптимизировать быстродействие настройкой?
Убить ботов не предлагать)



Да, и вот еще что, при попытке войти в админку, не всегда, но иногда, появляется ошибка: The MySQL error was: Too many connections, учитывая трудное положение сервера, стоит ли увеличить переменную max_connections в my.cnf и если да, то да какого количества. Спасибо.
 
попробуй снести апач и вместо него поставить nginx с php-fpm

> стоит ли увеличить переменную max_connections в my.cnf и если да, то да какого количества.

стоит, до 1000. но сначала сделай
Код:
echo "* - nofile 100000" > /etc/security/limits.d/nofile.conf
т.к. по дефолту у мускула низкий лимит на кол-во открытых файлов, поэтому больше 151 коннекта ты не поднимешь без такого тюнинга.
 
laMRim
Из общих простейших советов:
1) Заменить апачемонстра на lighttpd/nginx/etc
2) Поставить кешировщик PHP
3) В MySQL например убрать неиспользуемые движки и фичи

А во что упирается-то?
 
Нужно делать профилирование, дабы точно определить узкое место. Предположу, что это скорее всего все же бд. Для общей профилактики можно воткнуть какой-нибудь http-акселлератор, кэшер промежуточного кода, мемори кэшер какой-нить вроде memcached, сменить апач на тот же жинкс (как уже предложили, но боюсь это ситуацию кардинальным образом не поправит), сменить стандартный mysql на что-нибудь доработнное вроде mariadb. Но без определения источника проблем это все пальцем в небо. Что до памяти, то чем больше мемори будет выделено мускулу, тем больше он сможет закэшировать, но в случае больших объемов данных в бд это все будет смахивать на стрельбу с пневматики по царь-танку. В память в этом случае можно вынести, например, какие-либо важные массивы данных, увеличить пул памяти под индексы и т.д.
 
12309, DASM32, WennY

Спасибо за ответы друзья!

Проснулся утром, после залива 10к напряжение спало, сервер справляется, уже на протяжении суток онлайн 1000-1300 ботов, полёт нормальный.

Однако перед очередными инсталлами я все же поменяю apache на nginx и попробую по вашему совету оптимизировать mysql, поглядим.

Пытался увеличить переменную max_connections как договаривались, но почему-то при попытке добавить исправления в my.cnf, mysqld отказывается стартовать, в /var/log/:

Код:
[ERROR] /usr/libexec/mysqld: unknown variable 'max_connections = 500',
пока увеличил на всякий случай просто так, до перезагрузки mysql:

Код:
show variables like "max_connections";
set global max_connections = 500;
В настоящий момент боты отстукивают в базу, а также репорты складываются в отдельную папку на сервере для удобства последующего парсинга - хотелось бы узнать как сильно запись в файл нагружает Apache, может быть стоит отключить данную функцию и оставить только базу?
 
Повторюсь: нужен анализ на конкретном примере, иначе это все торололо. При большой активности и толстом файле могут возникать всякие интернал-ерроры. А при кривой реализации локов ещё и логи записываться имеют шанс как ни попадя.
 
Покури маны на тему оптимизация mysql. Примеров разбора проблем очень много.
А так же на русском расписано какой параметр за что отвечает.

p.s. запись в файл дает меньшую нагрузку нежели запись в БД.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх