mysql 5.7 InnoDB: page_cleaner: 1000ms intended loop took

baas
На сайте с 17.09.2012
Offline
161
1944

Здравствуйте.

Поясните пожалуйста.

Обновился с mysql 5.6 до 5.7.

Появились строки в логе ошибок InnoDB: page_cleaner: 1000ms intended loop took

2020-01-04T12:59:04.212727Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 9458ms. The settings might not be optimal. (flushed=15000 and evicted=0, during the time.)

2020-01-04T13:02:50.772664Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 10831ms. The settings might not be optimal. (flushed=15003 and evicted=0, during the time.)
2020-01-04T13:03:25.009491Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 4872ms. The settings might not be optimal. (flushed=8797 and evicted=0, during the time.)
2020-01-04T13:08:28.329724Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 10894ms. The settings might not be optimal. (flushed=15000 and evicted=0, during the time.)
2020-01-04T13:08:47.206732Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 9736ms. The settings might not be optimal. (flushed=15000 and evicted=0, during the time.)

Почитал про эти сообщения и как то не совсем понятно.

Очищаются грязные страницы памяти, по умолчанию в моем случае 20 потоков.

Параметры пула innodb в базе.

innodb_buffer_pool_size = 20G

innodb_buffer_pool_instances = 20

Указал меньший шаг очистки страниц innodb_lru_scan_depth = 256

Не пойму, как мне рассчитать оптимальный параметр этот.

Настройка BSD систем. (https://www.fryaha.ru) Знание сила, незнание Рабочая сила!
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#1

У сервера хватает ресурсов? Диск не перегружен? mysql настраивался вообще?

Какой тип данных, много идёт записи или в основном чтение?

Указал меньший шаг очистки страниц innodb_lru_scan_depth = 256

Это полумера.

5.7 точно последней сборки?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
baas
На сайте с 17.09.2012
Offline
161
#2
LEOnidUKG:
У сервера хватает ресурсов? Диск не перегружен? mysql настраивался вообще?
Какой тип данных, много идёт записи или в основном чтение?



Это полумера.

5.7 точно последней сборки?

mysql57-client-5.7.28_2            =
mysql57-server-5.7.28_2 =

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

Структура таблиц innodb.

Ресурсов пока хватает.

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#3

можете выложить весь конфиг mysql?

baas
На сайте с 17.09.2012
Offline
161
#4
LEOnidUKG:
можете выложить весь конфиг mysql?

[client]

port=3306
socket=/tmp/mysql.sock
default-character-set = utf8
[mysqld]
sql-mode= NO_AUTO_CREATE_USER
explicit_defaults_for_timestamp = 1
innodb_lru_scan_depth = 256
skip_ssl
wait_timeout = 600
interactive_timeout = 600
datadir=/var/db/base_mysql/mysql
tmpdir = /var/db/mysql_tmpdir
bind-address=10.10.10.2
port=3306
socket=/tmp/mysql.sock
skip-name-resolve
skip-external-locking
default-storage-engine = innodb
max_connections = 250
key_buffer_size = 40M
max_allowed_packet = 180M
sort_buffer_size = 10M
read_buffer_size = 10M
join_buffer_size = 70M
max_length_for_sort_data = 5M
read_rnd_buffer_size = 12M
max_heap_table_size=220M
tmp_table_size=220M
table_open_cache = 12000
table_open_cache_instances = 8
myisam_sort_buffer_size = 40M
query_cache_size= 150M
query_cache_type = 1
query_cache_limit= 1M
thread_cache_size = 50
innodb_buffer_pool_size = 20G
innodb_log_file_size = 2G
innodb_buffer_pool_instances = 20
innodb_write_io_threads = 52
innodb_read_io_threads = 52
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 18M
transaction-isolation = READ-COMMITTED
innodb_flush_method = O_DIRECT
innodb_io_capacity=15000
innodb_io_capacity_max=55000
long_query_time=1
log_error = /mnt/backup/log/mysql/errors.log
[mysqldump]
quick
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#5

query_cache_size= 150M

В 64 максимум выставляйте.

Если же у вас диски SSD вообще отключайте кэширование.

innodb_flush_log_at_trx_commit = 2

выставляйте в 0 если у вас не банк и потеря данных за 1-2 секунды не важно. Ну или хотя бы 1

После того как выставили:

innodb_lru_scan_depth = 256

Ошибка исчезла из логов?

---------- Добавлено 04.01.2020 в 17:42 ----------

Также у вас базы сколько весят? Они все помещаются в 20 ГБ, которые вы выделили?

baas
На сайте с 17.09.2012
Offline
161
#6
LEOnidUKG:
query_cache_size= 150M
В 64 максимум выставляйте.
Если же у вас диски SSD вообще отключайте кэширование.

innodb_flush_log_at_trx_commit = 2
выставляйте в 0 если у вас не банк и потеря данных за 1-2 секунды не важно. Ну или хотя бы 1

После того как выставили:
innodb_lru_scan_depth = 256

Ошибка исчезла из логов?

---------- Добавлено 04.01.2020 в 17:42 ----------

Также у вас базы сколько весят? Они все помещаются в 20 ГБ, которые вы выделили?

По поводу этого параметры (innodb_flush_log_at_trx_commit = 2) пока тестирую поведения сервера. До этого параметр равнялся 0.

SSD диски, думаю в дальнейшем отказаться от параметра query_cache_size, в mysql 8 он вообще убран.

baas
На сайте с 17.09.2012
Offline
161
#7

за 12 часов работы сервера много записей

2020-01-05T06:38:01.854422Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 6857ms. The settings might not be optimal. (flushed=11520 and evicted=0, during the time.

Базы все вмещаются в пул, я на всякий случай пул сделал на 1,5 гига больше.

Так как же все таки оптимизировать этот параметр, я не до конца понимаю этот параметр, везде как то размыто написано.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий