ALT Linux sysadmins discussion
 help / color / mirror / Atom feed
From: "Денис Смирнов" <mithraen@altlinux.ru>
To: ALT Linux sysadmin discuss <sysadmins@lists.altlinux.org>
Subject: Re: [Sysadmins] оптимизация дисковой подсистемы (linux multi-disk server howto) (was: OpenVZ, VServer и полудесяток)
Date: Wed, 26 Dec 2007 11:24:16 +0300
Message-ID: <20071226082416.GA9694@mw.local.seiros.ru> (raw)
In-Reply-To: <f7a739430712250751o2c5c664fga8389251c5f81f88@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3684 bytes --]

On Tue, Dec 25, 2007 at 06:51:51PM +0300, Eugene Prokopiev wrote:

>> На всякий случай напоминаю любителям пораскидывать все по разным
>> шпинделям о tablespaces в постгресе. Раскидывать отдельные таблички по
>> разным шпинделям может быть ой как полезно.
EP> А раскидывать отдельно данные и индексы?

Разумеется тоже полезно :)
Кстати я об этом почему-то не задумывался, а результат-то достигается
элементарно и, как мне кажется, во многих случаях существенный...

EP> Есть у меня железка, в которую можно воткнуть не более 2-х
EP> SATA-дисков, и требуется поднять на ней постгрес. Сама система вместе
EP> со всеми скриптами ценнее, чем данные, которые лежат еще и в сейфе на
EP> DVD-R и которые можно залить повторно, но желательно в БД держать как
EP> можно больше данных и делать выборки из них как можно быстрее.
EP> Соотвественно, систему планируется держать на RAID1, а вот данные
EP> непонятно. Т.е. альтернативы XFS нет, а вот что ниже? Варианты:

Для БД ext3 с data=journal работает очень даже замечательно. Я не пробовал
проводить тестирование что реально лучше.

EP> 2) данные на одном диске, логи на другом - но логи занимают
EP> значительно меньше места, чем данные - а места жалко

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

Логи, кстати, лучше всего действительно на XFS.

EP> 3) данные на одном диске, индексы на другом - куда тогда девать логи?
EP> размазывать по двум дискам в виде RAID0?

Нафиг-нафиг! RAID0, кстати, чтобы давал ускорение а не тормоза еще тюнить
надо. Для логов у меня есть сомнения в пользе такого действия.

EP> Если делать то же на трех дисках, то на третий лучше выносить логи
EP> постгреса и логи XFS одновременно?

Хороший вопрос. Я не знаю на него ответа, к сожалению.

>> Жаль в постгресе до сих пор нельзя делать индексы сразу по всем
>> наследникам конкретной таблицы (необходимо для unique значений), когда
>> это появится, будет вообще чудесная возможность практически не трогая
>> frontend выкидывать редко используемые _отдельные row_ на другой
>> шпиндель.
EP> Можно чуть подробнее: как формулируется задача и что хочется получить?

Краткая вводная:
В постгресе есть зачатки объектно-ориентированности. В том числе
"наследование".

Так вот, к примеру, можно сделать табличку:
CREATE TABLE blabla (
	blabla_id	SERIAL PRIMARY KEY,
	cooldata VARCHAR,
	is_old	BOOLEAN NOT NULL
	CHECK(is_old == 'f')
);

CREATE TABLE blabla_old LIKE blabla(
	CHECK(is_old == 't')
);

Реально создалось две таблицы. Самое интересное в этом то, что если мы
заполним их данными, а дальше выполним команду:

SELECT * FROM blabla*;
то мы получим данные из обеих (!) таблиц.

А если:

SELECT * FROM blabla* WHERE is_old = 'f';

То никаких обращений к второй таблице не будет вообще.

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

А вот засада следующая -- blabla_id не уникален для этой группы таблиц, он
уникален только в пределах одной таблицы. При этом благодаря тому что он
SERIAL он при заполнении будет вроде как казаться уникальным (на все
таблицы будет одна sequence), но insert/update с указанием конкретного
значения для blabla_id эту идиллию разрушат.

Все что я сейчас рассказываю описано в документации на постгрес гораздо
подробнее, с описанием множества подводных граблей и прочих приятностей.

-- 
С уважением, Денис

http://freesource.info
----------------------------------------------------------------------------
Старый глюк лучше новых двух.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  parent reply	other threads:[~2007-12-26  8:24 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-25  9:39                             ` Michael Shigorin
2007-12-25 10:14                               ` Denis Smirnov
2007-12-25 15:51                                 ` Eugene Prokopiev
2007-12-25 18:45                                   ` Michael Shigorin
2007-12-26  6:38                                     ` Eugene Prokopiev
2007-12-26  6:47                                       ` Michael Shigorin
2007-12-26  8:25                                       ` Denis Smirnov
2007-12-26 10:37                                         ` Eugene Prokopiev
2007-12-27 20:59                                           ` [Sysadmins] оптимизация дисковой подсистемы (linux multi-disk server howto) Michael Shigorin
2007-12-28 15:33                                           ` [Sysadmins] оптимизация дисковой подсистемы (linux multi-disk server howto) (was: OpenVZ, VServer и полудесяток) Денис Смирнов
2007-12-29  7:40                                             ` Eugene Prokopiev
2007-12-30 19:02                                               ` Денис Смирнов
2007-12-26  8:24                                   ` Денис Смирнов [this message]
2007-12-26 10:38                                     ` Eugene Prokopiev
2007-12-27 20:58                                       ` [Sysadmins] оптимизация дисковой подсистемы (linux multi-disk server howto) Michael Shigorin
2007-12-28 15:31                                       ` [Sysadmins] оптимизация дисковой подсистемы (linux multi-disk server howto) (was: OpenVZ, VServer и полудесяток) Денис Смирнов
2007-12-29 15:45                                         ` [Sysadmins] оптимизация дисковой подсистемы (linux multi-disk server howto) Maxim Tyurin
2007-12-30 19:04                                           ` Денис Смирнов
2007-12-31 16:31                                             ` Maxim Tyurin
2008-01-03  9:42                                               ` Aleksey Avdeev
2008-01-03 20:53                                                 ` Maxim Tyurin
2008-01-05 13:40                                                   ` Aleksey Avdeev
2008-01-05 20:48                                                     ` Maxim Tyurin
2008-01-05 21:06                                                       ` Aleksey Avdeev
2008-01-06 18:20                                                         ` Maxim Tyurin
2008-01-08 22:48                                                     ` Michael Shigorin
2008-01-04 16:23                                                 ` Michael Shigorin
2008-01-05 13:44                                                   ` Aleksey Avdeev
2008-01-08 22:49                                                     ` Michael Shigorin
2007-12-25 11:02                               ` [Sysadmins] оптимизация дисковой подсистемы (linux multi-disk server howto) (was: OpenVZ, VServer и полудесяток) Michael Shigorin
2007-12-25 12:24                                 ` [Sysadmins] оптимизация дисковой подсистемы (linux multi-disk server howto) Michael Shigorin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071226082416.GA9694@mw.local.seiros.ru \
    --to=mithraen@altlinux.ru \
    --cc=sysadmins@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux sysadmins discussion

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \
		sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com
	public-inbox-index sysadmins

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sysadmins


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git