powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Innodb высокий IO без запущенных процессов
6 сообщений из 6, страница 1 из 1
Innodb высокий IO без запущенных процессов
    #39843594
Григорий2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,

centos7
10.0.27-MariaDB

Запущенный, но не использующийся mysql сервер пишет и читает на диск с ненормальной скоростью. В пиках до 10мб/c:
2455 be/4 mysql 2.40 M/s 0.00 B/s 0.00 % 97.34 % mysqld --basedir=/usr --datadir=/var/lib/mysql
2457 be/4 mysql 0.00 B/s 5.81 M/s 0.00 % 1.34 % mysqld --basedir=/usr --datadir=/var/lib/mysql

При этом в show full processlist, и INNODB_TRX таблицах пустота. Никаких запросов на сервер не приходит.
Я даже включал general_log. Никаких запросов приходящих на сервер в нём не было видно.

Единственное, что я делал с этим сервером за последние сутки - удалил около 40 гигабайт ненужных данных из некоторых таблиц. (с помощью DELETE). На таблицах очень много индексов.
Единственное что проходит в голову - возможно он начал в фоне перестраивать древа индексов(B-tree)?

Нужен совет. В чём может быть дело? Куда смотреть, на что обращать внимание? Как локализовать? Как недопустить повторения в продакшане?

Вырезка из SHOW ENGINE INNODB STATUS:

BACKGROUND THREAD
-----------------
srv_master_thread loops: 1545 srv_active, 0 srv_shutdown, 3791 srv_idle
srv_master_thread log flush and writes: 5336

TRANSACTIONS
------------
Trx id counter 22228107
Purge done for trx's n:o < 22202871 undo n:o < 469 state: running
History list length 1282
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 22228106, not started
MySQL thread id 158, OS thread handle 0x7f41ed50e700, query id 129930 10.15.20.188 admin init
SHOW ENGINE INNODB STATUS

FILE I/O
--------
I/O thread 0 state: waiting for completed aio requests (insert buffer thread)
I/O thread 1 state: waiting for completed aio requests (log thread)
I/O thread 2 state: waiting for completed aio requests (read thread)
I/O thread 3 state: waiting for completed aio requests (read thread)
I/O thread 4 state: waiting for completed aio requests (read thread)
I/O thread 5 state: waiting for completed aio requests (read thread)
I/O thread 6 state: waiting for completed aio requests (write thread)
I/O thread 7 state: waiting for completed aio requests (write thread)
I/O thread 8 state: waiting for completed aio requests (write thread)
I/O thread 9 state: waiting for completed aio requests (write thread)
Pending normal aio reads: 0 [0, 0, 0, 0] , aio writes: 0 [0, 0, 0, 0] ,
ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0
Pending flushes (fsync) log: 0; buffer pool: 0
760441 OS file reads, 1081085 OS file writes, 66030 OS fsyncs
1 pending preads, 0 pending pwrites
99.14 reads/s, 16384 avg bytes/read, 260.67 writes/s, 15.50 fsyncs/s

LOG
---
Log sequence number 2151663951156
Log flushed up to 2151663911289
Pages flushed up to 2151597015337
Last checkpoint at 2151596987934
Max checkpoint age 433210615
Checkpoint age target 419672784
Modified age 66935819
Checkpoint age 66963222
0 pending log writes, 0 pending chkp writes
16181 log i/o's done, 2.41 log i/o's/second

ROW OPERATIONS
--------------
0 queries inside InnoDB, 0 queries in queue
0 read views open inside InnoDB
0 RW transactions active inside InnoDB
0 RO transactions active inside InnoDB
0 out of 1000 descriptors used
Main thread process no. 2434, id 139921331304192, state: sleeping
Number of rows inserted 3954, updated 0, deleted 0, read 40510374
0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 0.00 reads/s
Number of system rows inserted 0, updated 0, deleted 0, read 0
0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 0.00 reads/s
...
Рейтинг: 0 / 0
Innodb высокий IO без запущенных процессов
    #39843953
Григорий2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так же mysql начал останавливатся по 2 минуты, вместо двух секунд.
В лога видно:
190801 10:28:20 [Note] InnoDB: Waiting for purge thread to be suspended
190801 10:29:20 [Note] InnoDB: Waiting for purge thread to be suspended

Вероятно, что виновника мы нашли. Это фоновый INNODB purge thread.
https://dev.mysql.com/doc/refman/5.7/en/innodb-improved-purge-scheduling.html

Но что он может так усиленно очищать? Уже больше суток подряд. И продолжает делать это после рестарта.
...
Рейтинг: 0 / 0
Innodb высокий IO без запущенных процессов
    #39843990
Григорий2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На сервере всё ещё нет никакой нагрузки.
Повнимательнее изучив SHOW ENGINE INNODB STATUS обнаружил, что mysql крайне активно читает и пишет в память.

В рамках подхода "пальцем в небо" попробуем уменьшить innodb_buffer_pool_instances до трёх, что бы каждый буфер был по гигабайту.

----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 3353346048; in additional pool allocated 0
Total memory allocated by read views 264
Internal hash tables (constant factor + variable factor)
Adaptive hash index 57408560 (50998216 + 6410344)
Page hash 399352 (buffer pool 0 only)
Dictionary cache 12871103 (12750992 + 120111)
File system 952552 (812272 + 140280)
Lock system 7970576 (7969496 + 1080)
Recovery system 0 (0 + 0)
Dictionary memory allocated 120111
Buffer pool size 196600
Buffer pool size, bytes 3221094400
Free buffers 127272
Database pages 68937
Old database pages 25601
Modified db pages 8023
Percent of dirty pages(LRU & free pages): 4.089
Max dirty pages percent: 75.000
Pending reads 1
Pending writes: LRU 0, flush list 0, single page 0
Pages made young 204, not young 0
0.38 youngs/s, 0.00 non-youngs/s
Pages read 68936, created 0, written 128020
100.67 reads/s, 0.00 creates/s, 200.24 writes/s
Buffer pool hit rate 979 / 1000, young-making rate 0 / 1000 not 0 / 1000
Pages read ahead 1.73/s, evicted without access 0.00/s, Random read ahead 0.00/s
LRU len: 68937, unzip_LRU len: 0
I/O sum[0]:cur[2328], unzip sum[0]:cur[0]
...
Рейтинг: 0 / 0
Innodb высокий IO без запущенных процессов
    #39844174
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Innodb высокий IO без запущенных процессов
    #39845348
Григорий2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если кому то интересно, то скорее всего проблема была в change buffer'e.
На днях попробую выключить его и повторить тест-кейс.

https://dev.mysql.com/doc/refman/5.7/en/innodb-change-buffer.html
...
Рейтинг: 0 / 0
Innodb высокий IO без запущенных процессов
    #39848586
LiveMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Григорий2,

Справка говорит, что этот параметр можно крутить динамически.
что показали тесты ?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Innodb высокий IO без запущенных процессов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]