Назад | Перейти на главную страницу

Настройка MySQL для High Connections, High Writes

Моя коробка отключается. Я пытаюсь настроить MySQL для:

Текущая настройка:

Конфигурация такая: my-innodb-heavy-4G.cnf. Конкретные модификации:

В остальном все по умолчанию. Какие рекомендации вы, ребята, дадите для другой установки MySQL?

Соображения следующие:

  1. Кластер MySQL
  2. Репликация Master / Slave (не знаю, будет ли здесь много выгод).

Мы уже используем самую мощную коробку, доступную AWS, так что на самом деле похоже, что распределенная система - это то, что нам нужно. Выделенное оборудование мощь возможно, но это очень далеко.

Что вы рекомендуете / думаете, как нам следует действовать? Мне не хватает какой-то волшебной конфигурации?

Спасибо заранее, Джастин

Раскрытие информации - я работаю в составе команды разработчиков MySQL Cluster.

Чтобы исправить положение выше, MySQL Cluster обычно используется в веб-приложениях для масштабирования операций записи - автоматическое сегментирование в сочетании с репликацией с несколькими мастерами дает очень высокую пропускную способность записи, то есть 2,5 млн операций записи в секунду на кластере из 8 стандартных серверов Intel: http://mysql.com/why-mysql/benchmarks/mysql-cluster/

С другой стороны, хранилище данных на самом деле не целевая рабочая нагрузка.

Рекомендую взглянуть на руководство по производительности MySQL (требуется регистр), в котором обсуждаются различные стратегии сегментирования: http://mysql.com/why-mysql/white-papers/mysql_wp_cluster_perfomance.php

MySQL Cluster очень редко применяется в настройке, доступной через Интернет. Этот продукт в основном доступен для хранилищ данных в выделенной кластерной среде.

Репликация MySQL (главный / подчиненный, двойной главный и т. Д.) Не поможет, если вы склонны писать. Чтобы репликация произошла, запись должна быть «перенаправлена ​​/ выполнена» во всех системах ... это легко снизит вашу глобальную производительность. Примечание: репликация может быть полезна, если у вас есть конкуренция за таблицу (блокировка всей таблицы), но если вы используете innodb, я был бы удивлен, что это происходит часто. Кроме того, стоимость работы ведомого устройства может быть снижена за счет экономии времени в сценарии кризиса / восстановления - но вопрос не в этом.

Вы можете изучить концепцию шардинга. В сочетании с MySQL-Proxy и тщательно разработанным сценарием LUA вы можете автоматически переписывать свои SQL-запросы для разделения записи в кластер системы MySQL (осторожно при сбое экземпляров AWS).

Хотя вы говорите, что это маловероятно, следует внимательно изучить специальный вариант оборудования. Большая часть среды IAAS (например, AWS / EC2) подготовлена ​​к очень сильной предвзятости в сторону чтения операций ввода-вывода. На выделенном оборудовании вы можете использовать кэш SSD и / или многоуровневое хранилище. Вы также можете использовать выделенную сеть SAN, в которой производительность операций ввода-вывода зависит от ваших конкретных требований.