Что важнее для сервера баз данных? Mem? Мем скорость? Сердечники?

11

Я собираюсь переместить свой сервер баз данных на несколько лучшее новое оборудование. Текущий сервер базы данных не имеет никаких проблем, за исключением того, что он работает под управлением Centos 4. Текущее аппаратное обеспечение - это двухъядерный процессор xeon 5335, 4 15K RPM в RAID 10 и 4 ГБ (да, это действительно только 4 ГБ) памяти.

Выбор аппаратного обеспечения в моем бюджете практически не имеет различий в цене и будет иметь те же жесткие диски 4 15K RPM в RAID 10. Они:

  • 2 четырехъядерных процессора Xeon 5335 с 8 ГБ 533/667
  • 2 шестигранных ядра Xeon 2620 с 16 ГБ 1333
  • 4 двухъядерных Opteron 8212 с 8 ГБ 667
  • 1 окто ядро ​​Xeon 2650 с 8 ГБ 1333
  • 1 четырехъядерный процессор Xeon 3460 с 16 ГБ 1333

За исключением жестких дисков, каков порядок важных частей сервера базы данных? Это что-то вроде: объем памяти, скорость памяти, ядра, а затем размер кеша?

Эхо говорит Восстановить Монику
источник
3
Каково ваше текущее использование на процессоре? Вы работаете на 10%? 50%? Если у вас ~ 30-40% на регулярной основе, то, похоже, вам нужен 2620 с 16 ГБ ОЗУ (шестнадцатеричный чип Q1`12 с 16 ГБ FAST RAM? Да, пожалуйста)
jcolebrand
@jcolebrand Это тот, который я думал, будет лучше. 10-20% загрузка в среднем с шипами до 30-40% иногда.
Эхо говорит восстановить Монику
XEON 2620 на 2 ГГц, XEON 3460 на 2,8 ГГц?
Нильс

Ответы:

21

По моему опыту, то, что вы ищете, будет в следующем порядке:

  1. Скорость дисковой подсистемы. RAID10 по моему опыту самый лучший. Бонусные баллы за SSD.
  2. Общий объем ОЗУ Чем больше ОЗУ, тем больше кеша сможет иметь ваш сервер.
  3. Скорость памяти. Быстрее ОЗУ, очевидно, лучше, чем медленная ОЗУ, однако ОЗУ всегда быстрее, чем диски, поэтому более медленная ОЗУ лучше, чем менее быстрая ОЗУ.
  4. Количество ядер процессора
  5. Скорость процессора

Это, очевидно, зависит от приложения, но обычно работа сервера базы данных заключается в обеспечении действительно быстрого доступа к данным, поэтому скорость процессора менее важна, чем скорость доступа к данным (дискам и оперативной памяти). Но, очевидно, если вы используете много математических вычислений в своих запросах, вам нужно больше ресурсов процессора.

мистифицировать
источник
2
в зависимости от архитектуры БД, я бы сказал, что большее количество ядер будет лучше в целом, чем большая скорость процессора, потому что более высокая тактовая частота! = более короткий конвейер, и есть слишком много вещей, которые нужно учитывать, но с большим количеством ядер ОС может иметь больше места для выполняйте побочные процессы, и движки обычно достаточно умны, чтобы иметь возможность распределять себя по большему количеству ядер.
Jcolebrand
@jcolebrand точка принята и ответ обновлен!
Джош
2
Поскольку MySQL был специально упомянут, более быстрые процессоры, как правило, являются лучшим выбором, чем больше (при условии, что вы не говорите только о 1 или 2), поскольку скорость одного запроса принципиально ограничена скоростью одного процессора. Даже самые последние версии MySQL не масштабируются так же хорошо, как некоторые другие СУБД для нескольких ядер из-за внутреннего мьютекса и конфликта семафоров. Я использую несколько 24-ядерных серверов, и я бы отдал левую руку, чтобы обменять их на вдвое меньше ядер, которые в 1,5 раза быстрее.
Аарон Браун
7

Когда дело доходит до MySQL, вы также должны учитывать механизм хранения данных по умолчанию.

Если используются только данные MyISAM, вам нужно учитывать только следующее

Скорость диска, скорость памяти, общая оперативная память, процессор

Количество ядер - большой фактор, потому что MyISAM (фактически, mysqld) не использует несколько ядер.

Если вы используете только данные InnoDB, теперь вам есть о чем поговорить, когда дело доходит до ядер.

MySQL 5.5 теперь поставляется с многоядерной поддержкой InnoDB.

Все процессоры будут запускать все цилиндры для InnoDB, если вы правильно настроите InnoDB. Верьте или нет, если вы не настроите InnoDB, есть случаи, когда более старые версии InnoDB будут быстрее из коробки, чем более новые версии.

Примечание для модераторов

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

RolandoMySQLDBA
источник
Это хорошо знать. Множество таблиц - это MyISAM, но большинство, если не все, можно изменить на InnoDB, о чем я и думал. Я собираюсь обновиться до 5.1 (с 4.1)
Эхо говорит Восстановить Монику
Вам нужно обновить до 5.5. MySQL 5.1 требует плагин. Проще просто перейти на 5.5.
RolandoMySQLDBA
Плагин InnoDB может быть легко установлен в 5.1. Кроме того, Percona Server 5.1 основан на плагине InnoDB.
Аарон Браун
@AaronBrown: Так как Echo имеет MySQL 4.1, это будет делать либо Percona 5.1, либо MySQL 5.5. Несмотря на то, что ранее я установил плагины semisync 5.5, я просто немного ленив на плагинах.
RolandoMySQLDBA
0

Из всего, что уже было сказано и что мне показалось на DB-серверах: «2 hex Core Xeon 2620 с 16GB 1333» мне кажется первым выбором.

Используйте RDIMM3 с частотой 1333 МГц - 12 или 15 ГБ, вероятно, быстрее, чем 16 ГБ, поскольку вы можете разделить количество модулей DIMM на 3.

Если ваша БД загружена, ищите хорошую производительность дискового ввода-вывода.

Nils
источник