|
|
|
REINDEX DATABASE выполняется уже 6 часов и конца не видно
|
|||
|---|---|---|---|
|
#18+
AltCtrlDel, Меня очень смущают те планы что вы привели (т.е. такого просто не может быть). Вы точно делали prepare 1 раз а explain analyze c разными did несколько раз? Так как план должен был поменяться в какой то момент на перебор всех партиций (причем необратимо поменяться). Попробуйте для очистки освести погонять explain analyze однажды prepared запроса с разными did. --Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2014, 04:24:43 |
|
||
|
REINDEX DATABASE выполняется уже 6 часов и конца не видно
|
|||
|---|---|---|---|
|
#18+
AltCtrlDel<>после этого остаются висеть "зависшие" селекты. Только перезапуск постгреса их прибивает. <> с этого места поподробнее, пжалста перловые ф-ии ? внешние сервера от ара-кала? что левого к базе прикрутили, признавайтесь -- вот на этом всём где-то вы и висите, думается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2014, 08:18:59 |
|
||
|
REINDEX DATABASE выполняется уже 6 часов и конца не видно
|
|||
|---|---|---|---|
|
#18+
думаетсяAltCtrlDel<>после этого остаются висеть "зависшие" селекты. Только перезапуск постгреса их прибивает. <> с этого места поподробнее, пжалста перловые ф-ии ? внешние сервера от ара-кала? что левого к базе прикрутили, признавайтесь -- вот на этом всём где-то вы и висите, думается версия -- повисшие -- автономки, запускаемые из security defined ф-ий из-под postgres, процессы которого вы не прибивали. И они у вас в неразрешимом дедлоке (что от реиндекса не зависит), либо в очередях на уникъю, что от реиндекса немного зависит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2014, 08:24:12 |
|
||
|
REINDEX DATABASE выполняется уже 6 часов и конца не видно
|
|||
|---|---|---|---|
|
#18+
что-то я не точен в высказываниях еще поправка/уточнение/ версии про автономки повисшие, которые не постгреса, -- запускаются с sec/def/ , написаны от постгреса, которые запустили свои автономки и ждут (терминейтом не кладутся, не получив возврат от автономок). если бы вы прибили их детей -- они бы и легли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2014, 08:29:02 |
|
||
|
REINDEX DATABASE выполняется уже 6 часов и конца не видно
|
|||
|---|---|---|---|
|
#18+
Maxim BogukAltCtrlDel, Меня очень смущают те планы что вы привели (т.е. такого просто не может быть). Вы точно делали prepare 1 раз а explain analyze c разными did несколько раз? Так как план должен был поменяться в какой то момент на перебор всех партиций (причем необратимо поменяться). Попробуйте для очистки освести погонять explain analyze однажды prepared запроса с разными did. Я сохраняю приведённый скрипт в файл и выполняю его с помощью psql. Вот, ещё Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. PREPARE QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------------------------------------------- Limit (cost=0.01..0.18 rows=1 width=26) (actual time=18.807..18.807 rows=1 loops=1) Buffers: shared hit=5 read=2 -> Result (cost=0.01..12.08 rows=73 width=26) (actual time=18.806..18.806 rows=1 loops=1) Buffers: shared hit=5 read=2 -> Merge Append (cost=0.01..12.08 rows=73 width=26) (actual time=18.806..18.806 rows=1 loops=1) Sort Key: public.strdat.datetime Buffers: shared hit=5 read=2 -> Index Scan Backward using strdat_pkey on strdat (cost=0.00..4.26 rows=1 width=520) (actual time=0.023..0.023 rows=0 loops=1) Index Cond: ((did = 134) AND (datetime <= 1411117512) AND (cid = 28624)) Buffers: shared hit=4 -> Index Scan Backward using strdat_134_28624 on strdat_134 strdat (cost=0.00..6.90 rows=72 width=19) (actual time=18.781..18.781 rows=1 loops=1) Index Cond: (datetime <= 1411117512) Filter: (did = 134) Buffers: shared hit=1 read=2 Total runtime: 18.868 ms (15 rows) QUERY PLAN ---------------------------------------------------------------------------------------------------------------------------------------------------------------- Limit (cost=0.01..2.16 rows=1 width=144) (actual time=0.046..0.047 rows=1 loops=1) Buffers: shared hit=3 read=1 -> Result (cost=0.01..8.60 rows=4 width=144) (actual time=0.044..0.044 rows=1 loops=1) Buffers: shared hit=3 read=1 -> Merge Append (cost=0.01..8.60 rows=4 width=144) (actual time=0.042..0.042 rows=1 loops=1) Sort Key: public.strdat.datetime Buffers: shared hit=3 read=1 -> Index Scan Backward using strdat_pkey on strdat (cost=0.00..4.26 rows=1 width=520) (actual time=0.006..0.006 rows=0 loops=1) Index Cond: ((did = 210) AND (datetime <= 1399399261) AND (cid = 28624)) Buffers: shared hit=1 -> Index Scan Backward using strdat_210_28624 on strdat_210 strdat (cost=0.00..4.28 rows=3 width=19) (actual time=0.036..0.036 rows=1 loops=1) Index Cond: (datetime <= 1399399261) Filter: (did = 210) Buffers: shared hit=2 read=1 Total runtime: 0.094 ms (15 rows) QUERY PLAN ---------------------------------------------------------------------------------------------------------------------------------------------------------------- Limit (cost=0.01..0.88 rows=1 width=69) (actual time=0.032..0.032 rows=1 loops=1) Buffers: shared hit=4 -> Result (cost=0.01..8.73 rows=10 width=69) (actual time=0.031..0.031 rows=1 loops=1) Buffers: shared hit=4 -> Merge Append (cost=0.01..8.73 rows=10 width=69) (actual time=0.029..0.029 rows=1 loops=1) Sort Key: public.strdat.datetime Buffers: shared hit=4 -> Index Scan Backward using strdat_pkey on strdat (cost=0.00..4.26 rows=1 width=520) (actual time=0.005..0.005 rows=0 loops=1) Index Cond: ((did = 223) AND (datetime <= 1410961708) AND (cid = 28624)) Buffers: shared hit=1 -> Index Scan Backward using strdat_223_28624 on strdat_223 strdat (cost=0.00..4.33 rows=9 width=19) (actual time=0.024..0.024 rows=1 loops=1) Index Cond: (datetime <= 1410961708) Filter: (did = 223) Buffers: shared hit=3 Total runtime: 0.077 ms (15 rows) QUERY PLAN -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Limit (cost=2.27..2.27 rows=1 width=270) (actual time=227.332..227.333 rows=1 loops=1) Buffers: shared hit=1 read=18 -> Sort (cost=2.27..2.27 rows=2 width=270) (actual time=227.330..227.330 rows=1 loops=1) Sort Key: public.strdat.datetime Sort Method: top-N heapsort Memory: 25kB Buffers: shared hit=1 read=18 -> Result (cost=0.00..2.26 rows=2 width=270) (actual time=16.240..227.257 rows=29 loops=1) Buffers: shared hit=1 read=18 -> Append (cost=0.00..2.26 rows=2 width=270) (actual time=16.239..227.241 rows=29 loops=1) Buffers: shared hit=1 read=18 -> Seq Scan on strdat (cost=0.00..0.00 rows=1 width=520) (actual time=0.001..0.001 rows=0 loops=1) Filter: ((datetime <= 1411292950) AND (did = 226) AND (cid = 28624)) -> Index Scan Backward using strdat_226_28624 on strdat_226 strdat (cost=0.00..2.26 rows=1 width=19) (actual time=16.237..227.226 rows=29 loops=1) Index Cond: (datetime <= 1411292950) Filter: (did = 226) Buffers: shared hit=1 read=18 Total runtime: 227.369 ms (17 rows) QUERY PLAN ----------------------------------------------------------------------------------------------------------------------------------------------------------------- Limit (cost=0.01..0.18 rows=1 width=26) (actual time=0.015..0.015 rows=1 loops=1) Buffers: shared hit=3 -> Result (cost=0.01..12.08 rows=73 width=26) (actual time=0.014..0.014 rows=1 loops=1) Buffers: shared hit=3 -> Merge Append (cost=0.01..12.08 rows=73 width=26) (actual time=0.014..0.014 rows=1 loops=1) Sort Key: public.strdat.datetime Buffers: shared hit=3 -> Index Scan Backward using strdat_pkey on strdat (cost=0.00..4.26 rows=1 width=520) (actual time=0.006..0.006 rows=0 loops=1) Index Cond: ((did = 134) AND (datetime <= 1411117512) AND (cid = 28624)) Buffers: shared hit=1 -> Index Scan Backward using strdat_134_28624 on strdat_134 strdat (cost=0.00..6.90 rows=72 width=19) (actual time=0.008..0.008 rows=1 loops=1) Index Cond: (datetime <= 1411117512) Filter: (did = 134) Buffers: shared hit=2 Total runtime: 0.042 ms (15 rows) QUERY PLAN ---------------------------------------------------------------------------------------------------------------------------------------------------------------- Limit (cost=0.01..2.16 rows=1 width=144) (actual time=0.010..0.011 rows=1 loops=1) Buffers: shared hit=3 -> Result (cost=0.01..8.60 rows=4 width=144) (actual time=0.009..0.009 rows=1 loops=1) Buffers: shared hit=3 -> Merge Append (cost=0.01..8.60 rows=4 width=144) (actual time=0.009..0.009 rows=1 loops=1) Sort Key: public.strdat.datetime Buffers: shared hit=3 -> Index Scan Backward using strdat_pkey on strdat (cost=0.00..4.26 rows=1 width=520) (actual time=0.005..0.005 rows=0 loops=1) Index Cond: ((did = 210) AND (datetime <= 1399399261) AND (cid = 28624)) Buffers: shared hit=1 -> Index Scan Backward using strdat_210_28624 on strdat_210 strdat (cost=0.00..4.28 rows=3 width=19) (actual time=0.004..0.004 rows=1 loops=1) Index Cond: (datetime <= 1399399261) Filter: (did = 210) Buffers: shared hit=2 Total runtime: 0.048 ms (15 rows) QUERY PLAN ---------------------------------------------------------------------------------------------------------------------------------------------------------------- Limit (cost=0.01..0.88 rows=1 width=69) (actual time=0.010..0.010 rows=1 loops=1) Buffers: shared hit=3 -> Result (cost=0.01..8.73 rows=10 width=69) (actual time=0.009..0.009 rows=1 loops=1) Buffers: shared hit=3 -> Merge Append (cost=0.01..8.73 rows=10 width=69) (actual time=0.009..0.009 rows=1 loops=1) Sort Key: public.strdat.datetime Buffers: shared hit=3 -> Index Scan Backward using strdat_pkey on strdat (cost=0.00..4.26 rows=1 width=520) (actual time=0.004..0.004 rows=0 loops=1) Index Cond: ((did = 223) AND (datetime <= 1410961708) AND (cid = 28624)) Buffers: shared hit=1 -> Index Scan Backward using strdat_223_28624 on strdat_223 strdat (cost=0.00..4.33 rows=9 width=19) (actual time=0.004..0.004 rows=1 loops=1) Index Cond: (datetime <= 1410961708) Filter: (did = 223) Buffers: shared hit=2 Total runtime: 0.034 ms (15 rows) QUERY PLAN ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- Limit (cost=2.27..2.27 rows=1 width=270) (actual time=0.035..0.036 rows=1 loops=1) Buffers: shared hit=18 -> Sort (cost=2.27..2.27 rows=2 width=270) (actual time=0.035..0.035 rows=1 loops=1) Sort Key: public.strdat.datetime Sort Method: top-N heapsort Memory: 25kB Buffers: shared hit=18 -> Result (cost=0.00..2.26 rows=2 width=270) (actual time=0.005..0.028 rows=29 loops=1) Buffers: shared hit=18 -> Append (cost=0.00..2.26 rows=2 width=270) (actual time=0.005..0.027 rows=29 loops=1) Buffers: shared hit=18 -> Seq Scan on strdat (cost=0.00..0.00 rows=1 width=520) (actual time=0.000..0.000 rows=0 loops=1) Filter: ((datetime <= 1411292950) AND (did = 226) AND (cid = 28624)) -> Index Scan Backward using strdat_226_28624 on strdat_226 strdat (cost=0.00..2.26 rows=1 width=19) (actual time=0.004..0.023 rows=29 loops=1) Index Cond: (datetime <= 1411292950) Filter: (did = 226) Buffers: shared hit=18 Total runtime: 0.056 ms (17 rows) Maxim Bogukс этого места поподробнее, пжалста перловые ф-ии ? внешние сервера от ара-кала? что левого к базе прикрутили, признавайтесь К постгресу ничего не прикручивал и даже не из сорцов его ставил. Признаюсь, что я не пробрасывал порты к серверу и всё делаю из Webmin-а. Может из за этого? Я остановил апач, остановил приложение пишушее в базу. Они остановились (проверял по списку процессов), зашёл в Webmin-e Службы\Сервер баз данных PostgreSQL\postgres\Исполнить SQL, вставил Код: sql 1. - выполнилось. Посмотрел так же Код: sql 1. - селекты висели. Может, подождать надо было. Но мне хотелось систему восстановить, я перезапустил постгрес. Maxim Bogukверсия -- повисшие -- автономки, запускаемые из security defined ф-ий из-под postgres, процессы которого вы не прибивали. И они у вас в неразрешимом дедлоке (что от реиндекса не зависит), либо в очередях на уникъю, что от реиндекса немного зависит. еще поправка/уточнение/ версии про автономки повисшие, которые не постгреса, -- запускаются с sec/def/ , написаны от постгреса, которые запустили свои автономки и ждут (терминейтом не кладутся, не получив возврат от автономок). если бы вы прибили их детей -- они бы и легли. Тут я "поплыл". Что такое security defined ф-ий, которые запускаются с sec/def/ ? Все эти селекты вызываются из мода апача, который использует для доступа к постгресу http://apr.apache.org/docs/apr/2.0/group___a_p_r___util___d_b_d.html , и вообще библиотеку apr на которой сам апач работает. Апач я закрыл. Может он ещё не успел полностью закрыться? Попробую при следующем падении. Логично напрашивается вопрос - нельзя ли прибивать "застрявшие" запросы к базе а не коннекты к ней? Ну и отчего они застревают то? Ничего со словом security не использовалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2014, 13:52:54 |
|
||
|
REINDEX DATABASE выполняется уже 6 часов и конца не видно
|
|||
|---|---|---|---|
|
#18+
Снова загрузка 100%. Остановил апач, прибил все его процессы, закрыл второе приложение. Всё что работает с базой прибито. По pg_stat_activity выдаётся ts_age state query_age change_age datname pid usename waiting client_addr client_port query 01:15:11.548306 active 01:15:11.548306 01:15:11.548306 postgres 13510 postgres 0 -1 select GetBottomInfo(201) Код: sql 1. - выполняется но эффекта нет. В списке процессов, на первом месте по загрузке проца ID Владелец Использование CPU Команда 13510 postgres 4.9 % postgres: postgres postgres [local] SELECT Если дедлок, то он же с чем то должен сцепиться? Не сам же с собой? Или с аутовакуумом? Опять, же почему загрузка проца большая? Я не знаю, где копать. autovacuum = on #log_autovacuum_min_duration = -1 autovacuum_max_workers = 4 autovacuum_naptime = 5s # Сброс в базу в приложении каждые 5 секунд, поэтому. Хотя, может неправильно. autovacuum_vacuum_threshold = 50 autovacuum_analyze_threshold = 10 autovacuum_vacuum_scale_factor = 0.02 autovacuum_analyze_scale_factor = 0.02 #autovacuum_freeze_max_age = 200000000 autovacuum_vacuum_cost_delay = 10ms #autovacuum_vacuum_cost_limit = -1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2014, 14:27:22 |
|
||
|
REINDEX DATABASE выполняется уже 6 часов и конца не видно
|
|||
|---|---|---|---|
|
#18+
AltCtrlDelСнова загрузка 100%. Остановил апач, прибил все его процессы, закрыл второе приложение. Всё что работает с базой прибито. По pg_stat_activity выдаётся ts_age state query_age change_age datname pid usename waiting client_addr client_port query 01:15:11.548306 active 01:15:11.548306 01:15:11.548306 postgres 13510 postgres 0 -1 select GetBottomInfo(201) Код: sql 1. - выполняется но эффекта нет. В списке процессов, на первом месте по загрузке проца ID Владелец Использование CPU Команда 13510 postgres 4.9 % postgres: postgres postgres [local] SELECT Если дедлок, то он же с чем то должен сцепиться? Не сам же с собой? Или с аутовакуумом? Опять, же почему загрузка проца большая? Я не знаю, где копать. autovacuum = on #log_autovacuum_min_duration = -1 autovacuum_max_workers = 4 autovacuum_naptime = 5s # Сброс в базу в приложении каждые 5 секунд, поэтому. Хотя, может неправильно. autovacuum_vacuum_threshold = 50 autovacuum_analyze_threshold = 10 autovacuum_vacuum_scale_factor = 0.02 autovacuum_analyze_scale_factor = 0.02 #autovacuum_freeze_max_age = 200000000 autovacuum_vacuum_cost_delay = 10ms #autovacuum_vacuum_cost_limit = -1 скорее всего что копать надо в сторону переделки хранимок ваших на execute 'sql' using variables; для тех запросов внутри хранимок которые партиционированные таблицы цепляют. --Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2014, 15:34:29 |
|
||
|
REINDEX DATABASE выполняется уже 6 часов и конца не видно
|
|||
|---|---|---|---|
|
#18+
Как я ранее написал, оставалось висеть select GetBottomInfo(201). Я перезапустил приложения и постгрес. Через пол часа опять 100% загрузка, всё снимаю, остаются висеть уже ДВА select GetBottomInfo(201). И именно 201. Что это как не испорченный индекс (или сама таблица?)? Запустил reindex table dat_201 - выполнилась быстро. Запустил систему снова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2014, 16:22:54 |
|
||
|
REINDEX DATABASE выполняется уже 6 часов и конца не видно
|
|||
|---|---|---|---|
|
#18+
AltCtrlDelКак я ранее написал, оставалось висеть select GetBottomInfo(201). Я перезапустил приложения и постгрес. Через пол часа опять 100% загрузка, всё снимаю, остаются висеть уже ДВА select GetBottomInfo(201). И именно 201. Что это как не испорченный индекс (или сама таблица?)? Запустил reindex table dat_201 - выполнилась быстро. Запустил систему снова. когда проблема проявится опять попробуйте руками прогнать выполнение залипающих запросов (До рестарта базы и reindex) если они не залипают - значит проблема не в индексах если залипают руками пройдитесь по всем запросам внутри хранимки и попробуйте найти тот что залипает и через explain посмотреть его план. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2014, 20:16:47 |
|
||
|
REINDEX DATABASE выполняется уже 6 часов и конца не видно
|
|||
|---|---|---|---|
|
#18+
Совет запоздал. я просто прибил партицию 201 (select count(*) from dat_201 показывало 0) и, вот уже два часа система работает с загрузкой винтов около процента. Перед этим я много раз делал реиндексы и полные и для этой таблицы только. Не помогало. Ощущение что повредилась сама таблица dat_201, а не индексы. Так может быть? Если да, то отчего? Опять же, получается что CLUSTER такое не лечит. Не понятно как искать если снова случится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2014, 21:09:25 |
|
||
|
REINDEX DATABASE выполняется уже 6 часов и конца не видно
|
|||
|---|---|---|---|
|
#18+
AltCtrlDel, > 201 а это старая/новая партиция? что-то в ней есть особенного по ddl (sql-схеме) или по природе исходного "датчика"? когда последний раз в неё лилось и как много? были ли по ней массовые апдейты/делиты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2014, 01:53:34 |
|
||
|
REINDEX DATABASE выполняется уже 6 часов и конца не видно
|
|||
|---|---|---|---|
|
#18+
AltCtrlDel, какой у вас 9.2? как вы, откуда и когда на него апгрейдились? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2014, 01:55:53 |
|
||
|
REINDEX DATABASE выполняется уже 6 часов и конца не видно
|
|||
|---|---|---|---|
|
#18+
Misha TyurinAltCtrlDel, а это старая/новая партиция? что-то в ней есть особенного по ddl (sql-схеме) или по природе исходного "датчика"? Такой истории не имею. Партиция обычная, они все одинаковые, создаются хранимкой, в одном из постов выше я её приводил - create_part (в файле analiz.zip, прикреплённом к посту). Как я выше писал, вроде бы, пустая была (select count(*) from dat_201 показывало 0). Партиции нумеруются последовательно, по мере создания, сейчас последняя 244. Зная, к какому объекту она относилась, попытаюсь узнать, писалось ли что то в неё у пользователей. Вообще это ненормально, что 0 записей. Приложение создаёт партицию когда начинают идти данные от нового объекта и никогда не удаляет частями из партиции. На объект создаётся две партиции разных таблиц. dat и strdat, проблема была с dat (таблица партиции dat_201). Упрощённо - в dat информация в виде чисел, в strdat - в виде текстовых строк. Обычно записей в dat раз в 100 больше, и извлекаются чаще, так что вся нагрузка от dat. (cм. analiz.zip) В последнее время из dat_201 пытались делать выборки - оттого и висло. Удалил я корректно, без нарушения структуры базы, т.е. и запись в таблице на неё ссылающеюся. PostgreSQL 9.2.4 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit Ранее был 9.1, но переход выполнялся давно (в конце мая 2013) и всё работало. Перенос через pg_dump - pg_restore. ps: до сих пор работает, и загрузка не растёт. Прямо даже не верится. А то висло через полчаса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2014, 05:12:53 |
|
||
|
REINDEX DATABASE выполняется уже 6 часов и конца не видно
|
|||
|---|---|---|---|
|
#18+
AltCtrlDel, дело скорее всего не в индексах. посмотрел на вашу висящую (код) -- если висит только она, то ничего внешнего там не дергается, при этом waiting у нее --0. При 240 партициях я бы ожидал массу неприятностей от планировщика, если не адресоваться к партиции (руками) явно. (при порядка 100 парт. и по 6 индексов на партицию время (первичного) планирования , если все требуемые системные/статистические данные не в кеше, среднесложного запроса -- 10-ок с гаком секунд). Правда у вас запросы -- проще некуда. Версия -- тупит планировщик (на этапе собственно выполнения терминейт не обламывался ни разу, если прибиваемый процесс не ждёт ответа от другого процесса -- о чём я, было, подумал). Попробуйте обновиться, чес чёрт не шутит. Попробуйте выполнять через динамич. скл. -- тоже верная рекомендация для партицированных. можно наверное включить модуль фиксации планов во время выполнения -- попытаться понять, что там происходит. (на память не вспомню, поковыряюсь в загашнике, не уверен, что он фиксирует планы "внутре" ф-й.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2014, 08:29:10 |
|
||
|
REINDEX DATABASE выполняется уже 6 часов и конца не видно
|
|||
|---|---|---|---|
|
#18+
AltCtrlDel, вооо... всё таки отличие какое-то есть. странный "0" строк. я бы разобрался с эти, откуда такое прилетело. это как минимум интересно, ну и может потенциально предупредить возобновление проблемы. как это говорится, вангую, что дело именно в этом нуле или где-то около этого обстоятельства. у вас мог где-то вдруг индекскан начать перебирать всю пустоту в поисках нужного тупла. хотя вы и писали, что всё реиндексили, вакуумили, анализировали и прочее. возможно еще что из-за этого нуля.... нда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2014, 13:15:29 |
|
||
|
REINDEX DATABASE выполняется уже 6 часов и конца не видно
|
|||
|---|---|---|---|
|
#18+
AltCtrlDel, А вы bloat проверяли для таблиц/индексов? Возможно, в партицию 201 была попытка загрузить большой объем данных, но по какой-то причине транзакцию убили/отменили. Тогда при нулевом кол-ве видимых записей и в таблице, и в индексе будет много "deleted" кортежей (tuples). Это и место, и поиск в FSM. У вас нету временных ограничений на работу процедур загрузки данных в приложении? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2014, 14:32:29 |
|
||
|
REINDEX DATABASE выполняется уже 6 часов и конца не видно
|
|||
|---|---|---|---|
|
#18+
думаетсяПри 240 партициях я бы ожидал массу неприятностей от планировщика, если не адресоваться к партиции (руками) явно. На самом деле, основное число выборок приходится на "SELECT cid,max(v),min(datetime) FROM dat_%s where (cid in (0,1,2,100)) and datetime between %d and %d group by cid,datetime / %d order by min(datetime)" где %s - номер партиции, и т.д. В конфиге стоит log_min_duration_statement = 1000, по этому они редко в лог попадают - выполняются быстро. А вот запись идёт в приложении через COPY dat FROM stdin with binary Приложение-сборщик собирает данные со всех активных своих клиентов по 5с, пишет во входной поток COPY. Т.е. тут неявное обращение к партициям потому что в потоке идут данные для разных партиций. Но приложение-сборщик то как раз не падало, оно грузит то на 0.1%, основное выборки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2014, 16:24:35 |
|
||
|
REINDEX DATABASE выполняется уже 6 часов и конца не видно
|
|||
|---|---|---|---|
|
#18+
vyegorovА вы bloat проверяли для таблиц/индексов? Нет. Думал что не нужно. Я выше писал что приложение никогда не удаляет отдельные записи из таблиц и не делает по ним UPDATE. vyegorovВозможно, в партицию 201 была попытка загрузить большой объем данных, но по какой-то причине транзакцию убили/отменили. Возможно. Опять же выше я писал, что часть пользователей имеет доступ к сереру и чуть что нажимали на нём ресет. Сейчас, вроде, отучили их от этого. vyegorovТогда при нулевом кол-ве видимых записей и в таблице, и в индексе будет много "deleted" кортежей (tuples). Это и место, и поиск в FSM. Сейчас уже поздно. И, честно говоря, я не знаю как и что смотреть в Free Space Map. vyegorovУ вас нету временных ограничений на работу процедур загрузки данных в приложении? нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2014, 16:33:45 |
|
||
|
|

start [/forum/topic.php?fid=53&gotonew=1&tid=1998481]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
171ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 477ms |

| 0 / 0 |
