Вопрос

Установка сервера MySQL довольно проста. Однако после установки настройка сервера является важной задачей для DBA.

Имея 2 ГБ оперативной памяти и 250 ГБ дискового пространства, как мне настроить сервер MySQL, чтобы он работал хорошо?

Также должна быть надлежащая конфигурация двигателя InnoDB.

Это было полезно?

Решение

Вот некоторые из моих рекомендаций для Innodb. По моему опыту, размер пула буферов является наиболее важным, потому что чем больше данных вы можете хранить в кэше, тем меньше времени ваша система будет тратить с помощью дискового iOS.

http://dev.mysql.com/doc/refman/5.5/en/innodb-buffer-pool.htmlЭто буферный пул, где кэшируются данные и индекс

innodb_buffer_pool_size=(In Mb, 80% of available RAM), для 2 ГБ, я бы положил 1536.

Тщательно следите за своей системой и будьте готовы к уменьшению этой переменной, если вы начнете видеть обмена.

http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_additional_mem_pool_sizeЗдесь хранятся метаданные. Если бы у вас было много таблиц, было бы полезно увеличить это.

innodb_additional_mem_pool_size=16M

http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_data_file_pathЗдесь вы можете определить местоположение файла IBDATA. Если вы можете поместить файл IBDATA на отдельный диск, который использует отдельный контроллер, он уменьшит конфликт. Будьте осторожны с этим вариантом. Убедитесь, что вы прочитали эту переменную, прежде чем использовать ее. Если ваш файл IBData нуждается в более чем 29G, MySQL остановит все, что он делает, и ждет, пока вы добавите место.

innodb_data_file_path = ibdata1:128M:autoextend:max:29G

Это управляет тем, какие приращения увеличивается файл IBDATA. Так что, если вы поместите действительно небольшое число, например, 10 МБ, это будет означать, что Innodb потратит много времени на увеличение своего файла Ibdata, если у вас было много вставок.

innodb_autoextend_increment = 128M

Куда поместить журналы транзакций. Если вы сможете поставить журналы транзакций на другой диск с отдельным контроллером, это также уменьшит конфликт

innodb_log_group_home_dir = /tlog/

Каков размер файлов журнала

innodb_log_file_size = 500M

25% от размера буферных пулов, позволяет большим транзакциям работать без необходимости записать на диск

innodb_log_buffer_size = 384M

Я также определяю, куда должен идти каталог температуры. Определяет, где MySQL создает временные файлы. Еще один способ уменьшить раздоры.

Обычно я оставляю достаточно места, чтобы позволить переосмысление самой большой таблицы на сервере.

tmpdir=/opt/tmp/

И журнал ошибок полезен на случай, если что -то пойдет не так, и вам нужно снимать съемки.

log-error=/var/log/mysql.err

Кроме того, если у вас более 4 процессоров, эти переменные могут быть увеличены.

Это не имеет ничего общего с Innodb. Есть и другие переменные, с которыми вы можете сыграть, которые не имеют ничего общего с Innodb. Я добавил их внизу, но они были взяты непосредственно с сервера, который я использую для тестирования. Избегайте просто копирования и вставки их. Чтение документации MySQL на основе версии, которую вы используете, является лучшим способом сделать правильный выбор.

# Fine Tunning
key_buffer              = 512M
max_allowed_packet      = 16M
thread_stack            = 128K
thread_cache_size       = 8
join_buffer_size        = 64M
sort_buffer_size        = 16M
myisam_max_sort_file_size = 1024M
tmp_table_size = 256M
max_heap_table_size = 257M
myisam_sort_buffer_size=1024M

table_cache            = 1000
thread_concurrency     = 8
# * Query Cache Configuration
#
query_cache_limit       = 16M
query_cache_size        = 16M


skip-name-resolve
Лицензировано под: CC-BY-SA с атрибуция
Не связан с dba.stackexchange
scroll top