[MYSQL] Каков подходящий параметр для binlog_cache_size?
[MYSQL] Каков подходящий параметр для binlog_cache_size?

представлять

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

Значение по умолчанию — 32 КБ, а значение — целое число, кратное 4 КБ.

Официальный сайтпредставлять: https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_cache_size

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

Мы можем использовать следующий SQL, чтобы проверить, используется ли диск, поскольку binlog слишком мал.

Язык кода:sql
копировать
show global status like '%Binlog_cache%_use%';

Binlog_cache_disk_use указывает, сколько раз используется кэш binlog диска.

Binlog_cache_use указывает, сколько раз используется кэш binlog. Если binlog включен, это можно рассматривать как количество транзакций.

Если Binlog_cache_disk_use слишком велик, вам необходимо увеличить значение binlog_cache_size. Если оно всегда равно 0 или очень мало, вы можете уменьшить значение binlog_cache_size.

Какова подходящая настройка?

мы можемРазобрать бинлогПолучить размер транзакции. Затем выберите размер, который может вместить 99,9% транзакций. По отдельным важным делам Нет необходимости это рассматривать.

Демо

Этот скрипт написан на Python, не имеет пакетов зависимостей и поддерживает Python2 и Python3. Просто запустите его напрямую. Затем следует анализируемый файл binlog. Поддерживает регулярные выражения.

пример

Язык кода:shell
копировать
python binlog_trx_4kf.py /data/mysql_3314/mysqllog/binlog/m3314.00010*

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

Требование по значению должно соответствовать 99,9% бизнеса, но для задач с низкими требованиями к производительности, таких как некоторые запланированные обновления, его не нужно принимать во внимание. Конечно, при наличии достаточного объема памяти рекомендуется включать. это насколько возможно (за исключением особо крупных дел)

Прикрепленный скрипт

адрес гитхаба: https://github.com/ddcw/ddcw/blob/master/python/binlog_trx_4kf.py

Исходный код:

Язык кода:python
кодКоличество запусков:0
копировать
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Разобрать бинлог получает размер транзакции, питон2 и питон3 Применимо ко всем
# binlog_cache_size Округлить до 4 КБ
# python binlog_trx_4kf.py  mysql-bin.000002

import argparse,glob,struct,datetime,time
import sys,os

def _argparse():
	parser = argparse.ArgumentParser(add_help=True, description='Разобрать бинлог/relay log Получить размер транзакции')
	parser.add_argument('--version', '-v', '-V', action='store_true', dest="VERSION", default=False, help='Show version')
	parser.add_argument("files", nargs="*", help="binlog/relay log list. support RE")
	if parser.parse_args().VERSION:
		print('VERSION: v0.2')
		sys.exit(0)
	return parser.parse_args()

def gettrxfrombinlog(filename,TRX,MAX_TRX):
	offset = 0
	with open(filename,'rb') as f:
		if f.read(4) != b'\xfebin':
			f.seek(0,0)
		while True:
			bdata = f.read(19)
			if bdata == b'':
				break
			timestamp, event_type, server_id, event_size, log_pos, flags = struct.unpack("<LBLLLh",bdata[0:19])
			f.seek(event_size-19,1) #Данные не будут прочитаны
			if event_type == 33: #BEGIN GTID_EVENT
				offset = f.tell()
			elif event_type == 16: #commit XID_EVENT
				size = f.tell() - offset
				size = int(size/4096)
				if size > MAX_TRX:
					TRX[MAX_TRX] += 1
				else:
					TRX[size] += 1
	return TRX

if __name__ == '__main__':
	parser = _argparse()
	filelist = []
	for pattern in parser.files:
		filelist += glob.glob(pattern)
	fileset = set(filelist)
	if len(fileset) == 0:
		print('At least one binlog file')
		sys.exit(1)
	
	MAX_TRX = 1*256 #256 * 4KB
	TRX = [ 0 for x in range(MAX_TRX) ] #Инициализируем список размеров транзакций. Округлить до 1 КБ
	TRX.append(0) #Добавляем счетчик выходов за пределы диапазона
	for filename in fileset:
		TRX = gettrxfrombinlog(filename,TRX,MAX_TRX)
	for idx,val in enumerate(TRX):
		if val>0:
			print(str((idx+1)*4) + " Количество транзакций внутри КБ: " + str(val) if idx < MAX_TRX else "Превосходить " + str(idx*4) + " Количество транзакций в КБ: " + str(val)) #python2если Если получен кортеж, Не поддерживает китайский язык
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose