Скорость работы MySQL-запросов на примере TestDoctor

mysql optimization query log

Скорость работы MySQL-запросов на примере TestDoctor

SET GLOBAL innodb_flush_log_at_trx_commit = 2;

[15:17:30 | Изменены 15:17:38] Виноградов Николай: Коллеги, давайте сделаем эксперимент. Проверим наксколько изменится время выполнения запросов при отключенном rsync

[15:17:58] Виноградов Николай: Валера, запусти эти запросы еще раз сейчас и сообщи нам время выполенения

[15:18:23] Виноградов Николай: Затем Игорь отключит rsync и попробуем эти запросы еще раз

[15:18:30] Кадышев Валерий: минуту

[15:18:41] Виноградов Николай: Игорь, посмотри показатели процессора и распределение памяти

[15:19:32] Кадышев Валерий: 0.19430112838745

SQL: UPDATE `orderAttachments` SET `inputQuality` = ‘new’ WHERE `idorderAtt` =  ‘4459’

[15:19:38] Sanko Igor: IP: 5.9.253.58

rsync шел на 24 и 54 минуте каждого часа - отключил.

[15:20:00] Sanko Igor: load average: 1.20, 1.19, 1.28

[15:20:13] Кадышев Валерий: он еще запущен

[15:20:21] Sanko Igor: Cpus: 49.0%us,  4.8%sy,  0.0%ni, 42.1%id,  3.8%wa,  0.0%hi,  0.0%si,  0.3%st

Mem:   2097152k total,  2096200k used,      952k free,        0k buffers

[15:20:36] Sanko Igor: Рублю процесс rsync ?

[15:20:56] Кадышев Валерий: это точно не мне решать

[15:21:15] Кадышев Валерий: я не знаю что он делает и что повлечет его убийство

[15:21:47] Sanko Igor: Прервется текущий бэкап и высвободятся ресурсы ВМ.

[15:21:50] Кадышев Валерий: в принципе думаю можно убить

[15:22:22] Кадышев Валерий: njs@testdoctor:~$ ps axww | grep rsync

470 ?        R      2:49 rsync -rzp --del /var/www/trg_partner/www/OrderFiles /home/salvor/backup

471 ?        S      0:00 rsync -rzp --del /var/www/trg_partner/www/OrderFiles /home/salvor/backup

472 ?        S      0:30 rsync -rzp --del /var/www/trg_partner/www/OrderFiles /home/salvor/backup

3 одинаковых, надо ли?

[15:22:55] Sanko Igor: Многопоточный режим работы.

[15:23:14] Кадышев Валерий: ну что, киляешь?

[15:23:19] Sanko Igor: Если готовы тестировать сейчас, то убиваю.

[15:23:24] Виноградов Николай: давай

[15:23:51] Sanko Igor: Готово

[15:24:18] Кадышев Валерий: я ожидал несколько более радужного будущего

[15:24:26] Кадышев Валерий:  0.1273 сек

[15:24:34] Sanko Igor:  load average: 0.79, 1.06, 1.21

[15:24:52] Кадышев Валерий: в общем надо лечить сервер mysql

[15:25:55] Виноградов Николай: может перестарт сервиса поможет?

[15:26:10] Виноградов Николай: давайте попробуем

[15:26:20] Виноградов Николай: msqld

[15:26:26] Sanko Igor: Делаю..

[15:26:27] Кадышев Валерий: сомневаюсь

[15:26:48] Sanko Igor: гтов

[15:26:59] Кадышев Валерий: 0.2 сек

[15:27:06] Sanko Igor: load average: 0.35, 0.73, 1.05

[15:27:20] Виноградов Николай: Валера, повтори еще раз

[15:27:22] Кадышев Валерий: я пошел в консоль

[15:27:29] Кадышев Валерий: 0.18

[15:27:33] Кадышев Валерий: пойду explain сделаю

[15:28:19] Sanko Igor: Может кеширующий сервис типа pgbouncer есть под мускуль?

[15:28:37] Кадышев Валерий: не надо лечить симптомы

[15:28:57] Виноградов Николай: Валера, этот запрос

UPDATE `orderAttachments` SET `inputQuality` = ‘new’ WHERE `idorderAtt` =  ‘4459’

[15:29:00] Виноградов Николай: ?

[15:29:17] Кадышев Валерий: да

[15:29:23] Кадышев Валерий: mysql> show profile for query 1;

+----------------------+----------+

| Status               | Duration |

+----------------------+----------+

| starting             | 0.000063 |

| checking permissions | 0.000009 |

| Opening tables       | 0.000025 |

| System lock          | 0.000010 |

| init                 | 0.000058 |

| Updating             | 0.000072 |

| end                  | 0.000013 |

| query end            | 0.130489 |

| closing tables       | 0.000017 |

| freeing items        | 0.000022 |

| logging slow query   | 0.000003 |

| cleaning up          | 0.000003 |

+----------------------+----------+

12 rows in set 0.00 sec

[15:29:24] Виноградов Николай: многовато будет

[15:30:18] Виноградов Николай: ладно, с Морозюком обсудим этот вопрос

[15:30:43] Виноградов Николай: Игорь, спасибо, пока всё. RSYNC не включай. На тестовом он не нужен

[15:30:51] Sanko Igor: OK

[15:31:05] Виноградов Николай: Игорь, как распределена память? free

[15:31:23] Виноградов Николай: может из-за свопа?

[15:31:42] Sanko Igor: root@testdoctor:~# cat /proc/meminfo

MemTotal:        2097152 kB

MemFree:         1860884 kB

Cached:           108728 kB

Active:           221868 kB

Inactive:           2640 kB

Activeanon:     113252 kB

Inactiveanon:     2528 kB

Activefile:     108616 kB

Inactivefile:      112 kB

Unevictable:           0 kB

Mlocked:               0 kB

SwapTotal:        524288 kB

SwapFree:         505736 kB

Dirty:                 0 kB

Writeback:             0 kB

AnonPages:        115780 kB

Shmem:              9336 kB

Slab:              11748 kB

SReclaimable:       4460 kB

SUnreclaim:         7288 kB

[15:31:58] Sanko Igor: Свопа нет

[15:33:02] Виноградов Николай: вроде памяти свободной достаточно

[15:33:20] Виноградов Николай: Всё, спасибо Игорь!

[15:33:26] Кадышев Валерий: помогла опция SET GLOBAL innodb_flush_log_at_trx_commit = 2;

[15:33:40] Виноградов Николай: И какой результат запроса?

[15:33:59] Кадышев Валерий: 0.0005

[15:34:04] Sanko Igor: y

[15:34:09] Виноградов Николай: в лог писал

[15:34:33] Кадышев Валерий: что мешало писать быстро? диск медленный?

[15:35:40] Виноградов Николай: диск медленный + виртуальная машина. Мы не знаем ее настроек, это делал Сусин

[15:35:53] Виноградов Николай: мы имеем доступ только уже к самой виртуальной машине

[15:36:17] Кадышев Валерий: у меня тоже под ВМ, но чтобы апдейт по PK 0.3сек, это ахтунг

[15:37:08] Кадышев Валерий: в общем проблему локализовали, опцию я оставляю , а вы с Морозюком тогда окончательно решите что с ней делать. ок?