innodb_buffer_pool_size
Posted: Fri Sep 28, 2018 10:07 am
Здравствуйте. Нужна Ваша помощь. Часто сталкиваемся с высокой нагрузкой которую создают кроны скриптов SmartCJ. Это связано с настройками сервера баз данных.
Читал Ваше руководство http://smartcj.com/wiki/doku.php?id=ru:mysql_tunning но все же остается не понятным один момент, надеюсь Вы поможете разобраться с этим.
Не понятно как именно выставить правильно значение innodb_buffer_pool_size
>innodb_buffer_pool_size - туда должен влезать весь датафайл (таблицы в InnoDB), те если он у вас 500 метров и их 5 штук то тут должно быть 2.5 ГИГА (конкретно эта цифтра - это размер всех активных rot_galleries + rot_gallery_data* + rot_gallery_stats таблиц ).
Полагаю что все таблицы в InnoDB имеют расширение .idb и найти их можно примерно так: http://joxi.ru/Q2K1Gb6i4Md8br
с помощью find найти все файлы *.idb в /var/lib/mysql и сложить их размеры
добавить туда еще размер файла /var/lib/mysql/ibdata1
в моем случае получилось 2068МБ, т.е. значение innodb_buffer_pool_size нужно выставить не менее 2068М в настройках сервера баз данных.
for i in $(find /var/lib/mysql -iname "*.ibd" -o -iname "ibdata1"); do du -ms $i >>list;done
awk '{ SUM += $1 } END {print SUM}' list
2068
Если я не прав подскажите как правильно или в какую сторону копать.
Изначально придерживаемся рекомендаций в дминке скрипта и конвертируем в innodb те таблицы что рекомендовано.
Также смотрим что показывает mysqltuner но все же хочется разобраться.
И подскажите еще вот это
> темп мускла в память можно вынести, должно помочь
это отсюда viewtopic.php?f=7&t=96706&p=167616&hili ... er#p167616
опишите пожалуйста детальнее, или дайте направление в котором гуглить.
Я думал если кеш достаточный то и так все в памяти держиться
Спасибо!
Читал Ваше руководство http://smartcj.com/wiki/doku.php?id=ru:mysql_tunning но все же остается не понятным один момент, надеюсь Вы поможете разобраться с этим.
Не понятно как именно выставить правильно значение innodb_buffer_pool_size
>innodb_buffer_pool_size - туда должен влезать весь датафайл (таблицы в InnoDB), те если он у вас 500 метров и их 5 штук то тут должно быть 2.5 ГИГА (конкретно эта цифтра - это размер всех активных rot_galleries + rot_gallery_data* + rot_gallery_stats таблиц ).
Полагаю что все таблицы в InnoDB имеют расширение .idb и найти их можно примерно так: http://joxi.ru/Q2K1Gb6i4Md8br
с помощью find найти все файлы *.idb в /var/lib/mysql и сложить их размеры
добавить туда еще размер файла /var/lib/mysql/ibdata1
в моем случае получилось 2068МБ, т.е. значение innodb_buffer_pool_size нужно выставить не менее 2068М в настройках сервера баз данных.
for i in $(find /var/lib/mysql -iname "*.ibd" -o -iname "ibdata1"); do du -ms $i >>list;done
awk '{ SUM += $1 } END {print SUM}' list
2068
Если я не прав подскажите как правильно или в какую сторону копать.
Изначально придерживаемся рекомендаций в дминке скрипта и конвертируем в innodb те таблицы что рекомендовано.
Также смотрим что показывает mysqltuner но все же хочется разобраться.
И подскажите еще вот это
> темп мускла в память можно вынести, должно помочь
это отсюда viewtopic.php?f=7&t=96706&p=167616&hili ... er#p167616
опишите пожалуйста детальнее, или дайте направление в котором гуглить.
Я думал если кеш достаточный то и так все в памяти держиться
Спасибо!