Page 1 of 1

innodb_buffer_pool_size

Posted: Fri Sep 28, 2018 10:07 am
by dave
Здравствуйте. Нужна Ваша помощь. Часто сталкиваемся с высокой нагрузкой которую создают кроны скриптов 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
опишите пожалуйста детальнее, или дайте направление в котором гуглить.
Я думал если кеш достаточный то и так все в памяти держиться

Спасибо!

Re: innodb_buffer_pool_size

Posted: Fri Sep 28, 2018 10:29 am
by admin
Приветствую!

размер таблиц - я смотрю по information_scheme либо в PMA , он оттуда же берет информацию, в реальным размером файлов не сравнивал но думаю корреляция однозначно есть.


темп диск мускла это другое относительно innodb pool

пул - это мы взяли данные и держим их в памяти что б при запросе не лазить на диск

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

НО вы пишете что у вас нагрузку создают кроны, те как я понимаю нагрузка на проц а не диск?

Re: innodb_buffer_pool_size

Posted: Fri Sep 28, 2018 11:27 am
by dave
Нагрузка и на диск и напроц, потихоньку разбираемся. Основной вопрос был innodb_buffer_pool_size спасибо. Буду разбираться

Re: innodb_buffer_pool_size

Posted: Fri Sep 28, 2018 11:35 am
by admin
да, надо смотреть что именно грузит и что именно

Re: innodb_buffer_pool_size

Posted: Sat Sep 29, 2018 8:32 am
by dave
Может кому пригодится вот хорошая статья https://rtfm.co.ua/mysqlmariadb-tyuning ... pool_size/ какое значение поставить для innodb_buffer_pool_size

Re: innodb_buffer_pool_size

Posted: Sun Sep 30, 2018 9:02 am
by admin
Спасибо, полезно.

Re: innodb_buffer_pool_size

Posted: Fri Mar 31, 2023 6:59 am
by serge
Скажите, по поводу innodb_buffer_pool_size, можно ли ориентироваться просто по этому значению (на сервере только смарт):
19G /var/lib/mysql
если, я правильно понимаю, в любом случае процентов 80 там это как раз таблицы в innodb
то есть можно смело ставить innodb_buffer_pool_size, допустим 20-24G (с большим запасом) и не переживать за этот момент

PS: оперативки там 64G и более

Re: innodb_buffer_pool_size

Posted: Fri Mar 31, 2023 7:35 am
by admin
да, если вся база влезает в память это конечно прекрасно