URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID13
Нить номер: 284
[ Назад ]

Исходное сообщение
"PostgreSQL 12G база. Тюнинг БД. Медлиный SELECT + ORDER BY"

Отправлено Roaming , 30-Июл-06 14:36 
Доброго времени суток.

Первоначальные данные:
OC - FreeBSD 6.1 /AMD 3200+/ 1G RAM/ SATA HDD.
PostgreSQL 8.1
БД ~ 12G (40млн rows)

postgresql.conf:

  max_connections = 180
  shared_buffers = 4000
  temp_buffers = 1000
  work_mem = 850000
  max_fsm_pages = 407000
  fsync = off
  effective_cache_size = 102400
  stats_start_collector = on
  stats_command_string = on
  stats_row_level = on
  sort_mem = 5024 (опции небыло. Добавил, БД приняла.)
  
Возник следующий вопрос:
Средний SELECT выполняеться достаточно быстро.
Но если SELECT содержит ORDER BY то длиться он ~15 мин.
  Если UNION + ORDER + COUNT то все 10 часов.

Больше всего меня поразили показатели нагрузок в момент такого запроса:
IOSTAT ~ 2.00 MB/s (Вовремя REINDEX - 50MB/s)
SWAP < 1Mb
CPU Бездействие ~ 90%
RAM Свободно ~ 40%

Чего ему не хватает ?

P.S. Ошибок в логах нет.


Содержание

Сообщения в этом обсуждении
"PostgreSQL 12G база. Тюнинг БД. Медлиный SELECT + ORDER BY"
Отправлено Brainbug , 31-Июл-06 14:01 
>Доброго времени суток.
>
> Первоначальные данные:
> OC - FreeBSD 6.1 /AMD 3200+/ 1G RAM/ SATA HDD.
> PostgreSQL 8.1
> БД ~ 12G (40млн rows)
>
> postgresql.conf:
>
>  max_connections = 180
>  shared_buffers = 4000
>  temp_buffers = 1000
>  work_mem = 850000
>  max_fsm_pages = 407000
>  fsync = off
>  effective_cache_size = 102400
>  stats_start_collector = on
>  stats_command_string = on
>  stats_row_level = on
>  sort_mem = 5024 (опции небыло. Добавил, БД приняла.)
>
>Возник следующий вопрос:
> Средний SELECT выполняеться достаточно быстро.
> Но если SELECT содержит ORDER BY то длиться он ~15 мин.
>
>  Если UNION + ORDER + COUNT то все 10 часов.
>
>
> Больше всего меня поразили показатели нагрузок в момент такого запроса:
> IOSTAT ~ 2.00 MB/s (Вовремя REINDEX - 50MB/s)
> SWAP < 1Mb
> CPU Бездействие ~ 90%
> RAM Свободно ~ 40%
>
> Чего ему не хватает ?
>
> P.S. Ошибок в логах нет.
>


1. Pokazi sam zapros.
2. Pokazi strukturu tablici + indexi dla tablici.
3. Pokazi 4to govorit EXPLAIN dla dannogo zaprosa.
4. VACUUM zapuskajetca (hotja teoreti4eski dolzen rabotat autovacuum dla versii 8.1
no po umol4aniju on viklu4en)
5. Pokazi SHOW ALL 4to vivel.


"PostgreSQL 12G база. Тюнинг БД. Медлиный SELECT + ORDER BY"
Отправлено Nikolaev D , 08-Авг-06 00:11 

>> Но если SELECT содержит ORDER BY то длиться он ~15 мин.
>>
>>  Если UNION + ORDER + COUNT то все 10 часов.

они едят мнтого - почему - мортировки потому чсто


"PostgreSQL 12G база. Тюнинг БД. Медлиный SELECT + ORDER BY"
Отправлено Ares , 08-Ноя-06 13:12 
>Доброго времени суток.
>
> Первоначальные данные:
> OC - FreeBSD 6.1 /AMD 3200+/ 1G RAM/ SATA HDD.
> PostgreSQL 8.1
> БД ~ 12G (40млн rows)
>
> postgresql.conf:
>
>  max_connections = 180
>  shared_buffers = 4000
>  temp_buffers = 1000
>  work_mem = 850000
>  max_fsm_pages = 407000
>  fsync = off
>  effective_cache_size = 102400
>  stats_start_collector = on
>  stats_command_string = on
>  stats_row_level = on
>  sort_mem = 5024 (опции небыло. Добавил, БД приняла.)
>
>Возник следующий вопрос:
> Средний SELECT выполняеться достаточно быстро.
> Но если SELECT содержит ORDER BY то длиться он ~15 мин.
>
>  Если UNION + ORDER + COUNT то все 10 часов.
>
>
> Больше всего меня поразили показатели нагрузок в момент такого запроса:
> IOSTAT ~ 2.00 MB/s (Вовремя REINDEX - 50MB/s)
> SWAP < 1Mb
> CPU Бездействие ~ 90%
> RAM Свободно ~ 40%
>
> Чего ему не хватает ?
>
> P.S. Ошибок в логах нет.
>

Оперативной памяти конечно не хватает!)))добавь хотяб гиг и увидишь результат!


"PostgreSQL 12G база. Тюнинг БД. Медлиный SELECT + ORDER BY"
Отправлено pavel , 11-Фев-07 01:06 
памяти конечно маловато, но я в первую очередь ковырят бы индексы, а вообчето надо как-то по подробнее.

"PostgreSQL 12G база. Тюнинг БД. Медлиный SELECT + ORDER BY"
Отправлено adil_18 , 03-Мрт-07 02:00 
при таком запросе с другой консоли сделай: top
увидешь, что не хватает ram -a
потом еще покажи настройки ядра для shared_buffers.

"PostgreSQL 12G база. Тюнинг БД. Медлиный SELECT + ORDER BY"
Отправлено NomadRain , 27-Фев-10 01:22 

>  work_mem = 850000
>  sort_mem = 5024 (опции небыло. Добавил, БД приняла.)

Это одно и то-же. sort_mem - название из предыдущих версий, сохранённое видимо, для совместимости.