Я в процессе настройки нового сервера базы данных. Раньше я запускал несколько серверов баз данных mysql, и они работали нормально.
Но я хотел бы услышать рекомендуемые настройки для моего сервера. Например, что я должен установить максимальное соединение, query_cache_size, table_cache и так далее.
У меня около 4-600 в секунду:
Открытых столов: 112 запросов в секунду в среднем: 430,386.
Сервер, на котором я его настраиваю, имеет следующую конфигурацию:
Linux версии 2.6.32-5-amd64 (Debian 2.6.32-41squeeze2)
2x Intel Xeon X3440 @ 2,53 ГГц
4 ГБ ОЗУ
/, / boot, / tmp и т. д. на программном RAID1, 2x 7200 об / мин SATA
Размещение данных на программном RAID0, 2x7200 об / мин SATA
Я собираюсь разместить базы данных mysql на RAID0.
Мне что-нибудь не хватает? Дай мне знать!
Заранее спасибо, я с нетерпением жду вашего ответа :-)
/ Расмус
невозможно дать хороший ответ, не зная, какой у вас тип рабочей нагрузки, объем данных и шаблоны использования. честно говоря, даже зная их в конце, вам придется самому выяснить, что работает лучше всего. это означает, что нужно проводить сравнительный анализ, отслеживание того, что происходит внутри, регулярная проверка журналы медленных запросов и т.п.
Настройки mysql по умолчанию не совсем оптимальны для современного оборудования, в качестве разумной отправной точки вы можете использовать значения, предложенные мастер настройки mysql от Percona или mysqltuner.pl.
скорее всего inodb в качестве механизма хранения будет более оптимальным в вашем случае. всего 4 ГБ памяти - это довольно мало [опять же, я не знаю, каков общий размер вашего набора данных]. 2x Xeon X3440 - это много с точки зрения мощности процессора, вам лучше иметь много одновременного трафика и иметь возможность уместить все данные в памяти, иначе вы не будете много использовать доступные процессоры, просто ожидая дисков. читать / писать данные.
примечание стороны: данные по raid0? Я надеюсь, что у вас есть сервер горячего резерва с репликацией в реальном времени или данные вообще не важны.
Какого черта? У вас есть не критичные к производительности / легко восстанавливаемые материалы, работающие с зеркала, в то время как ваши критически важные, изменчивые данные находятся на JBOD ????? Что-то не хватает? У вас все наоборот.
Это первая и самая острая проблема. Если у вас действительно 4 диска, и если предположить, что это какое-то приложение OLTP, то я бы выбрал что-то вроде ...
disk1 [md0][md1 ][md2 ]
disk2 [md0][md1 ][md2 ]
disk3 [sw0][md3 ]
disk4 [sw1][md3 ]
Где загрузка выполняется с md0, root на md1, данные распределяются по md2 и md3 (где md0 ... 3 - это RAID1). С RAID без зеркалирования на дисках 3 и 4 (вы можете рассмотреть возможность размещения журналов в их собственном разделе вместо sw1).
Настройка системы типа OLAP будет совсем другой.
Вы также можете потратить некоторое время на размышления о файловой системе, которую вы запускаете на разделах данных (xfs, вероятно, является безопасным вариантом).
Что касается настройки экземпляра mysql - это зависит от того, какие данные вы храните и как к ним обращаются. Прочтите раздел настройки в руководстве и получите myqltuner.pl и / или инструментарий Percona. Но сначала вам нужно решить, что вам больше подходит: innodb или myisam - опять же, это зависит от расположения данных и способа доступа к ним.
RAID0 aka stripe ОЧЕНЬ опасен для БД. И для всего остального тоже. Один диск потерян - все потеряно. Stripe немного быстрее, чем однодисковый и другие RAID, но слишком рискованно.
Для получения базовой статистики и рекомендаций вы можете начать с mysqltuner.pl
сценарий. Не применяйте рекомендации вслепую, так как это может снизить производительность.
Для получения расширенной поддержки и общих рекомендаций / настроек стоит обратиться к официальному представителю Percona. сайт и их блог