<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Раздел полезных советов: Ускорение загрузки дампа PostgreSQL...</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/54305.html</link>
    <description>В бета версии PostgreSQL 8.4 в утилите pg_restore появилась поддержка возможности загрузки дампа &lt;br&gt;в несколько параллельных потоков. Например, загрузка дампа базы размером 300 Гб на 8-ядерном сервере &lt;br&gt;занимала стандартным образом 12 часов, при распараллеливании процесса загрузки на 8 потоков, &lt;br&gt;время загрузи сократилось до 3 часов. Полная перезагрузка дампа базы может понадобиться например при миграции &lt;br&gt;с PostgreSQL  8.2 на 8.3 или при переходе с 32- на 64-разрядную сборку системы.&lt;br&gt;&lt;br&gt;Огромным плюсом является и то, что параллельный вариант pg_restore &lt;br&gt;из ветки 8.4 прекрасно работает  с ветками 8.2 и 8.3.&lt;br&gt;&lt;br&gt;Рассмотрим процесс миграции с 8.2 на 8.3. На рабочей машине дополнительно установим в отдельную директорию бета версию 8.4:&lt;br&gt;&lt;br&gt;   ./configure --prefix=/usr/local/pgsql84&lt;br&gt;   make&lt;br&gt;   make install &lt;br&gt;&lt;br&gt;Создаем дамп работающей базы PostgreSQL 8.2, использую утилиту pg_dump из состава  PostgreSQL 8.3:&lt;br&gt;&lt;br&gt;   /usr/local/pgsql83/bin/pg_dump -F c -v -f my_db.dump my_database&lt;br&gt;&lt;br&gt;В зависимости от конфигурации доп</description>

<item>
    <title>Ускорение загрузки дампа PostgreSQL на многоядерных системах (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/54305.html#15</link>
    <pubDate>Fri, 15 May 2009 11:39:06 GMT</pubDate>
    <description>&amp;gt;Ну и что что первый свободный присвоит. Главное что свободный. &lt;br&gt;&lt;br&gt;А свободный может быть и один :)&lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Ускорение загрузки дампа PostgreSQL на многоядерных системах (Одмин)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/54305.html#14</link>
    <pubDate>Fri, 15 May 2009 11:28:01 GMT</pubDate>
    <description>Если нет свободных ядер то облом в любом случае. Даже ежу в этом топике ясно что ускорение будет только если есть свободные ресурсы сразу на нескольких ядрах.&lt;br&gt;&lt;br&gt;Ну и что что первый свободный присвоит. Главное что свободный.&lt;br&gt;</description>
</item>

<item>
    <title>Ускорение загрузки дампа PostgreSQL на многоядерных системах (Вовчик)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/54305.html#13</link>
    <pubDate>Fri, 15 May 2009 11:22:17 GMT</pubDate>
    <description>Упоминание о linux я нашёл только в твоих сообщениях. Есть другие ядра...&lt;br&gt;Почитай статью, она не о планировщике.&lt;br&gt;&lt;br&gt;Все твои твои сообщения в этом треде выглядят как &quot;я видел исходники, но не понимаю о чем все здесь пишут&quot;.&lt;br&gt;</description>
</item>

<item>
    <title>Ускорение загрузки дампа PostgreSQL на многоядерных системах (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/54305.html#12</link>
    <pubDate>Fri, 15 May 2009 11:12:00 GMT</pubDate>
    <description>&amp;gt;На многоядерной системе &lt;br&gt;&lt;br&gt;Все гораздо веселее :)&lt;br&gt;&lt;br&gt;В ядре есть так называемые &quot;Области планирования&quot; - логическое множество процессоров.&lt;br&gt;Например на 4-х процессорной системе - это множество с двумя подмножествами, по два CPU в каждом.&lt;br&gt;&lt;br&gt;С ними работает функция schedule() далее schedule_tick(), которая вызывает rebalance_tick()&lt;br&gt;та смотрит флаги SCHED_IDLE или NOT_IDLE и на основании их вызывает load_balance();&lt;br&gt;&lt;br&gt;Вывод: Планировщику на...ать на процессы, он присвоит процессу первый свободный CPU&lt;br&gt;&lt;br&gt;P.S. Если процесс не запускать со специально сформированым флагом CPU_MASK,&lt;br&gt; который явно ограничит область планирования для процесса, вплоть до одного CPU.&lt;br&gt; &lt;br&gt;P.P.S. &lt;br&gt;&lt;br&gt;1. Утиль pg_restore с флагом -j n - создаст n процессов для работы с базой. &lt;br&gt;2. Эти процессы равномерно распределятся относительно ОБЩЕЙ нагрузки системы&lt;br&gt;3. Но не обязательно, распределятся, раздельно на каждый процессор.&lt;br&gt;</description>
</item>

<item>
    <title>Ускорение загрузки дампа PostgreSQL на многоядерных системах (Вовчик)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/54305.html#11</link>
    <pubDate>Fri, 15 May 2009 07:05:44 GMT</pubDate>
    <description>Я перечитал заголовок...&lt;br&gt;&lt;br&gt;На многоядерной системе при восстановлении в один поток можно упереться в возможности одного ядра/процессора, а при многих потоках/процессах вероятно этого не произойдёт и нагрузка распределится более равномерно. Поправь меня, если я ошибаюсь, или прекрати разводить флейм.&lt;br&gt;</description>
</item>

<item>
    <title>Ускорение загрузки дампа PostgreSQL на многоядерных системах (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/54305.html#10</link>
    <pubDate>Fri, 15 May 2009 04:46:35 GMT</pubDate>
    <description>64к соединений к постгресу? :) Сразу видно что ты с ним боевого опыта не имел. Спроси любого dba, он скажет что стока соединений держать нельзя, это неэффективно в силу целого ряда причин. Такому кол-ву транзакций постгрес точно не обрадуется.&lt;br&gt;</description>
</item>

<item>
    <title>Ускорение загрузки дампа PostgreSQL на многоядерных системах (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/54305.html#9</link>
    <pubDate>Thu, 14 May 2009 21:24:07 GMT</pubDate>
    <description>&amp;gt;Да нет, народ просто выпендривается не понимая что они щас клоуны на &lt;br&gt;&amp;gt;весь рунет. Спорить про потоки любимая для многих тема, даже если &lt;br&gt;&amp;gt;они не понимают о каких потоках речь. Таких хлебом не корми, &lt;br&gt;&amp;gt;дай поспорить что круче-pthread_start или fork безотносительно к задаче. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Для Ъ объясню: тут о потоках данных речь а не о scheduling &lt;br&gt;&amp;gt;entities ядра. &lt;br&gt;&lt;br&gt;Ну тогда  20 раз перечитай заголовок - &lt;br&gt;&quot;Ускорение загрузки дампа PostgreSQL на многоядерных системах&quot; &lt;br&gt;&lt;br&gt;Прочёл? - Ни слова о многопоточности.&lt;br&gt; &lt;br&gt;Собственно к чему это я, да к тому, что как фишка ляжет, &lt;br&gt;так ядро и распределит потоки/процессы, обычно равномерно, &lt;br&gt;но не уверен что тоже самое будет на системе, которая &lt;br&gt;дышит под нагрузкой в 64K соединений.&lt;br&gt;&lt;br&gt; &lt;br&gt; &lt;br&gt;</description>
</item>

<item>
    <title>Ускорение загрузки дампа PostgreSQL на многоядерных системах (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/54305.html#8</link>
    <pubDate>Thu, 14 May 2009 19:38:31 GMT</pubDate>
    <description>Да нет, народ просто выпендривается не понимая что они щас клоуны на весь рунет. Спорить про потоки любимая для многих тема, даже если они не понимают о каких потоках речь. Таких хлебом не корми, дай поспорить что круче-pthread_start или fork безотносительно к задаче.&lt;br&gt;&lt;br&gt;Для Ъ объясню: тут о потоках данных речь а не о scheduling entities ядра.&lt;br&gt;</description>
</item>

<item>
    <title>Ускорение загрузки дампа PostgreSQL на многоядерных системах (Вовчик)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/54305.html#7</link>
    <pubDate>Thu, 14 May 2009 19:14:42 GMT</pubDate>
    <description>Всё это звучит очень хорошо, но какое отношение оно имеет к данной теме?&lt;br&gt;На многопроцессорной машине не будет прироста производительности при использовании многопоточности/многопроцессности в pg_restore?&lt;br&gt;</description>
</item>

</channel>
</rss>
