Mysql на FreeBSD 7.3 2-процессора (8 ядер) проблема!

Технические вопросы по UTM 5.0
Закрыто
anclbob
Сообщения: 55
Зарегистрирован: Сб окт 31, 2009 19:39

Mysql на FreeBSD 7.3 2-процессора (8 ядер) проблема!

Сообщение anclbob »

Имеется выделенный сервер для mysql. Ядро биллинга тож стоит на freebsd но на отдельном сервере. Последнее время стало очень сильно притормаживать админка, по несколько минут ждем пока откроется выбранный абонент, иногда даже netflow не тем пользователям пишется (трафик) когда сильно тормозит и тд. Проблему нашли. На сервере mysql одно ядро из восьми постоянно загружено на 100%. Посмотрели командой show processlist . В нем 20 процессов от сервера с ядром 19 в слипе и один работает и переодически запросы меняются.
Подскажите как можно разгрузить mysql server ?
Какие таблицы в базе нетапа можно отчищать?
Можно ли вообще на FreeBSD добиться распределения по ядрам если запрос идет с одного места (ядра)?

ПС. Жесткий диск sas не загружен (проверено gstat) . Другие ядра используются когда пользователи смотрят свою статистику. База весит уже порядка 40ГБ


Может перескочить на линукс, если стоит то на какой на данный момент выбор стоит между gentoo и debian

Стоит ли ядро переводить тоже на линукс?

littlesavage
Сообщения: 120
Зарегистрирован: Вс ноя 22, 2009 02:41
Откуда: Чебоксары

Re: Mysql на FreeBSD 7.3 2-процессора (8 ядер) проблема!

Сообщение littlesavage »

anclbob писал(а): Какие таблицы в базе нетапа можно отчищать?
Можно ли вообще на FreeBSD добиться распределения по ядрам если запрос идет с одного места (ядра)?
Может перескочить на линукс, если стоит то на какой на данный момент выбор стоит между gentoo и debian
Стоит ли ядро переводить тоже на линукс?
show full processlsit какой выполняющийся дольше всего запрос показывает?
Mysql не умеет распределять выполнение 1 запроса на несколько ядер, ни на одной OS. Линукс тут не поможет.

1. Поправить индексы на discount_transactions*: viewtopic.php?t=7624#50041
2. Заархивировать закрытые периоды в таблицы типа MyISAM: http://www.netup.ru/UTM5/articles/archive_table.php
3. Запаковывать архивные таблицы myisampack'ом (с восстановлением индексов через myisamchk).

Производительность улучшится в разы.

anclbob
Сообщения: 55
Зарегистрирован: Сб окт 31, 2009 19:39

Сообщение anclbob »

ок попробуем.

по поводу того что mysql не умеет по нескольким ядрам один запрос разносить это точно?
Читал
=========================================
Мы конечно уже обрадовались, думается, ну вот же он – наш Database server, но-но, не тут то было, а как же my.cnf?
Открываем /etc/my.cnf, и начинаем стучать в бубен (то есть определять конфигурационные переменные MySQL):

thread_concurrency. Если у вас много памяти и много таблиц, то для увеличения производительности, при запуске сервера рекомендуется использовать следующие формулы, учитывающие специфику работы mysql под различные ОС:

Для FreeBSD: thread_concurrency = (кол-во процессоров)*(кол-во ядер в одном процессоре)
Для Linux: thread_concurrency = (кол-во процессоров)*(кол-во ядер в одном процессоре)*3
Почему на Linux можно давать можно и нужно давать больше потоков, чем на FreeBSD? Это связано с тем, что Linux умеет распределять и управлять потоками между ядрами, а FreeBSD не умеет, зато FreeBSD умеет эффективно распределять процессы, чего, в свою очередь, не умеет Linux.

взято тут
http://web-scalability.com/2008/05/30/m ... %BC%D1%83/
===============================================
Т.е. тут не совсем верная инфа?

Закрыто