powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Замена innodb_page_size
15 сообщений из 15, страница 1 из 1
Замена innodb_page_size
    #38971340
m0nk3y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос вот в чем, заимел на сервак 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
Замена innodb_page_size
    #38971450
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m0nk3y,

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

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

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

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

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

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

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

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

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

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

корочь пока видится только один путь - это залить дамп базы на свежеподготовленное innodb окружение с 4к страницами.
...
Рейтинг: 0 / 0
Замена innodb_page_size
    #38972396
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Замена innodb_page_size
    #38972411
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Замена innodb_page_size
    #38972596
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

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

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

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

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


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