15
HDD/SSD/RAM/RAID и кого на ком кэшировать Михаил Конюхов От Perfect Solutions

HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solutions)

  • Upload
    ontico

  • View
    112

  • Download
    2

Embed Size (px)

Citation preview

HDD/SSD/RAM/RAIDи кого на ком кэшировать

Михаил КонюховОт Perfect Solutions

Классическая схема• Несколько HDD/SSD• Кабель+контроллер+шина• RAID n• LVM• FS

• Распределенное размещение проблем и багов

• Непрозрачность с уровней

2 схемы «по дефолту»• 5 raid из 3х HDD (7500 rps, по

3 блина, 2ТБ диск)• LVM• Ext4

• 5 raid из 3х ssd (600 / 400 MB/s, 2 ТБ диск)

• LVM• Ext4

2 результата «по дефолту»• ~500-600 IOPS r, ~100 IOPS w.• По факту 100-200Mb/s

линейного чтения

• Много тысяч IOPS rw• По факту 600 MB/s записи

А что такое операция ввода-вывода?• Это запись/чтение одного сектора «по-глупому»• Запись/чтение за один оборот N секторов «по уму»• Запись/чтение batch из N*M секторов «совсем по уму»

По уму… и о том, где в HDD блины?

Ура! Мы нашли самое важное число!• Допустим, это 6 секторов, и

диски у нас с 4KB физ.секторами

• Значит, 24KB блоки нам удобны более всего

Ура! Мы нашли самое важное число!• Допустим, это 6 секторов, и

диски у нас с 4KB физ.секторами

• Значит, 24KB блоки нам удобны более всего

• Блоки RAID – кратно 24 KB• LVM (и pv, и lv) – кратно

размеру блоку RAID…

Ура! Мы нашли самое важное число!• Допустим, это 6 секторов, и

диски у нас с 4KB физ.секторами

• Значит, 24KB блоки нам удобны более всего

• Блоки RAID – кратно 24 KB• LVM (и pv, и lv) – кратно

размеру блока RAID• Размер кластера fs – кратно

блоку RAID

• В итоге за одну операцию ввода-вывода мы можем линейно записать или прочитать 24KB данных за время за которое обычно получаем 512 байт

• А это и есть наша минимальная операция

Поиграем с рейдами. Простой случай

Поиграем с рейдами. Простой случай

RAID 0

Поиграем с рейдами. Интересный случай

Кэш FS – случай из жизни• Ufs2, 10k RPS диски в 5 RAID• Все это криво разбито и

почти не имеет кэша• 1200 IOPS на чтение• 140 IOPS на запись• 3000 SELECT в секунду из PG• Достигнут предел по SELECT

• Ext4, 7.5k RPS диски в 5 RAID• Разбито симметрично, кэш

ext4 работает• 0-40 IOPS на чтение• 10-60 IOPS на запись• 3000 SELECT -> 6000 SELECT• Предел будет достигнут

только путем изменения структуры базы

Как кэшировать?HDD + SSD кэш – это как лечить

пневмонию анальгином

Снижайте используемые IOPS – качеством IO, буферами, адекватностью приложения.

Ваши вопросы – здесь и сейчас, в курилке, в скайпе lynx.likes.meat

RoadMap выбора решений для IO живет здесь:

https://perfect-inc.com/hl2016.html