Зелене Мишко як визначити оптимальний розмір innodb_log_file_size

Як визначити оптимальний розмір innodb_log_file_size

Зверніть увагу на номер log sequence. Це загальна кількість байт записаних в лог. Так що ми можемо дізнатися скільки Мб було записано за хвилину. (Ці команди будуть працювати в будь-якій версії MySQL, починаючи з 5.0 можна скористатися метрикою Innodb_os_log_written з SHOW GLOBAL STATUS.)


Хорошим правилом буде установка такого розміру, щоб там могли вміститися близько години логів. Тоді InnoDB зможе досить ефективно спланувати записи в файли даних, і в той же час це хороший компросс для швидкості запуску. Округляем до 128 Мб і оскільки за замовчуванням файлів два встановлюємо innodb_log_file_size = 64M.
Чи не занадто це мало? Можливо. Часто я бачу розміри балок транзакцій в кілька гігабайт, але зазвичай це помилка. Сервер який я використовував для вимірювань - великий і робить багато роботи, це не іграшка для тестів. Розмір лог файлів не варто залишати в 5 Мб за замовчуванням, але часто не потрібно встановлювати їх настільки великими, як ви можете думати.
Якщо скориставшись цим парвілом ви получулі цифру в кілька гігабайн, значить мабуть ви дуже активно пишете в базу. В цьому випадку ви можете спробувати встановити розмір трохи менше, щоб мінімізувати час відновлення. Але врахуйте: час відновлення залежить не тільки від розміру балки транзцакцій, але і від кількості записів в ньому. Якщо у вас багато великих транзакцій, можна встановити розмір побільше. І навпаки: якщо у вас багато маленьких транзакцій, варто встановити розмір трохи менше.

У будь-якому випадків, цифра полученая цим правилом - хороша відправна точка.
Оригінал: Baron Schwartz, How to calculate a good InnoDB log file size

Схожі статті