The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Оценка зависимости производительности MySQL от настроек аппаратного RAID5

18.03.2008 18:46

"Evaluating IO subsystem performance for MySQL Needs" - оценка зависимости производительности MySQL от настроек аппаратного RAID5.

  1. Главная ссылка к новости (http://www.mysqlperformanceblo...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/14811-mysql
Ключевые слова: mysql, benchmark
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (9) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Konwin (ok), 19:52, 18/03/2008 [ответить]  
  • +/
    Статью читать было лень, но, например, авторизованные курсы Оракл утверждают, что 5-й рейд для СУБД - это убийца производительности....
     
  • 1.2, Аноним (2), 23:35, 18/03/2008 [ответить]  
  • +/
    так мускул это не оракл
    вот например для оракла кэш диска -- зло
    а для мускула -- добро
     
     
  • 2.3, Konwin (ok), 23:56, 18/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >так мускул это не оракл
    >вот например для оракла кэш диска -- зло
    >а для мускула -- добро

    Если на производительности СУБД сказывается весьма немалая вероятность нахождения горячих блоков на одном диске, то это действительно для любой СУБД, использующей диск

    И что вы имеет ввиду под злом кэша диска и какой именно кэш вы имеет ввиду?


     
     
  • 3.4, Wulf (??), 01:19, 19/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    > Если на производительности СУБД сказывается весьма немалая вероятность нахождения горячих блоков на одном диске, то это действительно для любой СУБД, использующей диск

    Вообще, насколько я понимаю причина того, что RAID5 является database killer-ом является факт, что для записи 1-го байта вам надо прочитать минимум по 1-му блоку с n-1 диска и записать после этого измененные блоки на 2 диска, где n-число дисков в RAID. Это нужно для обновления избыточного диска. а если учесть, что в базах запись и ведется небольшими порциями, то получается низкая производительность.

    Кстати, вывод в этой статье простой: если взять хороший RAID, который умеет распараллеливать запросы на чтение по дискам и имеет write-back кэш с батарейкой, то на read-mostly нагрузке (большинство запросов на запись смогут попасть в кэш и длительность fsync() будет стремится к нулю) базы могут показывать великолепное быстродействие. mysql в составе LAMP-а на web-сайтах обычно и характеризуется такой read-mostly нагрузкой, т.е. применение RAID5 там может быть вполне обосновано. В комментариях советают даже отключать в контроллере кэш на чтение чтобы увеличить эффективность кэша записи.

    > И что вы имеет ввиду под злом кэша диска и какой именно кэш вы имеет ввиду?

    Анонимус, очевидно находится во власти заблуждения, что open source всегда эффективно использует все доступные hardware ресурсы, а проприетарный софт - наоборот :-). Конечно, выводы для mysql-я будут верны и для oracle, только цифры Requests/sec будут другие.

     
     
  • 4.5, Konwin (ok), 09:14, 19/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    >ведется небольшими порциями, то получается низкая производительность.
    >
    >Кстати, вывод в этой статье простой: если взять хороший RAID, который умеет
    >распараллеливать запросы на чтение по дискам и имеет write-back кэш с
    >батарейкой, то на read-mostly нагрузке (большинство запросов на запись смогут попасть
    >в кэш и длительность fsync() будет стремится к нулю) базы могут
    >показывать великолепное быстродействие. mysql в составе LAMP-а на web-сайтах обычно и
    >характеризуется такой read-mostly нагрузкой, т.е. применение RAID5 там может быть вполне
    >обосновано. В комментариях советают даже отключать в контроллере кэш на чтение
    >чтобы увеличить эффективность кэша записи.

    Немного поправлю.
    По 5-му рейду - избыточные данные пишутся не на один дополнительный диск, а на каждый, иначе невозможно обеспечить возможность потери хотя бы одного диска.

    По СУБД - причина в том, что никакой контроллер не в курсе, что за данные вы пишете или читаете. Поэтому есть довольно высокая вероятность, что, например, при объединении таблиц может возникнуть ситуация, что запрашиваемые таблицы находятся на одном диске, т.е. распараллелить чтение невозможно. В зеркале или в стрип + зеркало возможно параллельное чтение соединяемых таблиц, или даже разных частей одной и той таблицы, что повысит производительность.

    П.С. Оракл я упоминал исключительно из соображений, что он мне ближе к делу.

     
     
  • 5.6, Wulf (??), 10:27, 19/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Немного поправлю.
    >По 5-му рейду - избыточные данные пишутся не на один дополнительный диск,
    >а на каждый, иначе невозможно обеспечить возможность потери хотя бы одного
    >диска.

    на один. учите матчасть. n-1 диск пишется как RAID0. на избыточный диск пишется сложенная по XOR информация с остальных. Другое дело, что в отличии от RAID4, избыточная информация периодически смещается по дискам чтобы равномерно "размазать" дополнительную нагрузку на ее поддержание в актуальном состоянии.

    >По СУБД - причина в том, что никакой контроллер не в курсе,
    >что за данные вы пишете или читаете. Поэтому есть довольно высокая
    >вероятность, что, например, при объединении таблиц может возникнуть ситуация, что запрашиваемые
    >таблицы находятся на одном диске, т.е. распараллелить чтение невозможно. В зеркале
    >или в стрип + зеркало возможно параллельное чтение соединяемых таблиц, или
    >даже разных частей одной и той таблицы, что повысит производительность.

    автор статьи тестил в 64 параллельных потока. при одном потоке у него получалось медленно.

    >П.С. Оракл я упоминал исключительно из соображений, что он мне ближе к
    >делу.

     
     
  • 6.8, Konwin (ok), 10:45, 19/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >на один. учите матчасть. n-1 диск пишется как RAID0. на избыточный диск
    >пишется сложенная по XOR информация с остальных. Другое дело, что в
    >отличии от RAID4, избыточная информация периодически смещается по дискам чтобы равномерно
    >"размазать" дополнительную нагрузку на ее поддержание в актуальном состоянии.

    Мат часть надо учить не мне - в 5-м рейде информация о контрольной сумме записывается на все диски, а не на один. На один пишется в рейде уровня 3 и 4.


     
     
  • 7.9, Wulf (??), 11:56, 19/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>на один. учите матчасть. n-1 диск пишется как RAID0. на избыточный диск
    >>пишется сложенная по XOR информация с остальных. Другое дело, что в
    >>отличии от RAID4, избыточная информация периодически смещается по дискам чтобы равномерно
    >>"размазать" дополнительную нагрузку на ее поддержание в актуальном состоянии.
    >Мат часть надо учить не мне - в 5-м рейде информация о контрольной сумме записывается на все диски, а не на один. На один пишется в рейде уровня 3 и 4.

    Если вы записываете в RAID5 информацию размером в 1 блок, то избыточность вам надо поправить только на 1-м диске а не на всех. но раcпределение этого 1-го блока с избыточностью по дискам в пределах RAID5 массива непостоянно, поэтому и говорят, что "информация о контрольной сумме записывается на все диски".

     
  • 4.7, serg1224 (ok), 10:41, 19/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Кстати, вывод в этой статье простой: если взять хороший RAID, который умеет
    >распараллеливать запросы на чтение по дискам и имеет write-back кэш с
    >батарейкой, то на read-mostly нагрузке (большинство запросов на запись смогут попасть
    >в кэш и длительность fsync() будет стремится к нулю) базы могут
    >показывать великолепное быстродействие.

    Это не "хороший", это нормальный RAID-контроллер, а не какое-нибудь фуфло типа Promise.

     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру