Скорость работы 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] Кадышев Валерий: в общем проблему локализовали, опцию я оставляю , а вы с Морозюком тогда окончательно решите что с ней делать. ок?