Percona 5.7 медленно «отправляет данные» после обновления с MySQL 5.5 - PullRequest
0 голосов
/ 26 ноября 2018

После обновления Mysql 5.5 до Percona 5.7 приложение движется очень медленно.Я не могу оптимизировать запрос, потому что он скомпилирован с приложением. Единственное, что я могу сделать, - это оптимизировать сервер MySQL (или конфигурацию сервера)

Я должен упомянуть, что вижу какой-то запрос, который возвращает многоданные (70M результата) Data dir находится на SSD.У меня 32 ГБ ОЗУ, но я выделяю 20 для Mysql (60%, потому что у нас есть и другие небольшие сервисы)

Я замечаю небольшое улучшение, если активирую кэш (это будет устаревшим)

Ниже приведен мой конфиг

ПОКАЗАТЬ ГЛОБАЛЬНЫЙ СТАТУС результат здесь

Кто-нибудь есть идеи, что улучшить MySQL конфигурации или сервера для повышения производительности?Я поставил SQL с объяснением в качестве примера.Он возвращает 672 строки данных, но занимает 30 секунд (29 остается в «Отправке данных»).

explain select l.idCodeLocation as idLocation, l.txLocation as name, l.radius as radius, l.amLat as lat, l.amLong as lng, g.isin as isin, g.isout as isout, g.onval as onval, m.isGeofenceIn as isGeofenceIn, m.geofenceInTime as geofenceInTime, m.isGeofenceOn as isGeofenceOn, v.idVeh as idveh, v.idPlateVeh as plate, v.idClient as client from sat_geofence g left join sat_clientLocation as l on (g.idLocation=l.idCodeLocation) join sat_geofence_vehicle_mtm as m on (g.idLocation=m.idLocation) join sat_vehicle as v on (m.idVeh=v.idVeh);
+----+-------------+-------+------------+--------+---------------+---------+---------+-------------------+--------+----------+----------------------------------------------------+
| id | select_type | table | partitions | type   | possible_keys | key     | key_len | ref               | rows   | filtered | Extra                                              |
+----+-------------+-------+------------+--------+---------------+---------+---------+-------------------+--------+----------+----------------------------------------------------+
|  1 | SIMPLE      | g     | NULL       | ALL    | idx           | NULL    | NULL    | NULL              |     38 |   100.00 | NULL                                               |
|  1 | SIMPLE      | m     | NULL       | ref    | idx           | idx     | 768     | Stdb.g.idLocation |      5 |   100.00 | Using index condition                              |
|  1 | SIMPLE      | v     | NULL       | eq_ref | PRIMARY       | PRIMARY | 3       | Stdb.m.idVeh      |      1 |   100.00 | Using where                                        |
|  1 | SIMPLE      | l     | NULL       | ALL    | NULL          | NULL    | NULL    | NULL              | 116952 |   100.00 | Using where; Using join buffer (Block Nested Loop) |
+----+-------------+-------+------------+--------+---------------+---------+---------+-------------------+--------+----------+----------------------------------------------------+

структура таблиц, которую я здесь разместил: https://gist.github.com/costyoancea/deee560f9c94aa2463162d7ce0556392

Спасибо, Costi

Ответы [ 3 ]

0 голосов
/ 27 ноября 2018

Вы пропускаете индекс на m.idVeh.м ссылки sat_geofence_vehicle_mtm.Сделайте дополнительный простой индекс с этим в первой позиции, пожалуйста.Для помощи в настройке просмотрите мой профиль, Сетевой профиль для контактной информации, пожалуйста.И посмотрите мои отзывы на странице магазина.

0 голосов
/ 28 ноября 2018

Предложение для вашего Linux ulimit -a ограничения

ulimit -n 65536       to increase Open File limit from 1024

Чтобы это значение сохранялось при выключении / перезапуске Linux, просмотрите этот контент,

https://glassonionblog.wordpress.com/2013/01/27/increase-ulimit-and-file-descriptors-limit/

Ваши данные могут немного отличаться из-за версии ОС.

Скорость в секунду = RPS Рекомендации для вашего раздела my.cnf [mysqld]

join_buffer_size=128K  # from 128M for a more reasonable RAM request per connection
sort_buffer_size=2M  # from ~256M for a more reasonable RAM request per connection
innodb_lru_scan_depth=100  # from 1024 to reduce CPU cycles used every SECOND
innodb_flushing_avg_loops=5  # from 30 to reduce innodb_buffer_pool_pages_dirty 5,692
table_open_cache=10000  # from 4096 to reduce opened_tables RPHr 40,456 
open_table_definitions=10000  # from 400 to reduce opened_table_definitions RPHr 21,459
thread_cache_size=100  # from 14 to reduce threads_created from 64

Ждем ваших отзывови обзор, опубликованный на моем сайте через 7 дней, пожалуйста.

0 голосов
/ 27 ноября 2018
group_concat_max_len = 18446744073709565  -- dangerously large.

Пожалуйста, укажите SHOW GLOBAL STATUS, чтобы помочь с анализом настройки.Сколько у вас оперативной памяти?

Пожалуйста, покажите нам запрос, даже если вы не можете его изменить.Возможно, мы сможем предложить индекс, который поможет.

...