Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL
On 06/17/2013 05:33 PM, Artem Naluzhnyy wrote: 2013/6/17 Eugene Grosbein : Из очевидного - выяснить размер блока в базе Postgres, при разметке файловой системы сделать такой же размер блока и соответственно страйп подогнать. Постгресовский block_size - 8 KB (дефолтный) То есть правильно ли я понимаю, что без изменения размера блока в постгресе, UFS блок можно увеличить до 8 KB, и размер страйпа тоже выставить в 8 KB (4K не получится - контроллер меньше не поддерживает)? Как-то оно стремно выглядит, учитывая дефолтный размер страйпа в 64 KB, кажется. именно так я у себя и делал block size mysql 16K block size ufs 16K stripe на контроллере 16К отталкивался от bs мускула
Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL
Yesterday Jun 17, 2013 at 17:03 Artem Naluzhnyy wrote: > 2013/6/17 Vladislav Prodan : > > Если есть на материнке свободные 4 SATA порта, можно сделать миграцию без > > доунтайма на ZFS. > > Дальше выделить ZFS раздел для PostgreSQL и тюнить индивидуально. > > Забыл упомянуть, ZFS не пройдет, система коммерческая. Максимум что я > могу сделать - после своих бенчмарков попросить пересобрать > инсталлятор под меня с кастомными настройками разбивки хранилища. А может стоит попросить SSD? -- WNGS-RIPE
Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL
On 18.06.2013 13:30, Sayetsky Anton wrote: > 17 июня 2013 г., 17:26 пользователь Eugene Grosbein > написал: >> On 17.06.2013 20:51, Sayetsky Anton wrote: >>> 17 июня 2013 г., 16:49 пользователь Eugene Grosbein >>> написал: UFS+gjournal >>> Ни в коем случае. Это лютый тормоз. >> >> Неправда. Всё зависит от характера нагрузки на запись. >> При длительной линейной записи gjournal вдвое медленней, чем UFS+softupdates >> без gjournal, >> а при множестве коротких записей (разворачивание дерева портов) >> gjournal в 2.5 раза быстрее, чем UFS+softupdates. > В общем-то, да, когда журнал не забит ещё. :) Журнал можно делать соответствующий, и ядерной памяти тоже давать gjournal сколько надо. > А проблема снижения > скорости из-за того, что gjournal есть block-level, и через него идут > как данные, так и метаданные. Только при линейной записи это плохо. При множестве коротких записей это хорошо - получается сериализация записей и уменьшение seek-ов диска.
Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL
17 июня 2013 г., 17:33 пользователь Artem Naluzhnyy написал: > 2013/6/17 Eugene Grosbein : >> Из очевидного - выяснить размер блока в базе Postgres, при разметке файловой >> системы >> сделать такой же размер блока и соответственно страйп подогнать. > > Постгресовский block_size - 8 KB (дефолтный) > > То есть правильно ли я понимаю, что без изменения размера блока в > постгресе, UFS блок можно увеличить до 8 KB, и размер страйпа тоже > выставить в 8 KB (4K не получится - контроллер меньше не > поддерживает)? > > Как-то оно стремно выглядит, учитывая дефолтный размер страйпа в 64 KB, > кажется. > > -- > Artem Naluzhnyy Не стоит так сильно снижать stripesize массива - этим можно весьма ощутимо повысить нагрузку на проц контроллера. Как показывает практика, если ставить меньше 64/32 К - в некоторых местах проц RAID-контроллера уже притормаживает. Так что я бы сделал ufs 32k block/8k frag, stripe 32(64)k.
Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL
17 июня 2013 г., 17:26 пользователь Eugene Grosbein написал: > On 17.06.2013 20:51, Sayetsky Anton wrote: >> 17 июня 2013 г., 16:49 пользователь Eugene Grosbein >> написал: >>> UFS+gjournal >> Ни в коем случае. Это лютый тормоз. > > Неправда. Всё зависит от характера нагрузки на запись. > При длительной линейной записи gjournal вдвое медленней, чем UFS+softupdates > без gjournal, > а при множестве коротких записей (разворачивание дерева портов) > gjournal в 2.5 раза быстрее, чем UFS+softupdates. В общем-то, да, когда журнал не забит ещё. :) А проблема снижения скорости из-за того, что gjournal есть block-level, и через него идут как данные, так и метаданные.
Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL
On 06/17/13 17:41, Artem Naluzhnyy wrote: * PostgreSQL 9.1.2 (размер базы 50 GB, много INSERTов и SELECTов) * сервер используется для VoIP биллинга, дополнительную нагрузку создают текстовые логи (30 GB) В связи с планируемым увеличением нагрузки предстоит переисталяция сервера с апгрейдом рейда до RAID10 на четырех дисках. 1. При большом объеме insert-ов возможно быстрее будет работать не RAID10 а два зеркала - одно для базы, и второе для WAL (и других логов). HDD в режиме последовательной записи (или чтения) работают заметно быстрее, чем если есть относительно много seek-ов. В случае, если на втором диске не будет ничего кроме log-ов, то запись на него будет почти линейная. Правда в таком варианте место на дисках будет расходоваться менее эффективно - на зеркале с данными место рано или поздно закончится, а для WAL много места не нужно и на зеркале с ним скорее всего будет много неиспользуемого места. 2. Если будете экспереметировать с разными размерами блоков на UFS - учтите, при одновременном использовании файловых систем с разными размерами блоков увеличивается вероятность фрагментации памяти в ядре. Так что лучше везде использовать одинаковый размер блока.
Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL
On 17.06.2013 21:33, Artem Naluzhnyy wrote: > 2013/6/17 Eugene Grosbein : >> Из очевидного - выяснить размер блока в базе Postgres, при разметке файловой >> системы >> сделать такой же размер блока и соответственно страйп подогнать. > > Постгресовский block_size - 8 KB (дефолтный) > > То есть правильно ли я понимаю, что без изменения размера блока в > постгресе, UFS блок можно увеличить до 8 KB, Уменьшать до 8K. По дефолту в девятке bsize=32K > и размер страйпа тоже > выставить в 8 KB (4K не получится - контроллер меньше не > поддерживает)? > > Как-то оно стремно выглядит, учитывая дефолтный размер страйпа в 64 KB, > кажется. Лучше всего, конечно, поэкспериментировать с разными размерами блока только чтобы везде блок соответствующий был (fs, БД, RAID).
Re[2]: Re[2]: [freebsd] RAID stripe & UFS block sizes and PostgreSQL
Вот. Тогда переадресовывайте эти вопросы с производительностью к вендору. > 2013/6/17 Vladislav Prodan : > > Вам понадобится в ядро FreeBSD подгрузить пару модулей. > > Ну, еще загрузчик прописать. > > А весь юзерленд может быть коммерческим, большим закрытым блобом :) > > Я только за, но вендор на такие кардинальные изменения вряд ли > согласится, и, скорее всего, это будет грозить потерей сапорта системы > вендором. > -- Vladislav V. Prodan System & Network Administrator http://support.od.ua +380 67 4584408, +380 99 4060508 VVP88-RIPE
Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL
17.06.2013 17:33, Artem Naluzhnyy: 2013/6/17 Eugene Grosbein : Из очевидного - выяснить размер блока в базе Postgres, при разметке файловой системы сделать такой же размер блока и соответственно страйп подогнать. Постгресовский block_size - 8 KB (дефолтный) То есть правильно ли я понимаю, что без изменения размера блока в постгресе, UFS блок можно увеличить до 8 KB, и размер страйпа тоже выставить в 8 KB (4K не получится - контроллер меньше не поддерживает)? Да. И для ZFS то же самое советуют. Как-то оно стремно выглядит, учитывая дефолтный размер страйпа в 64 KB, кажется. Там могут быть другие подводные камни: http://www.postgresql.org/message-id/4be4abc9.6040...@agliodbs.com -- Sphinx of black quartz, judge my vow.
Re: Re[2]: [freebsd] RAID stripe & UFS block sizes and PostgreSQL
2013/6/17 Vladislav Prodan : > Вам понадобится в ядро FreeBSD подгрузить пару модулей. > Ну, еще загрузчик прописать. > А весь юзерленд может быть коммерческим, большим закрытым блобом :) Я только за, но вендор на такие кардинальные изменения вряд ли согласится, и, скорее всего, это будет грозить потерей сапорта системы вендором. -- Artem Naluzhnyy
Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL
2013/6/17 Eugene Grosbein : > Из очевидного - выяснить размер блока в базе Postgres, при разметке файловой > системы > сделать такой же размер блока и соответственно страйп подогнать. Постгресовский block_size - 8 KB (дефолтный) То есть правильно ли я понимаю, что без изменения размера блока в постгресе, UFS блок можно увеличить до 8 KB, и размер страйпа тоже выставить в 8 KB (4K не получится - контроллер меньше не поддерживает)? Как-то оно стремно выглядит, учитывая дефолтный размер страйпа в 64 KB, кажется. -- Artem Naluzhnyy
Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL
On 17.06.2013 21:03, Artem Naluzhnyy wrote: > 2013/6/17 Vladislav Prodan : >> Если есть на материнке свободные 4 SATA порта, можно сделать миграцию без >> доунтайма на ZFS. >> Дальше выделить ZFS раздел для PostgreSQL и тюнить индивидуально. > > Забыл упомянуть, ZFS не пройдет, система коммерческая. А в чём проблема? ZFS идёт под CDDL, а не GPL: Common Development and Distribution License (CDDL) is a free software license, produced by Sun Microsystems, based on the Mozilla Public License (MPL), version 1.1. http://en.wikipedia.org/wiki/CDDL
Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL
On 17.06.2013 20:51, Sayetsky Anton wrote: > 17 июня 2013 г., 16:49 пользователь Eugene Grosbein > написал: >> UFS+gjournal > Ни в коем случае. Это лютый тормоз. Неправда. Всё зависит от характера нагрузки на запись. При длительной линейной записи gjournal вдвое медленней, чем UFS+softupdates без gjournal, а при множестве коротких записей (разворачивание дерева портов) gjournal в 2.5 раза быстрее, чем UFS+softupdates.
Re[2]: [freebsd] RAID stripe & UFS block sizes and PostgreSQL
Вам понадобится в ядро FreeBSD подгрузить пару модулей. Ну, еще загрузчик прописать. А весь юзерленд может быть коммерческим, большим закрытым блобом :) > 2013/6/17 Vladislav Prodan : > > Если есть на материнке свободные 4 SATA порта, можно сделать миграцию без > > доунтайма на ZFS. > > Дальше выделить ZFS раздел для PostgreSQL и тюнить индивидуально. > > Забыл упомянуть, ZFS не пройдет, система коммерческая. Максимум что я > могу сделать - после своих бенчмарков попросить пересобрать > инсталлятор под меня с кастомными настройками разбивки хранилища. > -- Vladislav V. Prodan System & Network Administrator http://support.od.ua +380 67 4584408, +380 99 4060508 VVP88-RIPE
Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL
2013/6/17 Vladislav Prodan : > Если есть на материнке свободные 4 SATA порта, можно сделать миграцию без > доунтайма на ZFS. > Дальше выделить ZFS раздел для PostgreSQL и тюнить индивидуально. Забыл упомянуть, ZFS не пройдет, система коммерческая. Максимум что я могу сделать - после своих бенчмарков попросить пересобрать инсталлятор под меня с кастомными настройками разбивки хранилища. -- Artem Naluzhnyy
Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL
Если есть на материнке свободные 4 SATA порта, можно сделать миграцию без доунтайма на ZFS. Дальше выделить ZFS раздел для PostgreSQL и тюнить индивидуально. --- Исходное сообщение --- От кого: "Artem Naluzhnyy" Дата: 17 июня 2013, 16:42:07 > Коллеги, досталась в наследство такая конфигурация: > > * 2 SAS диска в RAID1 (контроллер поддерживает размер страйпа от 8 KB до 1 MB) > > * UFS на FreeBSD 9.1 (512 B/sector) > > * PostgreSQL 9.1.2 (размер базы 50 GB, много INSERTов и SELECTов) > > * сервер используется для VoIP биллинга, дополнительную нагрузку > создают текстовые логи (30 GB) > > > В связи с планируемым увеличением нагрузки предстоит переисталяция > сервера с апгрейдом рейда до RAID10 на четырех дисках. > > Можно ли добиться дополнительного повышения I/O производительности, > подтюнив размеры RAID страйпа, UFS блока etc.? > > (текущий сервер все еще под нагрузкой, могу показать логи/дебаг) > > -- > Artem Naluzhnyy -- Vladislav V. Prodan System & Network Administrator http://support.od.ua +380 67 4584408, +380 99 4060508 VVP88-RIPE
Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL
17 июня 2013 г., 16:49 пользователь Eugene Grosbein написал: > UFS+gjournal Ни в коем случае. Это лютый тормоз.
Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL
On 17.06.2013 20:41, Artem Naluzhnyy wrote: > Коллеги, досталась в наследство такая конфигурация: > > * 2 SAS диска в RAID1 (контроллер поддерживает размер страйпа от 8 KB до 1 > MB) > > * UFS на FreeBSD 9.1 (512 B/sector) > > * PostgreSQL 9.1.2 (размер базы 50 GB, много INSERTов и SELECTов) > > * сервер используется для VoIP биллинга, дополнительную нагрузку > создают текстовые логи (30 GB) > > > В связи с планируемым увеличением нагрузки предстоит переисталяция > сервера с апгрейдом рейда до RAID10 на четырех дисках. > > Можно ли добиться дополнительного повышения I/O производительности, > подтюнив размеры RAID страйпа, UFS блока etc.? > > (текущий сервер все еще под нагрузкой, могу показать логи/дебаг) Из очевидного - выяснить размер блока в базе Postgres, при разметке файловой системы сделать такой же размер блока и соответственно страйп подогнать. Если оставлять UFS, то можно сделать UFS+gjournal ради сериализации записи и мгновенного fsck.
[freebsd] RAID stripe & UFS block sizes and PostgreSQL
Коллеги, досталась в наследство такая конфигурация: * 2 SAS диска в RAID1 (контроллер поддерживает размер страйпа от 8 KB до 1 MB) * UFS на FreeBSD 9.1 (512 B/sector) * PostgreSQL 9.1.2 (размер базы 50 GB, много INSERTов и SELECTов) * сервер используется для VoIP биллинга, дополнительную нагрузку создают текстовые логи (30 GB) В связи с планируемым увеличением нагрузки предстоит переисталяция сервера с апгрейдом рейда до RAID10 на четырех дисках. Можно ли добиться дополнительного повышения I/O производительности, подтюнив размеры RAID страйпа, UFS блока etc.? (текущий сервер все еще под нагрузкой, могу показать логи/дебаг) -- Artem Naluzhnyy