Mysql Низкая производительность MySQL на мощном железе

Вы определитесь сначала у вас сервер DB web или все сразу. Потом посчитайте нагрузку транзакции iops и тд
а потом уже надо думать куда что писать.
А начитать форумов как парвильно делать, купить железо и не понимать почемуже mysql тормозит............

Ну как бы не очень конструктивный ответ. :-)

Сейчас вопрос про MySQL. Вы написали, зачем мне SSD, если в память дескать вся база влезает. Но в базу то и писать данные нужно, и лог транзакций вести, а это - на диск сбрасывать. :-) Поэтому ремарка про SSD мне ваша не понятна.

В целом я не просил совета по выбору железа, не уверен также, что у вас есть в этом опыт, раз советуете сделать RAID 10 из SSD, видимо никогда не делали.

За комментарии спасибо, но к сожалению, из них пока совершенно не ясно куда копать и что смотреть. Если есть конкретные предложения - пишите в личку, обсудим.

Еще раз повторюсь, сейчас вопрос стоит в том, что на базовых тестах имеем низкую производительность без привязки к конкретным базам и нагрузкам.
 
Коллеги, выручайте!!! :-)

Как и чем померить, обо что спотыкается MySQL? Ни top, ни htop, ни iostat не дают ничего интересного!!!
 
fixxxer, спасибо за отклик! :-)

show full processlist на нагрузке, что в стейте?

Да ничего криминального:

для InnoDB:

Код:
 15509 | sbtest  | localhost:60360 | sbtest  | Execute |    0 | Sorting result      | SELECT c from sbtest where id between 265378 and 265477 order by c          |
| 15510 | sbtest  | localhost:60361 | sbtest  | Execute |    0 | Copying to tmp table | SELECT DISTINCT c from sbtest where id between 250528 and 250628 order by c |
| 15511 | sbtest  | localhost:60362 | sbtest  | Execute |    0 | Sorting result      | SELECT c from sbtest where id between 251532 and 251631 order by c          |
| 15512 | sbtest  | localhost:60363 | sbtest  | Execute |    0 | Sorting result      | SELECT c from sbtest where id between 250460 and 250559 order by c          |
| 15513 | sbtest  | localhost:60364 | sbtest  | Execute |    0 | Copying to tmp table | SELECT DISTINCT c from sbtest where id between 248824 and 248924 order by c |
| 15514 | sbtest  | localhost:60365 | sbtest  | Execute |    0 | Updating            | UPDATE sbtest set k=k+1 where id=?                                          |
| 15515 | sbtest  | localhost:60366 | sbtest  | Execute |    0 | Sorting result      | SELECT DISTINCT c from sbtest where id between 248853 and 248953 order by c |
| 15516 | sbtest  | localhost:60367 | sbtest  | Execute |    0 | Sorting result      | SELECT c from sbtest where id between 250052 and 250151 order by c          |
| 15517 | sbtest  | localhost:60368 | sbtest  | Execute |    0 | Sorting result      | SELECT c from sbtest where id between 251391 and 251490 order by c          |
| 15518 | sbtest  | localhost:60369 | sbtest  | Execute |    0 | Copying to tmp table | SELECT DISTINCT c from sbtest where id between 249168 and 249268 order by c

Или вот так:

Код:
| 15509 | sbtest  | localhost:60360 | sbtest  | Execute |    0 | Copying to tmp table | SELECT DISTINCT c from sbtest where id between 250965 and 251065 order by c |
| 15510 | sbtest  | localhost:60361 | sbtest  | Execute |    0 | statistics          | SELECT c from sbtest where id=248759                                        |
| 15511 | sbtest  | localhost:60362 | sbtest  | Execute |    0 | Copying to tmp table | SELECT DISTINCT c from sbtest where id between 250830 and 250930 order by c |
| 15512 | sbtest  | localhost:60363 | sbtest  | Execute |    0 | Copying to tmp table | SELECT DISTINCT c from sbtest where id between 250270 and 250370 order by c |
| 15513 | sbtest  | localhost:60364 | sbtest  | Execute |    0 | init                | UPDATE sbtest set c=? where id=?                                            |
| 15514 | sbtest  | localhost:60365 | sbtest  | Execute |    0 | closing tables      | SELECT c from sbtest where id=254315                                        |
| 15515 | sbtest  | localhost:60366 | sbtest  | Query  |    0 | NULL                | NULL                                                                        |
| 15516 | sbtest  | localhost:60367 | sbtest  | Execute |    0 | Copying to tmp table | SELECT DISTINCT c from sbtest where id between 247701 and 247801 order by c |
| 15517 | sbtest  | localhost:60368 | sbtest  | Execute |    0 | Writing to net      | COMMIT                                                                      |
| 15518 | sbtest  | localhost:60369 | sbtest  | Execute |    0 | Copying to tmp table | SELECT DISTINCT c from sbtest where id between 251264 and 251364 order by c |

Для MyISAM результаты:

Код:
| 15569 | sbtest  | localhost:60778 | sbtest  | Query  |    0 | Waiting for table metadata lock | LOCK TABLES sbtest WRITE                                          |
| 15570 | sbtest  | localhost:60779 | sbtest  | Query  |    0 | Waiting for table metadata lock | LOCK TABLES sbtest WRITE                                          |
| 15571 | sbtest  | localhost:60780 | sbtest  | Query  |    0 | Waiting for table metadata lock | LOCK TABLES sbtest WRITE                                          |
| 15572 | sbtest  | localhost:60781 | sbtest  | Query  |    0 | Waiting for table metadata lock | LOCK TABLES sbtest WRITE                                          |
| 15573 | sbtest  | localhost:60782 | sbtest  | Query  |    0 | Waiting for table metadata lock | LOCK TABLES sbtest WRITE                                          |
| 15574 | sbtest  | localhost:60783 | sbtest  | Query  |    0 | Waiting for table metadata lock | LOCK TABLES sbtest WRITE                                          |
| 15575 | sbtest  | localhost:60784 | sbtest  | Query  |    0 | Waiting for table metadata lock | LOCK TABLES sbtest WRITE                                          |
| 15576 | sbtest  | localhost:60785 | sbtest  | Execute |    0 | Sorting result                  | SELECT c from sbtest where id between 179179 and 179278 order by c |
| 15577 | sbtest  | localhost:60786 | sbtest  | Query  |    0 | Waiting for table metadata lock | LOCK TABLES sbtest WRITE                                          |
| 15578 | sbtest  | localhost:60787 | sbtest  | Query  |    0 | Waiting for table metadata lock | LOCK TABLES sbtest WRITE                                          |
 
myisam не совместим с oltp :)
Раз нагрузки нет, то потоки тупо ждут друг друга.

Это понятно, что ждут. :-) Вопрос почему? Если есть процессорное время (ни одно ядро толком не нагружается).

Как вариант попробовать включить low_priority_updates = ON

На сервере, который пока использую как эталон, этот параметр тоже выключен. Но на более убогом железе + VPS и всякая виртуализация, имеем результат в 2 раза лучше. :-(

Кто-нить может на своих серверах прогнать тест и показать результаты для сравнения? :-)
 
Да ничего криминального
Как минимум количество сортировок намекает, что сваливаемся в filesort (настоящий), и неплохо бы увеличить соответствующие буферы.
 
Как минимум количество сортировок намекает, что сваливаемся в filesort (настоящий), и неплохо бы увеличить соответствующие буферы.

Да не намекает, почему? :-) Буферы и так большие.

Пока никакие эксперименты с диском/файловой системой/настройками не дали ощутимых результатов. Может пакет какой-то кривой? Или какой-то косяк в ОС?
 
Ну, отсюда не видно :)

sysctl-и (ну, там, file-max, somaxconn итд) не дефолтные, надеюсь? Не свопится ничего?
 
Ну, отсюда не видно :)

sysctl-и (ну, там, file-max, somaxconn итд) не дефолтные, надеюсь? Не свопится ничего?


Дефолтные, но что там в них плохого? :-)

Не свопится ничего.

Нарыл вот такую тему: http://serverfault.com/questions/560652/adding-cpus-puts-mysql-5-5-debian-performance-down

Учитывая 40 виртуальных ядер прогноз неутешительный :-)
 
Вы текст вообще читаете, или только картинки смотрите?
У товарища 5.5.31 был на момент теста.
 
Думаю, я выражу общее мнение, ну или на худой конец, просто свое: чувак, ты странный. Зачем ты задаешь вопросы, если не хочешь слушать ответы?
 
А на InnoDB у вас тоже в 2 раза меньше произодительность, чем на VPS?
 
Думаю, я выражу общее мнение, ну или на худой конец, просто свое: чувак, ты странный. Зачем ты задаешь вопросы, если не хочешь слушать ответы?

Пока не увидел здесь конструктивных ответов, увы. :-) Комментарии на тему школьного курса по MySQL и размеры буферов, уж извините, не считаются,- все это было перепробовано задолго до открытия темы... :-)
 
Сверху