Я узнал, какой размер пула innodb выделил память из show innodb status
но я не мог понять, сколько на самом деле он использует. Может, ему нужно больше или я могу от него немного забыть? Как это узнать? Да, и один вопрос, поскольку я новичок в игровой площадке конфигурации innodb - она использует две разные памяти, верно? Один - баран, а другой - диск, да?
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 7162316778; in additional pool allocated 1048576
Buffer pool size 393216
Free buffers 0
Database pages 380971
Modified db pages 1906
Pending reads 0
Pending writes: LRU 0, flush list 1, single page 0
Pages read 16986872, created 474559, written 9972877
0.00 reads/s, 39.33 creates/s, 353.48 writes/s
Buffer pool hit rate 1000 / 1000
В настоящее время я установил размер пула (см. Ниже) моего сервера 12 ГБ.
innodb_buffer_pool_size = 6G
Судя по предоставленным вами выходным данным, ваши 6 гигабайт оперативной памяти были полностью использованы. Это не означает, что вы используете недостаточно - это просто означает, что в какой-то момент с диска было прочитано столько данных. Вам нужно искать другие подробности об использовании вашей системы. Если у вас много активности на диске, это может быть признаком того, что вам нужно больше памяти, выделенной для InnoDB. Это может означать многое другое.
Поскольку об этом уровне настройки нужно так много узнать, я предлагаю вам проверить http://www.mysqlperformanceblog.com и прочтите несколько часов.
Пул InnoDB рекомендует 2/3 имеющейся у вас оперативной памяти.
Нет, весь пул в памяти, но он имеет сложную структуру и использует дополнительный пул памяти плюс еще немного оперативной памяти для внутренних нужд.
Большая часть пула InnoDB - это просто кеш ваших данных. Так что на самом деле нет никакого способа определить, сколько «нужно». Вероятно, нет, поскольку у вас пул больше, чем размер вашей базы данных.
В вашем выводе вы можете увидеть, что Freebuffers = 0. Таким образом, используется вся память, но, как я уже сказал, это просто означает, что ваша база данных может использовать всю оперативную память.
«Частота попаданий в пул буферов 1000/1000» означает, что у вас высокий процент попаданий (все запросы используют пул, а не диск), поэтому не нужно беспокоиться или увеличивать буфер.
Обычно я просто устанавливаю размер буфера innodb = (общий размер таблиц innodb + 10-25%)
некоторые запросы, которые я нашел, чтобы помочь найти общий размер таблицы innodb на http://vbtechsupport.com/462/