Нужны данные об управлении дисками по ОС: получение базового размера блока ввода-вывода, опция «синхронизация», прямой доступ к памяти - PullRequest
1 голос
/ 01 апреля 2010

Я хочу убедиться, что я сделал все возможное, чтобы настроить диски системы для серьезного использования базы данных. Три области, о которых я знаю (какие-либо другие?), Которые должны быть обеспокоены:

  1. Размер ввода-вывода: ядро ​​базы данных и собственный размер диска должны совпадать, или собственный размер ввода-вывода базы данных должен быть кратным собственному размеру ввода-вывода диска.
  2. Диски, поддерживающие прямой доступ к памяти (например, IDE), должны быть настроены для него.
  3. Когда диск говорит, что записал данные постоянно, так и должно быть! Не хранить его в кеше и не врать об этом.

Я искал информацию о том, как это сделать для CENTOS и Ubuntu, но, похоже, ничего не могу найти!

Я хочу иметь возможность проверить эти вещи и изменить их при необходимости.

Любой вклад приветствуется.

ОБРАТИТЕ ВНИМАНИЕ: Фактическое аппаратное обеспечение ОЧЕНЬ скромно. Суть в том, чтобы максимально эффективно использовать имеющееся у нас оборудование, даже если это «не очень серьезное оборудование» с более широкой перспективы.

MORE

Я ценю время, затраченное на чтение и ответ, но я надеюсь получить «ответы», которые представляют собой не просто хороший совет по базе данных / аппаратному обеспечению, но ответы, которые фактически касаются конкретных вопросов, о которых я спрашивал. А именно:

1) Какой хороший простой способ определить размер блока ввода-вывода, который хочет сделать ОС? Как я могу это изменить? (IOW: если это исключительно проблема формата файловой системы, как я могу узнать, что использовалось в уже созданной файловой системе? Я знаю, что / etc / fstab сообщит мне формат файловой системы ... В данном случае это ext3.

2) Как узнать, есть ли на диске DMA? Если так, как я могу включить это? (Мне сказали, что некоторые диски имеют такую ​​возможность, но теперь я хочу проверить и убедиться, что , если у этих дисков есть, она включена.)

И, наконец;

3) Как я могу сказать, что привод просто говорит автору записи, что его материал записан, когда он на самом деле все еще находится в кеше? И, что более важно, как я могу настроить систему, чтобы НЕ использовать такие функции, если / когда они существуют?

Спасибо за ваши идеи. RT

Ответы [ 3 ]

1 голос
/ 01 апреля 2010

1) Проверьте / sys / block / sdX / queue / {max_hw_sectors_kb, max_sectors_kb}. Во-первых, максимальный размер передачи, который позволяет hw, другой - это текущий максимальный размер, который можно установить на любое значение <= max_hw_sectors_kb </p>

2) hdparm -i / dev / sdX

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

1 голос
/ 01 апреля 2010

«серьезное использование базы данных», и вы упоминаете IDE в том же предложении?

SSD или 15k SCSI в многошпиндельном массиве RAID 1 + 0 с отдельными массивами для данных, журналов и резервного копирования. Рассмотрим отдельный массив для базы данных tempdb.

Вы также переключили бы кэш контроллера на 100% для чтения, чтобы избежать проблем с кэшированием

Конечно, если это "серьезно", то вы бы рассмотрели кластеризацию и т. Д., Так что SAN здесь пригодится, но вы можете быть не так быстры, как локальные шпиндели

0 голосов
/ 01 апреля 2010

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

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

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

2) Я согласен с gbn, на практике не использую кэширование записи. Я потерял базы данных на RAID-массивах с резервной батареей. Настройте плату контроллера хранения для сквозной записи.

3) Необработанные устройства обеспечивают гарантированную запись, но это не стоит хлопот. Некоторые файловые системы также предоставляют параметры синхронной записи, по возможности используйте их. Я неравнодушен к VxFS, но я из мира Солнца. В Linux btrfs, по крайней мере, является выдающимся, но сейчас Ext3 работает нормально, если вы правильно настроили свою базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...