Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Замена innodb_page_size / 15 сообщений из 15, страница 1 из 1
28.05.2015, 23:41:06
    #38971340
m0nk3y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена innodb_page_size
Вопрос вот в чем, заимел на сервак SSD Intel3700 объединил в raid-1 перекинул на него базу.
В опциях mysql стоит innodb_file_per_table.
Собственно товарищ Зайцев из Percona http://www.slideshare.net/profyclub_ru/ssd-percona советует для увеличения производительности на OLTP поставить innodb_page_size=4K. Хочется ему верить, но есть засада
Код: plaintext
1.
2.
cat /var/log/mysqld.log | grep ibdata
2015-05-28 10:06:03 15154 [ERROR] InnoDB: innodb-page-size mismatch in data file ./ibdata1
2015-05-28 10:06:03 15154 [ERROR] InnoDB: Could not open or create the system tablespace. If you tried to add new data files to the system tablespace, and it failed here, you should now edit innodb_data_file_path in my.cnf back to what it was, and remove the new ibdata files InnoDB created in this failed attempt. InnoDB only wrote those files full of zeros, but did not yet use them in any way. But be careful: do not remove old data files which contain your precious data!

Умолчательный размер это 16к. Как быть? Сделать новый ibdata? А что тогда с файлами ibd, будет ли корректно работать?
...
Рейтинг: 0 / 0
29.05.2015, 09:23:42
    #38971450
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена innodb_page_size
m0nk3y,

т.е.ты хочешь поменять размер страницы БД с 16к на 4к ?

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

так что я бы еще 20 раз подумал.
...
Рейтинг: 0 / 0
29.05.2015, 09:46:36
    #38971470
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена innodb_page_size
MasterZivВ современных дисках этот размер обычно 8к или 16к.Насколько я в курсе, размер минимального блока обмена с диском - это его сектор. Которые бывают 512 байт или 4 КБ.
...
Рейтинг: 0 / 0
29.05.2015, 09:53:52
    #38971482
m0nk3y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена innodb_page_size
MasterZiv,

доклад у Зайцева был в ноябре 2014, так что насчет его устарелости советов хз. Да и с другой стороны сам интел попугаи предоставляет на блоках в 4к http://www.intel.ru/content/www/ru/ru/solid-state-drives/solid-state-drives-dc-s3700-series.html
...
Рейтинг: 0 / 0
29.05.2015, 11:12:22
    #38971630
Shahriyar.R
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена innodb_page_size
miksoft,

документация по "InnoDB page structure" говорить 16 Кб:

InnoDB stores all records inside a fixed-size unit which is commonly called a "page" (though InnoDB sometimes calls it a "block" instead). Currently all pages are the same size, 16KB.

innodb-page-structure

нужно учесть что, до 5.6.4 MySQL невозможно было изменить "page size" динамически.
для этого нужно было рекомпилировать MySQL (конкретно изменить UNIV_PAGE_SIZE_SHIFT и UNIV_PAGE_SIZE в source), а потом уже ставить в my.cnf.

with the 5.6.4 release, those smaller page sizes are fully supported by MySQL. Just export your data, move or delete the system database (ibdata1) and the log files (ib_logfile0 & ib_logfile1), set innodb-page-size to either 4k or 8k, and restart MySQL. A new InnoDB instance will be created with the smaller page size. Then you can import your data and run your tests, all without recompiling InnoDB.
...
Рейтинг: 0 / 0
29.05.2015, 12:24:35
    #38971706
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена innodb_page_size
Shahriyar.R,

В слайдах речь идет все-таки о Перконе, а как там обстоит с этим дело - не знаю. Поэтому я не выступаю ни на стороне "за", ни на стороне "против".

В MySQL я бы не рискнул такое делать ни в какой версии.
...
Рейтинг: 0 / 0
29.05.2015, 13:49:29
    #38971825
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена innodb_page_size
m0nk3yMasterZiv,

доклад у Зайцева был в ноябре 2014, так что насчет его устарелости советов хз. Да и с другой стороны сам интел попугаи предоставляет на блоках в 4к http://www.intel.ru/content/www/ru/ru/solid-state-drives/solid-state-drives-dc-s3700-series.html

ну во всех ведущих СУБД минимальный блок уже 8к достаточно давно.
...
Рейтинг: 0 / 0
29.05.2015, 13:56:19
    #38971833
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена innodb_page_size
miksoftMasterZivВ современных дисках этот размер обычно 8к или 16к.Насколько я в курсе, размер минимального блока обмена с диском - это его сектор. Которые бывают 512 байт или 4 КБ.
В данном случае идёт обмен между диском и процедурами ОС. А ОС при файловом обмене мыслит именно блоками (кластерами), и соответственно запрашивает не менее кластера (а с учётом предчтения - и больше). Так что утверждение, что обмен ОС с диском ведётся блоками не менее (кратными) 8 кбайт, скорее можно считать правдой.
...
Рейтинг: 0 / 0
29.05.2015, 14:08:36
    #38971847
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена innodb_page_size
Akinamiksoftпропущено...
Насколько я в курсе, размер минимального блока обмена с диском - это его сектор. Которые бывают 512 байт или 4 КБ.
В данном случае идёт обмен между диском и процедурами ОС. А ОС при файловом обмене мыслит именно блоками (кластерами), и соответственно запрашивает не менее кластера (а с учётом предчтения - и больше). Так что утверждение, что обмен ОС с диском ведётся блоками не менее (кратными) 8 кбайт, скорее можно считать правдой.В самой распространенной линуксовой ФС EXT3/EXT4 размер кластера 4 КБ. На тех виндовых серверах, которые мне сейчас подвернулись под руку тоже везде 4 КБ без вариантов.
...
Рейтинг: 0 / 0
29.05.2015, 15:25:37
    #38971939
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена innodb_page_size
miksoft,

там всё достаточно сложно. И с терминологией, и с диагностикой.
Но как бы все говорят, что размер блока в 4к -- анахронизм. Уже давно говорят.
Я не знаю, почему Зайцев такое отмочил. Может там какие-то тонкие настройки, может это в контексте было сказано.
Народ же недалёкий, часто не догоняет, что там ...
...
Рейтинг: 0 / 0
29.05.2015, 15:26:55
    #38971940
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена innodb_page_size
Сори, до меня только что дошло, что речь про SSD -- так там вполне возможно блоки меньше.
Я не знаю.
...
Рейтинг: 0 / 0
29.05.2015, 16:28:12
    #38972008
m0nk3y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена innodb_page_size
MasterZiv,

авторНарод же недалёкий, часто не догоняет, что там ...
ахаха, вот спасибо ))

корочь пока видится только один путь - это залить дамп базы на свежеподготовленное innodb окружение с 4к страницами.
...
Рейтинг: 0 / 0
30.05.2015, 15:31:12
    #38972396
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена innodb_page_size
m0nk3y,

1. Решение поставить БД на SSD - это уже "нечто". По моей практике и моих знакомых админов, это "решение" примерно на год при средненькой эксплуатации. Ибо SSD - это FLASH, который как известно имеет ограниченное количество циклов записи... "шустро"? Все относительно.

На 4-8 винтах HDD с raid-0 получите примерно тоже самое (400Мб/сек. - реальные потоки), и даже с большей надежностью "итого". А ежели у вас 70% read, то и с raid1/10 получите не кислые скорости обмена при чтениях... про надежность в таких решениях - можно не переживать. Мне известны системы отработавшие уже лет по 8-10 и ещё стоящие в строю.

Надо больше? Может "код почистить"?
Дороже? Ну, знаете... если у вас "поток и обработка", то есть нашлось столько данных и задач, то найти бабки на нормальную дисковую подсистему, думаю можно. А если это вариант курсовой, то пофиг какой там сектор и кластер.

2. "сектор" SSD = 512байт. Кластер = 512байт. ОС оперирует кластерами. Сектор HDD = 512 байт. Кластер = 4кб (типовой). В Линуксе, тот же EXT3/4 можно легко перенатсроить на практически любой кластер от 512б. до 32кб. контроллеры разного аппаратного рейда легко имитируют кластер, собирая его в параллель с нескольких дисков... может вам требуется аппаратный рейд, а не программный (встроенный в мамку)? Пошукайте, возможно откроете для себя много интересного.

3. "буфер БД" = 16кб. И это - далеко не случайно. Буфер должен вмещать в себя более одной записи при некоем "среднем" размере строки таблицы данных. А лучше несколько. Если буфер мал, то запись будет занимать более одного буфера, а читается она целиком...

Вот как-то так. Вопрос более чем странный. :)
...
Рейтинг: 0 / 0
30.05.2015, 16:03:45
    #38972411
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена innodb_page_size
Arhat109Решение поставить БД на SSD - это уже "нечто". По моей практике и моих знакомых админов, это "решение" примерно на год при средненькой эксплуатации. Ибо SSD - это FLASH, который как известно имеет ограниченное количество циклов записи... "шустро"? Все относительно.У нас 20-30 инсталляций СУБД на десктопных одиночных SATA-шных SSD. Все прекрасно работает годами.Arhat109На 4-8 винтах HDD с raid-0 получите примерно тоже самоеТолько по стоимости уже начинает сильно проигрывать.
Arhat109"сектор" SSD = 512байт. Кластер = 512байт.Кластеров там вообще нет.
А сектора, если верить Яндекс.Маркету, у всех 6-Гигабитных SATA-шных SSD , которые сейчас есть в продаже, по 4 КБ.
Хуже всего с блоками записи - они довольно большого размера, сильно больше 4КБ.Arhat109В Линуксе, тот же EXT3/4 можно легко перенастроить на практически любой кластер от 512б. до 32кб.Только до 4 КБ. А меньше не имеет смысла. Поэтому по факту всегда 4 КБ.
Arhat109"буфер БД" = 16кбВ InnoDB - да. А в целом по всем СУБД - по разному. В Оракле, например, обычно 8 КБ используется.


Я все это к тому, что в местах, не требующих сверхвысокой непрерывности и гигантских объемов, SSD уже вполне справляются.
...
Рейтинг: 0 / 0
31.05.2015, 09:35:45
    #38972596
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена innodb_page_size
miksoft,

У меня нет 20-30 инсталляций SSD. Есть 3-5 примеров, и во всех них, без исключений, SSD через год эксплуатации вызывал проблемы восстановления БД. В одном случае - невыполнимые (бэкап оказался на том же SSD). В пятницу смотрел на нашем серваке: сектор 512, винт форматирован с кластером 512. Не знаю что там больше. Формитировался и монтировался винт "типовым софтом".

Да, объем буферных элементов в БД 8-16кб. (Cache тоже 8-16кб) и раньше видел достаточно рекомендаций по увеличению в большую сторону, но никак не в размер 4к и менее.

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

Я почему и отписал, что вопрос "более чем странный".
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Замена innodb_page_size / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]