2015-07-24 2 views
0

У меня есть кластер MySQL: (master, two slaves). Недавно (7 дней), я столкнулся с какой-то странной проблемой: у того же SQL разные затраты на разные хосты db. Эта проблема произошла только на несколько таблиц;Большая разница в производительности MySQL между ведущим и ведомым

Я хочу знать, почему и как решить эту проблему. Мастер стоимость 2.47sec

mysql> explain select id from notification_message where expire_time < '2015-07-23' limit 1\G 
*************************** 1. row *************************** 
      id: 1 
    select_type: SIMPLE 
     table: notification_message 
     type: range 
possible_keys: idx_expire_time 
      key: idx_expire_time 
     key_len: 6 
      ref: NULL 
     rows: 5414595 
     Extra: Using where; Using index 
1 row in set (0.00 sec) 

mysql> select id from notification_message where expire_time < '2015-07-23' limit 1\G 
*************************** 1. row *************************** 
id: 186925000 
1 row in set (2.47 sec) 

Ведомый стоимость 0.00sec

mysql> explain select id from notification_message where expire_time < '2015-07-23' limit 1\G 
*************************** 1. row *************************** 
      id: 1 
    select_type: SIMPLE 
     table: notification_message 
     type: range 
possible_keys: idx_expire_time 
      key: idx_expire_time 
     key_len: 6 
      ref: NULL 
     rows: 4999367 
     Extra: Using where; Using index 
1 row in set (0.00 sec) 

mysql> select id from notification_message where expire_time < '2015-07-23' limit 1; 
+-----------+ 
| id  | 
+-----------+ 
| 186925000 | 
+-----------+ 
1 row in set (0.00 sec) 

Вот для MySQL версии

версия Мастер-сервер: «Версия сервера: 5.6.15 -56-log Percona Server (GPL), Release rel63.0, редакция 519 "

Подчиненный сервер версии: "Версия сервера: 5.6.22-71.0-журнал Percona сервера (GPL), Release 71.0, Редакция +726"

Вот аппаратные

мастер же в качестве ведомого устройства: ОС ядро: Linux 2.6.32-431.20.3.el6.mt20150216.x86_64 ОС: CentOS CPU: Intel (R) Xeon (R) CPU E5-2630 v2 @ 2.60GHz CPU Num: 24 баран: 130GB RAID: (raid1, SAS [1TB * 2] 1TB) (рейд5, SSD [480.0GB * 6] 2.4TB)

load of master enter image description here

+0

мастер: 'ОС ядро: Linux 2.6.32-431.20.3.el6.mt20150216.x86_64 \t ОС: CentOS \t CPU: Intel (R) Xeon (R) CPU E5-2630 v2 @ 2.60GHz \t процессора Num: 24 \t барана: 130GB' ведомый: 'Ядро ОС: Linux 2.6.32-431.20.3.el6.mt20150216.x86_64 \t ОС: CentOS \t процессора Intel (R) Xeon (R) процессор E5-2630 v2 @ 2.60GHz \t процессора Num: 24 \t барана: 130GB' \t RAID: (raid1, SAS [1 ТБ * 2] 1 ТБ) (RAID5, SSD [480.0GB * 6] 2.4TB) –

+0

, запрещающий любую необходимость запускать 'анализ таблицы' для обновления статистики, и я, конечно, не рекомендовал бы это волей-неволей на 5-миллиметровых строках, мастер вряд ли сидит вокруг до такой степени, что подчиненный (или был). Сосредоточьтесь на подобной команде linux 'top'. – Drew

+0

Сервер db имеет 5 + базы данных, 100 + таблицы. Только несколько таблиц сталкиваются с этой проблемой –

ответ

0

(Замечание слишком долго поле комментария):

Существует еще некоторая информация отсутствует:

Мастер и конфигурация ведомого MySQL, то в основном память и диск данных местоположение (что, если один DB живет на SSD, а другой на дисках SAS 1TB)

Информация о загрузке на ведущем & slave: Установите инструменты как cacti с плагином percona.

Чтобы получить лучшее испытание временем запроса: Позаботьтесь, чтобы работать в «свежий», например: Тип flush query cache на ведомым и перепроверять запрос. Это создаст ситуацию, когда все данные должны быть загружены с диска.

Обычно проверка этого способа на главном нет, так как это замедлит работу системы (перезагрузка всех данных с диска для нагрева кеша занимает время (до нескольких часов в зависимости от нагрузки)).

+0

На самом деле, мастер имеет то же оборудование, что и подчиненный. –

+0

То же аппаратное обеспечение: Да, настройка аппаратного обеспечения: действительно ли база данных находится на диске, где она должна быть (тот же самый тип диска и ведомый), загрузка систем, где различия могут возникать с одним и тем же оборудованием. –

+0

'master load: $ w 11:36:55 до 112 дней, 16:24, 2 пользователей, в среднем: 1,25, 1,39, 1,40' ' slave load: w 11:38:02 up 112 days, 14:05, 1 пользователь, в среднем: 2.04, 1.91, 1.94' –

Смежные вопросы