Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL

2013-07-15 Пенетрантность Alexander Chernyh


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

2013-06-18 Пенетрантность Oleksandr V. Typlyns'kyi
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

2013-06-18 Пенетрантность Eugene Grosbein
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

2013-06-17 Пенетрантность Sayetsky Anton
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

2013-06-17 Пенетрантность Sayetsky Anton
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

2013-06-17 Пенетрантность Anton Yuzhaninov

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

2013-06-17 Пенетрантность Eugene Grosbein
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-06-17 Пенетрантность Vladislav Prodan

Вот.
Тогда переадресовывайте эти вопросы с производительностью к вендору.


 
> 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

2013-06-17 Пенетрантность Volodymyr Kostyrko

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-06-17 Пенетрантность Artem Naluzhnyy
2013/6/17 Vladislav Prodan :
> Вам понадобится в ядро FreeBSD подгрузить пару модулей.
> Ну, еще загрузчик прописать.
> А весь юзерленд может быть коммерческим, большим закрытым блобом :)

Я только за, но вендор на такие кардинальные изменения вряд ли
согласится, и, скорее всего, это будет грозить потерей сапорта системы
вендором.

-- 
Artem Naluzhnyy


Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL

2013-06-17 Пенетрантность Artem Naluzhnyy
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

2013-06-17 Пенетрантность Eugene Grosbein
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

2013-06-17 Пенетрантность 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.


Re[2]: [freebsd] RAID stripe & UFS block sizes and PostgreSQL

2013-06-17 Пенетрантность Vladislav Prodan

Вам понадобится в ядро 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-06-17 Пенетрантность Artem Naluzhnyy
2013/6/17 Vladislav Prodan :
> Если есть на материнке свободные 4 SATA порта, можно сделать миграцию без 
> доунтайма на ZFS.
> Дальше выделить ZFS раздел для PostgreSQL  и тюнить индивидуально.

Забыл упомянуть, ZFS не пройдет, система коммерческая. Максимум что я
могу сделать - после своих бенчмарков попросить пересобрать
инсталлятор под меня с кастомными настройками разбивки хранилища.

-- 
Artem Naluzhnyy


Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL

2013-06-17 Пенетрантность Vladislav Prodan

Если есть на материнке свободные 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

2013-06-17 Пенетрантность Sayetsky Anton
17 июня 2013 г., 16:49 пользователь Eugene Grosbein
 написал:
> UFS+gjournal
Ни в коем случае. Это лютый тормоз.


Re: [freebsd] RAID stripe & UFS block sizes and PostgreSQL

2013-06-17 Пенетрантность Eugene Grosbein
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

2013-06-17 Пенетрантность Artem Naluzhnyy
Коллеги, досталась в наследство такая конфигурация:

  * 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