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 --]
next prev 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