Spec-Zone .ru
спецификации, руководства, описания, API
|
Если Вы следуете за лучшими методами для проектирования баз данных и настраивающимися методами для операций SQL,
но Ваша база данных все еще замедляет тяжелое дисковое действие ввода-вывода, исследуйте эти низкоуровневые
методы, связанные с дисковым вводом-выводом. Если Unix top
инструмент или Windows
Task Manager показывают, что процент использования ЦП с Вашей рабочей нагрузкой составляет меньше чем 70 %, Ваша
рабочая нагрузка, вероятно, ограничена диском.
Когда табличные данные кэшируются в InnoDB
пул
буферов, это может быть обработано много раз запросами, не требуя никакого дискового ввода-вывода.
Определите размер пула буферов с innodb_buffer_pool_size
опция. Эта область памяти достаточно важна,
что занятые базы данных часто определяют размер приблизительно 80 % количества физической памяти. Для
получения дополнительной информации см. Раздел 8.9.1,"
InnoDB
Пул буферов".
В некоторых версиях GNU/Linux и Unix, сбрасывая файлы к диску с Unix fsync()
вызовите (который InnoDB
использование
по умолчанию), и подобные методы является удивительно медленным. Если производительность записи базы
данных является проблемой, проведите сравнительные тесты с innodb_flush_method
набор параметра к O_DSYNC
.
При использовании InnoDB
механизм хранения на Солярисе
10 для x86_64 архитектуры (AMD Opteron), используйте прямой ввод-вывод для InnoDB
Связанные файлы, чтобы избежать ухудшения InnoDB
производительность. Использовать прямой ввод-вывод для всей файловой системы UFS, используемой для того,
чтобы сохранить InnoDB
Связанные файлы, смонтируйте это с forcedirectio
опция; см. mount_ufs(1M)
.
(Значение по умолчанию на Солярисе 10/x86_64 не должно использовать
эту опцию.), Чтобы применить прямой ввод-вывод только к InnoDB
операции
файла, а не целая файловая система, набор innodb_flush_method = O_DIRECT
. С этой установкой, InnoDB
вызовы directio()
вместо fcntl()
для ввода-вывода к файлам данных (не для ввода-вывода к файлам
журнала).
При использовании InnoDB
механизм хранения с большим
innodb_buffer_pool_size
значение на любом выпуске Соляриса 2.6 и и любая платформа (sparc/x86/x64/amd64), проведите
сравнительные тесты с InnoDB
файлы данных и файлы журнала на необработанных
устройствах или на отдельной прямой файловой системе UFS ввода-вывода, используя forcedirectio
смонтируйте опцию как описано ранее. (Необходимо использовать опцию монтирования вместо установки innodb_flush_method
если Вы хотите прямой ввод-вывод для файлов журнала.) Пользователи файловой системы Veritas VxFS должен
использовать convosync=direct
смонтируйте опцию.
Не помещайте другие файлы данных MySQL, такие как те для MyISAM
таблицы, на прямой файловой системе ввода-вывода. Исполнимые программы или библиотеки не должны быть помещены в прямую файловую систему
ввода-вывода.
Если Вы имеете дополнительные устройства хранения в наличии, чтобы установить конфигурацию RAID или символьные ссылки на различные диски, Раздел 8.11.3, "Оптимизируя Дисковый ввод-вывод" для дополнительных низкоуровневых подсказок по вводу-выводу.
Если пропускная способность периодически отбрасывает из-за InnoDB
операции контрольной точки,
рассмотрите увеличение значения innodb_io_capacity
параметр конфигурации. Более высокие значения
вызывают более частое сбрасывание,
избегая отставания в работе, которое может вызвать падения в пропускной способности.
Если система не запаздывает с InnoDB
сбрасывание
операций, рассмотрите понижение значения innodb_io_capacity
параметр конфигурации. Как правило, Вы сохраняете
это значение опции столь же низко как практичное, но не настолько низко, что оно вызывает периодические
падения пропускной способности как упомянуто в предыдущем маркере. В типичном сценарии, где Вы могли
понизить значение опции, Вы могли бы видеть комбинацию как это в выводе от SHOW ENGINE INNODB STATUS
:
Длина списка предыстории низко, ниже нескольких тысяч.
Вставьте буферные слияния близко к вставленным строкам.
Измененные страницы в пуле буферов последовательно значительно ниже innodb_max_dirty_pages_pct
из пула буферов. (Мера в то время,
когда сервер не делает объема, вставляет; это нормально во время объема, вставляет для
измененного процента страниц, чтобы повыситься значительно.)
Log sequence number - Last checkpoint
в
меньше чем 7/8 или идеально меньше чем 6/8 полного размера InnoDB
файлы журнала.
Другой InnoDB
параметры конфигурации рассмотреть,
настраивая рабочие нагрузки I/O-bound включают innodb_adaptive_flushing
, innodb_change_buffer_max_size
, innodb_change_buffering
, innodb_flush_neighbors
, innodb_log_buffer_size
, innodb_log_file_size
, innodb_lru_scan_depth
, innodb_max_dirty_pages_pct
, innodb_max_purge_lag
, innodb_open_files
, innodb_page_size
, innodb_random_read_ahead
, innodb_read_ahead_threshold
, innodb_read_io_threads
, innodb_rollback_segments
, innodb_write_io_threads
, и sync_binlog
.