Нужно ли промывать механическую коробку передач (МКПП)?


Любая механическая коробка передач состоит из валов, подшипников, шестерен и синхронизаторов, но все эти детали не смогут работать без масла. Масло обеспечивает смазочную пленку, защиту от износа, легкость переключения передач, отвод тепла и очистку деталей от отложений. Несмотря на то, что масло обладает моющими свойствами и очищает детали, оно же является и источником загрязнений, наряду с продуктами износа трансмиссии. Но коробка передач загрязняется изнутри далеко не всегда. Что же может произойти, чтобы коробка передач загрязнилась?


Самый распространенный случай – попадание воды. Да, да коробка передач негерметична. Меняется температура, коробка разогревается, затем остывает, поэтому, чтобы не создавалось избыточное давление или вакуум, коробка имеет связь с атмосферой. Клапан, который обеспечивает приток или отток воздуха, называется сапун. Сапун находится в верхней части коробки, чтобы через него не выбрасывало масло. В обычных условиях эксплуатации все работает как и положено, но стоит попасть в глубокую лужу, коих в нашей стране не счесть, вода закрывает сапун, коробка резко охлаждается в воде и вода засасывается внутрь коробки передач. Вместо масла образуется эмульсия. Это плохо не только из-за ухудшения смазки. Если масло вовремя  не заменить и эмульсия находится в коробке достаточно долго, то начинается процесс гидролиза, то есть масло превращается в «мыло». Только это «мыло» уже ничего не моет и не смазывает. Масло полностью теряет рабочие свойства и представляет из себя неприятную на вид, грязную мазь, которая даже не сливается с коробки.


Менее распространенный случай – длительный перегрев коробки. Долгая езда на высокой скорости или в условиях бездорожья, буксировка тяжелого прицепа разогревает коробку передач значительно сильнее допустимого. Масло начинает «свариваться», образуя мазь, как и в предыдущем случае, только более темного цвета.


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


Простая замена масла не очистит коробку передач, нужны специальные меры. Специалисты разберут агрегат, тщательно промоют каждую деталь, но такой путь чрезвычайно затратен и не быстр. Значительно проще использовать специализированную промывку. Непосредственно перед штатной заменой масла, в проблемную коробку заливается специальная промывка. Далее, двигатель автомобиля нужно завести и оставить работать на 10-15 минут на холостом ходу. Куда-либо ехать или переключать передачи нет необходимости, так как на холостом ходу все валы коробки крутятся, масло циркулирует, механизм полноценно очищается. Далее, содержимое коробки передач, или моста, сливается, заливается свежее масло, и вуаля!  Примечание: перед добавкой промывки агрегат должен иметь рабочую температуру, то есть промывка будет эффективно работать только после прогревочной поездки.


Лидер немецкого рынка автохимии и масел, компания Liqui Moly GmbH выпускает специализированную промывку для механических трансмиссий — Getriebe-Reiniger. Эта промывка создана на основе нафтеновых масел, обладающих отменными моющими свойствами, не действует на сальники и прокладки и практически не разжижает трансмиссионное масло. Содержит сильный моющий комплекс и антизадирные присадки для защиты трансмиссии в процессе самой промывки. Позволяет старому маслу как можно полнее слиться с агрегата.


Нет необходимости промывать механическую трансмиссию перед каждой заменой масла, хотя это и не помешает. Промывать обязательно тогда, когда были нарушены условия эксплуатации, перечисленные выше, а также в случаях возникновения проблем: плохое включение передач, шум в работе и т.п. Устранить проблемы и продлить ресурс агрегата всегда в ваших силах. Подобрать правильное масло под практически любой автомобиль можно в программе подбора.


 

Промывка для коробки автомобиля — для чего мыть коробку передач

Что же новенького с промывками?

В данном обзоре подробно рассмотрим новую промывочную присадку для механических коробок передач. А также узнаем для чего мыть механическую коробку, когда приходит время менять масло.

В принципе, продукт, предназначенный для процедуры мытья, в ассортименте уже был. Это профессиональная промывка масляной системы двигателя 7507 – Pro Line, для сравнения.

Ее можно было использовать, хотя и сейчас можно использовать, никто с нее эту функцию не убирал, для промывки механических коробок. В чем неудобство использования моторной промывки? В том, что нужна достаточно высокая концентрация, то есть объем доливки промывочной жидкости достаточно большой: пол-литра на пять литров трансмиссионного масла. Чаще всего доливать такое количество масла или присадки в механическую коробку передач с объемом заливки 1,5-4 литра – где-то 2,5.

В этом случае это достаточно неудобно, поэтому для МКПП выпустили маленькую фасовку 150 мл, но концентрированного состава, что будет достаточно на 4 литра трансмиссионного масла.

Соответственно, если у нас 2-2,5 литра, то — пол флакона на одну промывку. Опять же никаких проблем с дозировкой, никаких проблем с применением, заливаем в старое трансмиссионное масло, 10 минут машина работает на холостых оборотах, с невыжатым сцеплением.

В этом случае, если автомобиль не передвигается, а стоит на нейтрале, то, когда сцепление не выжато, все шестерни вращаются и поток масла максимален. Всю эту пыль от износа блокирующих колец, синхронизаторов и т.д. смываем; и второй момент: у все серьезно запущено.

В этот момент нам на помощь и приходит данная присадка для механики, например, после купания автомобиля в воде, когда через сапун или сальники за счет резкого перепада температур затянуло небольшое количество влаги в КПП.

В этом случае начинают появляться коррозия в трансмиссионном масле, во-вторых, снижаются защитные свойства масла, в-третьих, при перегреве масла, оно начинает “гидрироваться” и давать отложения. В отличии от мотора, здесь нет контактов с газами, нет попадания недогоревшего топлива, но все-таки определенные источники загрязнения, как изнашивающиеся детали, и вода туда попадает.

По большому счету, применять можно хоть при каждой замене, как и 7507. Единственный вопрос в том, что данный продукт удобнее добавлять, а также ситуация лишь в том, что попробуйте налить на 4 литра 400 грамм 7507, где идет контрольное отверстие в МКПП.

То есть задача будет: сначала извлечь порядка 300-400 грамм трансмиссионной жидкости, потом уже залить присадку. Это как раз очень неудобная процедура. Здесь 150 мл. промывочной жидкости на 4 литра или 75 на 2 литра, добавляются легко и непринужденно, затем пробка возвращается на место. Так что, в первую очередь, все это сделано для удобства использования.

Самое главное в процедуре – это убрать последствия попадания воды, что особенно характерно для роботов с одним сцеплением.

Синхронизаторы в таких блоках работают в ударном режиме с повышенными нагрузками. И, зачастую, для предотвращения некоторых проблем производители двигателя ставят два блокирующих кольца, соответственно будет больше металлической пыли в системе.

По мере накопления в масле они также начинают оседать на рабочих поверхностях колец, тем более, что и материал у нас практически такой же, что и у кольца, и, как следствие, они могут налипать на рабочие поверхности, либо к ним прикатываться. Все это затрудняет сброс кольцом смазочного материала и замедляют время реакции синхронизаторов, поэтому такие трансмиссии промывать только им на пользу.

Есть два варианта применения: взять и просто залить свежее трансмиссионное масло и дать коробке поработать достаточно короткий промежуток времени, после чего поменять его повторно, но чаще всего это очень дорого удовольствие, и теперь есть вариант дешевле и проще.

InnoDB Flushing and Checkpoints

InnoDB Flushing and Checkpoints

Реклама

1 из 121

Верхний обрезанный слайд

Скачать для чтения в автономном режиме

Программное обеспечение

InnoDB Flush

Реклама

Реклама

Очистка InnoDB и контрольные точки

  1. 24. 03.21 1
    Очистка InnoDB и контрольные точки
    Миджин Ан
    [email protected]
  2. Содержимое
    24.03.21 2
    • Обзор
    • Тема очистки страниц
    • Очистка списка LRU
    • Сброс списка сбрасывания
    • Контрольные точки MySQL
  3. ОБЗОР
    24.03.21 3
  4. Обзор
    • Архитектура InnoDB
    24.03.21 4
    API обработчика
    Транзакция (транзакция)
    Ведение журнала &
    Крушение
    Восстановление
    (журнал и получение)
    Мини
    Сделка
    (метр)
    Замок
    (слк)
    Курсор (курс)
    Ряд (ряд)
    B-дерево (btr)
    Страница (страница)
    Менеджер буфера (buf)
    Свободное пространство/управление файлами (fsp/fil)
    ИО
  5. Обзор
    • Менеджер буфера
    – Flusher (buf0flu.cc): средство записи грязных страниц и средство фоновой очистки.
    – Doublewrite (buf0dblwr.cc): буфер двойной записи
    24.03.21 5
  6. Списки буферных блоков
    • Бесплатный список
    — Содержит бесплатные рамки страницы
    • Список LRU (наиболее редко используемые)
    – Содержит все блоки, содержащие страницу файла
    • Список сброса (наименее недавно измененный)
    – Содержит блоки, содержащие страницы файлов, которые были изменены в
    память, но еще не записана на диск
    24. 03.21 6
    База данных
    Буфер
    Хвост
    Голова Д Д Д
    Основной список LRU
    Бесплатный список
    Д
    Сброс списка
    Д Д
  7. Бесплатный список
    24.03.21 7
    • Список свободных мест для свободного места в буферном пуле.
    читать отсутствующие в данный момент страницы. Чтение:
  8. Список ЛРУ
    24.03.21 8
    • Список LRU для принятия решения о том, какие страницы удалить.
    ⎼ Предотвращение удаления недавно использованных страниц (чтобы
    молодой)
  9. Список смыва
    24.03.21 9
    • Список сброса для управления грязными страницами. Грязь:
  10. Список смыва
    24.03.21 10
    • Список сброса для управления грязными страницами. Промывка:
  11. Промывка
    24.03.21 11
    • Для записи грязных страниц на диск в фоновом режиме,
    буферизуется в области памяти
    • InnoDB имеет ограниченное пространство в пуле буферов и журнале повторов.
    • InnoDB пытается избежать необходимости в синхронном вводе-выводе, очищая
    грязные страницы постоянно, сохраняя резерв чистых или свободных
    пространства, которые можно заменить без промывки
  12. Вызов промывки
    24. 03.21 12
    • Пользователям нравится однородная производительность
    • Достаточно сбросить, чтобы не закончилось место в журнале.
    • Не промывайте слишком агрессивно, чтобы повлиять на производительность.
    • То есть трудно сбалансировать
    ‒ Смывай слишком медленно
    • Соревнуйтесь с вводом-выводом, который должен происходить
    • Свободная возможность оптимизации
    ‒ Задерживать слишком много
    • Возможно, в будущем придется выполнять слишком много операций ввода-вывода.
    • Потенциально вызывают «зависания» или падение производительности.
  13. РЕЗЬБА ДЛЯ ОЧИСТКИ СТРАНИЦ
    24.03.21 13
  14. Нить(и) для очистки страниц
    24.03.21 14
    • Обрабатывает все типы фоновой очистки
    ‒ Сбрасывает страницы с конца списка LRU
    ‒ Сбрасывает страницы из списка сброса
    • Просыпается раз в секунду
    • В некоторых случаях сброс может быть выполнен из пользовательских потоков.
    • В MySQL 5.7+ доступно несколько потоков.
  15. Многопоточная промывка
    24.03.21 15
    Экземпляр LRU #1 Экземпляр списка сброса #1
    Экземпляр LRU #2 Экземпляр списка сброса #2
    Экземпляр LRU #0 Экземпляр списка сброса #0
    Запрос
    Координатор
    Рабочий
    Рабочий
    0 с 1 с
    Треб…
    ЛРУ…
    ЛРУ…
  16. Резьба для очистки страниц
    24. 03.21 16
    page_cleaner_t page_cleaner_slot_t
    Мьютекс
    Запрос события
    Завершить мероприятие
    Количество рабочих
    Флаг проверки запроса
    Слоты для очистки страниц
    Предел LSN
    Общее количество слотов
    Количество запрошенных слотов
    Количество промывочных щелей
    Количество готовых слотов
    Прошедшее время для промывки
    Флеш-пасс
    Текущий флаг
    Состояние
    Количество запрошенных страниц
    Количество сброшенных страниц
    из списка ЛРУ
    Количество сброшенных страниц
    из списка флешей
    Флаг успеха для
    сброс списка
    Прошедшее время для
    промывка LRU
    Прошедшее время для
    сброс списка
    Промывочный проход LRU
    Проход сброса списка
  17. Структура очистки страниц
    • buf/buf0flu.cc: page_cleaner_t
    24.03.21 17
  18. Структура очистки страниц
    • buf/buf0flu.cc: page_cleaner_t
    24.03.21 18
  19. Структура очистки страниц
    • buf/buf0flu.cc: page_cleaner_slot_t
    24.03.21 19
  20. Структура очистки страниц
    • buf/buf0flu.cc: page_cleaner_slot_t
    24.03.21 20
  21. Структура очистки страниц
    • buf/buf0flu.cc: page_cleaner_state_t
    24. 03.21 21
    ЗАПРОС
    ПРОМЫВКА
    ЗАКОНЧЕННЫЙ
    НИКТО
    Координатор
    Рабочий
    Координатор
  22. Инициализация очистки страницы
    • buf/buf0flu.cc: buf_flush_page_cleaner_init()
    24.03.21 22
    Создавайте столько слотов, сколько
    количество экземпляров BP

    глобальная переменная;
    Координатор
  23. Инициализация очистки страницы
    • buf/buf0flu.cc: buf_flush_page_cleaner_init()
    24.03.21 23
    Создать ветку по очистке страниц
    (координатор)
  24. Очиститель страниц: координатор потока
    • buf/buf0flu.cc: buf_flush_page_coordinator_thread()
    24.03.21 24
  25. Очиститель страниц: координатор потока
    • buf/buf0flu.cc: buf_flush_page_coordinator_thread()
    24.03.21 25
    Создание тем для очистки страниц
    (рабочие)
  26. Очиститель страниц: рабочий поток
    • buf/buf0flu.cc: buf_flush_page_cleaner_thread()
    24.03.21 26
  27. Очиститель страниц: рабочий поток
    • buf/buf0flu.cc: buf_flush_page_cleaner_thread()
    24.03.21 27
    Дождитесь события ЗАПРОС
    Работать до отключения
  28. Очиститель страниц: координатор потока
    • buf/buf0flu. cc: buf_flush_page_coordinator_thread()
    24.03.21 28
    Работать до отключения
    Если предыдущее время промывки превысило указанное время (1 с),
    установить OS_SYNC_TIME_EXCEEDED
  29. Очиститель страниц: координатор потока
    • buf/buf0flu.cc: buf_flush_page_coordinator_thread()
    24.03.21 29

    1-й случай: ЧП! Мы должны
    сделать синхронный сброс, потому что
    самая старая грязная страница слишком старая.
  30. Очиститель страницы пробуждения для пакета ввода-вывода
    • log/log0chkp.cc: log_preflush_pool_modified_pages()
    24.03.21 30
  31. Средство очистки страниц пробуждения для пакета ввода-вывода
    • log/log0chkp.cc: log_preflush_pool_modified_pages()
    24.03.21 31
  32. Средство очистки страниц пробуждения для пакета ввода-вывода
    • buf/buf0flu.cc: buf_flush_request_force()
    24.03.21 32
  33. Очиститель страниц: координатор потока
    • buf/buf0flu.cc: buf_flush_page_coordinator_thread()
    24.03.21 33
    2-й случай: Что-то есть
    изменено на сервере!
    (нормальный)
    Если OS_SYNC_TIME_EXCEEDED установлен,
    определяет количество страниц
    рекомендуется сбросить из списка сбрасывания
  34. • buf/buf0flu. cc: page_cleaner_flush_pages_recommendation()
    24.03.21 34
    Ожидаемое количество сброшенных страниц из списка сброшенных
  35. • buf/buf0flu.cc: page_cleaner_flush_pages_recommendation()
    24.03.21 35
    Получить текущий LSN
    Ожидаемое количество сброшенных страниц из списка сброшенных
  36. • buf/buf0flu.cc: page_cleaner_flush_pages_recommendation()
    24.03.21 36
    Рассчитать среднее количество
    страниц сбрасывается в секунду
    Рассчитать среднее
    скорость генерации
    LSN в секунду
    Ожидаемое количество сброшенных страниц из списка сброшенных
  37. • buf/buf0flu.cc: page_cleaner_flush_pages_recommendation()
    24.03.21 37
    Ожидаемое количество сброшенных страниц из списка сброшенных
  38. • buf/buf0flu.cc: page_cleaner_flush_pages_recommendation()
    24.03.21 38
    Сводная статистика (время, количество проходов)
    всех слотов
    Установить всю статистику (время, проход) на 0
    для следующей промывки
    Ожидаемое количество сброшенных страниц из списка сброшенных
  39. • buf/buf0flu.cc: page_cleaner_flush_pages_recommendation()
    24. 03.21 39
    Установить связанный монитор
    значение счетчиков
    Ожидаемое количество сброшенных страниц из списка сброшенных
  40. • buf/buf0flu.cc: page_cleaner_flush_pages_recommendation()
    24.03.21 40
    Получите самый старый номер LSN, перейдя
    все флеш списки
    Рассчитать возраст;
    Разница между текущим LSN
    и самый ранний номер LSN в списке сброса
    Ожидаемое количество сброшенных страниц из списка сброшенных
  41. • buf/buf0flu.cc: page_cleaner_flush_pages_recommendation()
    24.03.21 41
    Рассчитать процент от io_capacity
    промывать на основе двух факторов:
    ① Сколько там грязных страниц
    находятся в буферном пуле
    ② Как быстро мы
    генерация журналов повторов
    Ожидаемое количество сброшенных страниц из списка сброшенных
  42. • buf/buf0flu.cc: af_get_pct_for_dirty()
    24.03.21 42
    Получить грязную страницу
    процентное соотношение
    Расчет % io_capacity: ①
  43. Расчет % io_capacity: ①
    • buf/buf0buf.cc: buf_get_modified_ratio_pct()
    24.03.21 43
  44. Расчет % io_capacity: ①
    • buf/buf0flu. cc: af_get_pct_for_dirty()
    24.03.21 44
    ≥ ℎ𝑖𝑔ℎ 𝑤𝑎𝑡𝑒𝑟 𝑚𝑎𝑟𝑘(75)
    ≥ 𝑙𝑜𝑤 𝑤𝑎𝑡𝑒𝑟 𝑚𝑎𝑟𝑘
    InnoDB пытается сохранить соотношение грязных
    страниц в пуле буферов меньше, чем
    srv_max_buf_pool_modified_pct(75.0)
  45. • buf/buf0flu.cc: af_get_pct_for_lsn()
    24.03.21 45
    Рассчитать нижнюю отметку адаптивной промывки на основе
    srv_adapative_flushing_lwm(10) и размер журнала
    Расчет % io_capacity: ②
  46. • buf/buf0flu.cc: af_get_pct_for_lsn()
    24.03.21 46
    Расчет % io_capacity: ②
    Максимальная разница LSN;
    при превышении начать
    асинхронная предварительная промывка
  47. • buf/buf0flu.cc: af_get_pct_for_lsn()
    24.03.21 47
    Получить грязную страницу
    процентное соотношение
    Расчет % io_capacity: ②
    Процент io_capacity, который следует использовать для сброса =
  48. • buf/buf0flu.cc: page_cleaner_flush_pages_recommendation()
    24.03.21 48
    Ожидаемое количество сброшенных страниц из списка сброшенных
  49. • buf/buf0flu.cc: page_cleaner_flush_pages_recommendation()
    24.03.21 49
    Для каждой страницы в списке сброса
    подсчитывает количество страниц, для которых
    LSN страницы меньше целевого LSN.
    Ожидаемое количество сброшенных страниц из списка сброшенных
  50. • buf/buf0flu.cc: page_cleaner_flush_pages_recommendation()
    24.03.21 50
    Ограничение максимальной емкости ввода/вывода
    Ожидаемое количество сброшенных страниц из списка сброшенных
  51. • buf/buf0flu.cc: page_cleaner_flush_pages_recommendation()
    24.03.21 51
    Ожидаемое количество сброшенных страниц из списка сброшенных
  52. • buf/buf0flu.cc: page_cleaner_flush_pages_recommendation()
    24.03.21 52
    Ожидаемое количество сброшенных страниц из списка сброшенных
  53. • buf/buf0flu.cc: page_cleaner_flush_pages_recommendation()
    24.03.21 53
    Ожидаемое количество сброшенных страниц из списка сброшенных
  54. Очиститель страниц: координатор потока
    • buf/buf0flu.cc: buf_flush_page_coordinator_thread()
    24.03.21 54
  55. Очиститель страниц: Координатор темы
    • buf/buf0flu.cc: pc_request()
    24.03.21 55
  56. Очиститель страниц: координатор потока
    • buf/buf0flu.cc: pc_request()
    24.03.21 56
    Для всех page_cleaner_slots
  57. Очиститель страниц: координатор потока
    • buf/buf0flu. cc: pc_request()
    24.03.21 57
    Запросы на сброс всех слотов
    все экземпляры пула буферов
  58. Очиститель страниц: координатор потока
    • buf/buf0flu.cc: buf_flush_page_coordinator_thread()
    24.03.21 58
    Делайте флеш для каждого слота
  59. Очиститель страниц: Координатор темы
    • buf/buf0flu.cc: pc_flush_slot()
    24.03.21 59
    Если есть хотя бы один запрошенный слот,
  60. Очиститель страниц: координатор потока
    • buf/buf0flu.cc: pc_flush_slot()
    24.03.21 60
    Найдите ЗАПРОШЕННЫЙ слот
  61. Очиститель страниц: координатор потока
    • buf/buf0flu.cc: pc_flush_slot()
    24.03.21 61
    Сначала выполните промывку LRU
  62. ПРОМЫВКА СПИСКА LRU
    24.03.21 62
  63. • buf/buf0flu.cc: buf_flush_do_LRU_batch()
    • Очищает конец списков LRU:
    — Поместите заменяемые страницы в хвост LRU в свободный список
    – Сбросить грязные страницы в хвосте LRU на диск
    • innodb_LRU_scan_depth = 1024 /* по умолчанию */
    – Насколько глубоко исследовать хвост на наличие грязных страниц
    – Пользовательский поток также может сканировать до этой глубины, если в нем нет доступных страниц.
    бесплатный список
    – Важно настроить, чтобы предотвратить синхронные сбросы (= spf)
    Очистка списка LRU
    24.03.21 63
  64. Очистка списка LRU
    24.03.21 64
    buf_flush_
    LRU_список()
    buf_flush_
    do_batch()
    buf_flush
    _партия()
    buf_do_LRU
    _партия()
    buf_flush
    _LRU_list
    _партия()
    buf_LRU_free
    _страница()
    fil_io()
    fil_flush()
    buf_page_io_
    полный()
    buf_flush_p
    age_and_try
    _соседи()
    buf_flush
    _страница()
    buf_flush_write
    _block_low()
    buf_dblwr
    _добавить в_
    партия()
    buf_dblwr_
    румянец_
    буферизованный_
    пишет()
    buf_flush
    _try_neig
    hbors()
  65. • buf/buf0flu.cc: buf_flush_LRU_list()
    Очистка списка LRU
    24.03.21 65
  66. • buf/buf0flu.cc: buf_flush_LRU_list()
    Очистка списка LRU
    24.03.21 66
    Пакетная промывка LRU
  67. • buf/buf0flu.cc: buf_flush_do_batch()
    Очистка списка LRU
    24.03.21 67
  68. • buf/buf0flu.cc: buf_flush_batch()
    Очистка списка LRU
    24.03.21 68

    Сделайте партию LRU
  69. • buf/buf0flu.cc: buf_do_LRU_batch()
    Очистка списка LRU
    24.03.21 69
  70. • buf/buf0flu. cc: buf_flush_LRU_list_batch()
    Очистка списка LRU
    24.03.21 70
    Начать промывку
    с последним
    страница из LRU
  71. • buf/buf0flu.cc: buf_flush_LRU_list_batch()
    Очистка списка LRU
    24.03.21 71
  72. • buf/buf0flu.cc: buf_flush_ready_for_replace()
    Очистка списка LRU
    24.03.21 72
    Проверить, задано ли
    страница чистая или нет
  73. • buf/buf0flu.cc: buf_flush_LRU_list_batch()
    Очистка списка LRU
    24.03.21 73
    Это какая-то сменная страница, свободная страница
    (список LRU и свободный список)
  74. Очистка списка LRU
    24.03.21 74
    • Исключение/удаление страниц из списка LRU и размещение
    их в свободном списке
  75. • buf/buf0flu.cc: buf_flush_LRU_list_batch()
    Очистка списка LRU
    24.03.21 75
    В противном случае,
  76. • buf/buf0flu.cc: buf_flush_ready_for_flush()
    Очистка списка LRU
    24.03.21 76

    Если страница уже очищена или выполняет ввод-вывод, верните false;
    В противном случае вернуть true
  77. • buf/buf0flu.cc: buf_flush_LRU_list_batch()
    Очистка списка LRU
    24. 03.21 77
    Если данная страница готова к сбросу,
    попробуй прошить с соседними страницами
  78. • buf/buf0flu.cc: buf_flush_try_neighbors()
    Очистка списка LRU
    24.03.21 78
    Для всех смываемых страниц в области смывания
    Страница сброшена, но нет синхронизации

  79. • buf/buf0flu.cc: buf_flush_page()
    Очистка списка LRU
    24.03.21 79

    … Получить блокировку

    Установите тип исправления и сброса
  80. • buf/buf0flu.cc: buf_flush_page()
    Очистка списка LRU
    24.03.21 80
    Получить рамку страницы
  81. • buf/buf0flu.cc: buf_flush_page()
    Очистка списка LRU
    24.03.21 81
    Записывает сбрасываемую страницу из пула буферов в файл
  82. • buf/buf0flu.cc: buf_flush_write_block_low()
    Очистка списка LRU
    24.03.21 82

    Очистить журнал (журнал транзакций — WAL)
  83. • buf/buf0flu.cc: buf_flush_write_block_low()
    Очистка списка LRU
    24.03.21 83
  84. • buf/buf0flu.cc: buf_flush_write_block_low()
    Очистка списка LRU
    24.03.21 84
    Случай двойного списания
  85. • buf/buf0flu. cc: buf_flush_write_block_low()
    Очистка списка LRU
    24.03.21 85
    Добавьте страницу в
    буфер двойной записи
  86. Очистка списка LRU
    • Теперь страницы-жертвы собираются для замены
    • Нам нужно сбросить их на диск
    • Мы можем сделать это, вызвав buf_flush_end().
    24.03.21 86
  87. • buf/buf0flu.cc: buf_flush_do_batch()
    Очистка списка LRU
    24.03.21 87
  88. • buf/buf0flu.cc: buf_flush_end()
    Очистка списка LRU
    24.03.21 88
    • очистить все страницы, которые мы собрали до сих пор
    • сначала записывайте страницы в область dwb
    • затем передать его в файл данных
    ; Посмотреть это позже
  89. • После завершения всех работ по промывке вызывается следующая функция
    последний, кто завершил ввод-вывод
    • buf/buf0buf.cc: buf_page_io_complete()
    Очистка списка LRU: полный ввод-вывод
    24.03.21 89…
  90. • buf/buf0buf.cc: buf_page_io_complete()
    Очистка списка LRU: полный ввод-вывод
    24.03.21 90
    освободить страницу (список LRU и бесплатный список)
  91. Очиститель страниц: координатор потока
    • buf/buf0flu. cc: pc_flush_slot()
    24.03.21 91
    Во-вторых, сделайте сброс списка
  92. СПИСОК ПРОМЫВКИ ПРОМЫВКА
    24.03.21 92
  93. • buf/buf0flu.cc: buf_flush_do_flush_list_batch()
    • Сброс для продвижения «самой ранней модификации LSN»
    — Освободить место в журнале, чтобы его можно было уменьшить
    – Размер списка сброса ограничен размером журнала повторов.
    • Страницы перемещаются из списка сброса после внесения изменений.
    синхронизировано с диском
    • Количество страниц для промывки за цикл зависит от нагрузки
    Сброс списка
    24.03.21 93
  94. • innodb_io_capacity = 200 /* по умолчанию */
    – Ограничение скорости сброса страниц во время простоя или во время выключения
    — Изменение буфера сливается со скоростью 5-55% от innodb_io_capacity
    • innodb_io_capacity_max = 2000 /* по умолчанию */
    – Ограничение скорости промывки во время занятости
    Сброс списка
    24.03.21 94
  95. Очистка списка промывки
    24.03.21 95
    buf_flush
    _партия()
    buf_do_flush
    _list_batch()
    fil_io()
    fil_flush()
    buf_page_io_
    полный()
    buf_flush_page
    _and_try_neigh
    борс()
    buf_flush
    _страница()
    buf_flush_write
    _block_low()
    buf_dblwr_add
    _to_batch() buf_dblwr_
    румянец_
    буферизованный_
    пишет()
    buf_flush
    _try_neig
    hbors()
  96. • buf/buf0flu. cc: buf_flush_do_batch()
    Сброс списка
    24.03.21 96
  97. • buf/buf0flu.cc: buf_flush_batch()
    Сброс списка
    24.03.21 97

    Выполнить сброс списка
  98. • buf/buf0flu.cc: buf_do_flush_list_batch()
    Сброс списка
    24.03.21 98
    Получить последнюю страницу
    из списка флешей
  99. • buf/buf0flu.cc: buf_do_flush_list_batch()
    Сброс списка
    24.03.21 99
    Для всех смываемых страниц в области смыва,
    сбросить их асинхронно
  100. • После завершения всех работ по промывке вызывается следующая функция
    последний, кто завершил ввод-вывод
    • buf/buf0buf.cc: buf_page_io_complete()
    Сброс списка сбрасывания: полный ввод-вывод
    24.03.21 100
  101. • buf/buf0buf.cc: buf_page_io_complete()
    Сброс списка сбрасывания: полный ввод-вывод
    24.03.21 101
    Не освобождайте сброшенную страницу!
    Сохраните его в списке LRU как чистую страницу.
  102. Очиститель страниц: координатор потока
    • buf/buf0flu.cc: pc_flush_slot()
    24.03.21 102
    Финишная промывка
  103. Очиститель страниц: координатор потока
    • buf/buf0flu. cc: buf_flush_page_coordinator_thread()
    24.03.21 103
    Подождите, пока все смоется
    запросы завершены
  104. Очиститель страниц: координатор потока
    • buf/buf0flu.cc: pc_wait_finished()
    24.03.21 104
  105. Очиститель страниц: Координатор темы
    • buf/buf0flu.cc: pc_wait_finished()
    24.03.21 105
    Для всех слотов очистки страниц
    Совокупное количество
    общее количество сброшенных страниц
    Сбросить состояние слота
  106. Очиститель страниц: координатор потока
    • buf/buf0flu.cc: buf_flush_page_coordinator_thread()
    24.03.21 106
    Установите общее количество сброшенных страниц
    (LRU + сброс списка сброса)
  107. Очиститель страниц: координатор потока
    • buf/buf0flu.cc: buf_flush_page_coordinator_thread()
    24.03.21 107
    3-й случай: Ничего не изменилось,
    но OS_SYNC_TIME_EXCEEDED установлен
    4-й случай: Нет активности
  108. КОНТРОЛЬНЫЕ ТОЧКИ MYSQL
    24.03.21 108
  109. Типы контрольно-пропускных пунктов
    24.03.21 109
    • Острая контрольная точка (при выключении)
    ⎻ Сброс всех измененных страниц для совершенных транзакций на диск
    ⎻ Запись LSN самой последней совершенной транзакции
    ⎻ Все сбрасываемые страницы согласованы по состоянию на один момент времени (
    контрольно-пропускной пункт LSN) и «острый»
    • Нечеткий контрольно-пропускной пункт (в обычное время)
    ⎻ Сброс страниц по прошествии времени (сброс списка сбрасывания)
    ⎻ Высветленные страницы могут не соответствовать друг другу на момент
    один момент времени и «нечеткий»
  110. Типы контрольно-пропускных пунктов
    24. 03.21 110
    • Периодическая проверка (каждые X секунд)
    ⎻ До версии 8.0 главный поток выполнял периодические контрольные точки.
    (каждые 7 с)
    ⎻ Начиная с версии 8.0, за периодические
    контрольные точки (каждый innodb_log_checkpoint_every мс)
  111. Поток контрольной точки журнала
    24.03.21 111
    • Проверка необходимости записи контрольной точки
    ⎻ Чтобы уменьшить возраст контрольной точки, прежде чем он станет слишком большим
    • Проверка необходимости принудительного синхронного сброса грязных страниц
    в потоках очистки страниц из-за места в журнале повторов или возраста
    самая старая страница
    • Написание контрольных точек
    – Это единственный поток, которому разрешено это делать!
  112. Инициализация потока контрольной точки журнала
    24.03.21 112
    • log/log0log.cc: log_start_background_threads()


    Создайте поток контрольных точек журнала
  113. Поток контрольной точки журнала
    24.03.21 113
    • log/log0chkp.cc: log_checkpointer()

    Проверьте, есть ли у него работа
  114. Поток контрольной точки журнала
    24. 03.21 114
    • log/log0chkp.cc: log_checkpointer()
  115. Поток контрольной точки журнала
    24.03.21 115
    • log/log0chkp.cc: log_consider_checkpoint()

    Проверяет, должна ли быть записана контрольная точка
  116. Поток контрольной точки журнала
    24.03.21 116
    • log/log0chkp.cc: log_should_checkpoint()
  117. Поток контрольной точки журнала
    24.03.21 117
    • log/log0chkp.cc: log_consider_checkpoint()

    Делает контрольно-пропускной пункт;
    Обратите внимание, что эта функция не очищает грязные блоки.
    из буферного пула. Он только проверяет, что такое LSN
    самая старая модификация в пуле буферов, и
    записывает информацию о LSN в лог-файлы.
  118. Поток контрольной точки журнала
    24.03.21 118
    • log/log0chkp.cc: log_checkpointer()
    Если у него нет работы
    Ожидает события контрольной точки, пока оно не перейдет в сигнальное состояние.
    или превышено время ожидания (10 мс)
  119. Поток контрольной точки журнала
    24.03.21 119
    • log/log0chkp.cc: log_checkpointer()
  120. Поток контрольной точки журнала
    24. 03.21 120
    • log/log0chkp.cc: log_checkpointer()
  121. Артикул
    24.03.21 121
    [1] «Справочное руководство по MySQL 5.7», MySQL, https://dev.mysql.com/doc/refman/5.7/en/
    [2] Джереми Коул, «InnoDB», https://blog.jcole.us/innodb/
    [3] Лауринас Бивейнис, Алексей Строганов, «Percona Server для MySQL 5.7: ключевая производительность
    Алгоритмы», Percona, https://www.percona.com/resources/webinars/percona-server-
    mysql-57-key-алгоритмы производительности

Реклама

innodb — mysql 5.6 очищает все грязные страницы при ротации ib_logfile, создавая остановку контрольной точки

Задавать вопрос

спросил

Изменено
3 года, 2 месяца назад

Просмотрено
226 раз

Версия сервера: 5. 6.23-72.1-log Percona

Я пытался выяснить, почему наш сервер mysql использует точные контрольные точки, и это, кажется, коррелирует с ротацией файла ib_logfile.

Я унаследовал этот mysql-сервер Percona 5.6, и он приостанавливался для четкой контрольной точки / полной грязной очистки один раз в день с innodb_log_file_size размером 1 ГБ. Я подумал, что, возможно, это был недостаточный размер файла журнала, и увеличил его до 25 ГБ. Теперь мы просто сталкиваемся с тем же поведением реже. Для меня это было своего рода загадкой, пока я не смог убедиться, что это произошло при переключении файла журнала.

Документы Mysql 5.5: https://dev.mysql.com/doc/refman/5.5/en/innodb-checkpoints.html: «… когда InnoDB начинает повторно использовать файл журнала, он должен убедиться, что образы страниц базы данных на диске содержат изменения, зарегистрированные в файле журнала, который InnoDB собирается повторно использовать. Другими словами, InnoDB должна создать контрольную точку, и это часто включает сброс измененных страниц базы данных на диск».

Документы Mysql 5.6 опускают этот бит и говорят, что все, что он должен делать, это нечеткие контрольные точки в обычных обстоятельствах. https://dev.mysql.com/doc/refman/5.6/en/innodb-checkpoints.html: «InnoDB реализует механизм контрольных точек, известный как нечеткие контрольные точки. InnoDB сбрасывает измененные страницы базы данных из пула буферов небольшими партиями. нет необходимости сбрасывать пул буферов одним пакетом, что нарушит обработку пользовательских операторов SQL в процессе создания контрольных точек».

Есть ли способ свести к минимуму или выйти из этого поведения, если оно неожиданно?

 | innodb_adaptive_flushing | НА |
| innodb_adaptive_flushing_lwm | 10 |
| innodb_buffer_pool_size | 46170898432 |
| innodb_change_buffer_max_size | 25 |
| innodb_change_buffering | вставки |
| innodb_checksum_algorithm | innodb |
| innodb_checksums | НА |
| innodb_cleaner_lsn_age_factor | high_checkpoint |
| innodb_doublewrite | НА |
| innodb_empty_free_list_algorithm | отсрочка |
| innodb_file_format | Барракуда |
| innodb_file_per_table | НА |
| innodb_flush_log_at_timeout | 1 |
| innodb_flush_log_at_trx_commit | 1 |
| innodb_flush_method | О_ПРЯМОЙ |
| innodb_flush_neighbors | 0 |
| innodb_flushing_avg_loops | 30 |
| innodb_force_load_corrupted | ВЫКЛ |
| innodb_force_recovery | 0 |
| innodb_foreground_preflush | экспоненциальный_откат |
| innodb_io_capacity | 3000 |
| innodb_io_capacity_max | 6000 |
| innodb_log_arch_dir | . / |
| innodb_log_arch_expire_sec | 0 |
| innodb_log_archive | ВЫКЛ |
| innodb_log_block_size | 512 |
| innodb_log_buffer_size | 8388608 |
| innodb_log_checksum_algorithm | innodb |
| innodb_log_compressed_pages | НА |
| innodb_log_file_size | 26843545600 |
| innodb_log_files_in_group | 2 |
| innodb_log_group_home_dir | ./ |
| innodb_lru_scan_depth | 2048 |
| innodb_max_changed_pages | 1000000 |
| innodb_max_dirty_pages_pct | 50 |
| innodb_max_dirty_pages_pct_lwm | 0 |
| innodb_max_purge_lag | 200 |
| innodb_max_purge_lag_delay | 0 |
| innodb_old_blocks_pct | 37 |
| innodb_old_blocks_time | 1000 |
| innodb_online_alter_log_max_size | 134217728 |
| innodb_open_files | 384 |
| innodb_page_size | 16384 |
| innodb_purge_batch_size | 20 |
| innodb_purge_threads | 1 |
| innodb_random_read_ahead | ВЫКЛ |
| innodb_read_ahead_threshold | 56 |
| innodb_read_io_threads | 4 |
| innodb_read_only | ВЫКЛ |
| innodb_rollback_on_timeout | ВЫКЛ |
| innodb_rollback_segments | 128 |
| innodb_sched_priority_cleaner | 19|
| innodb_sort_buffer_size | 1048576 |
| innodb_spin_wait_delay | 6 |
| innodb_sync_spin_loops | 30 |
| innodb_table_locks | НА |
| innodb_thread_concurrency | 0 |
| innodb_thread_sleep_delay | 10000 |
| innodb_use_global_flush_log_at_trx_commit | НА |
| innodb_use_native_aio | НА |
| innodb_use_sys_malloc | НА |
| innodb_версия | 5. 6.23-72.1 |
| innodb_write_io_threads | 8 |
 
  • innodb
  • mysql-5.6

Предложение о необходимости контрольной точки перед ротацией/повторным использованием файла журнала могло быть удалено из документации, но логика не изменилась в версии 5.6 — вы не можете перезаписывать записи журнала, которые относятся к еще не сохраненным данным, поэтому вам все еще нужно выполнить контрольную точку. Тот факт, что это происходит в вашей среде, указывает на то, что сброс грязных страниц с нечеткими контрольными точками недостаточно агрессивен для вашей рабочей нагрузки.

Я бы попробовал повысить порог innodb_adaptive_flushing_lwm и понизить innodb_max_dirty_pages_pct , чтобы сделать очистку страниц более активной.

В этой статье есть дополнительные советы и ссылки

6

Исправление от Percona MySQL 5.6.23 до 5.6.47 и включение innodb_numa_interleave устранили эту проблему.