powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Огромная разница при выполнении select на master и на slave
10 сообщений из 10, страница 1 из 1
Огромная разница при выполнении select на master и на slave
    #39452327
Alexander_CF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую !
Есть несколько серверов с аналогичной конфигурацией, запрос на слейве выполняется в разы дольше чем на местере. Если на этот же сервер скопировать базу с мастера и развернуть без включения репликации - время такое же как на мастере. После включения репликации скорость падает.
Планы выполнения одинаковые, одна существенная разница:
Мастер:
Код: sql
1.
->  Bitmap Index Scan on "OutgoingMessages_Status_StampToSend_Deleted"  (cost=0.00..3556.90 rows=80249 width=0) (actual time=139.761..139.761 rows=9158 loops=1)



Слейв:
Код: sql
1.
 ->  Bitmap Index Scan on "OutgoingMessages_Status_StampToSend_Deleted"  (cost=0.00..3556.90 rows=80249 width=0) (actual time=1470.853..1470.853 rows=8671249 loops=1)



Разница 138.116 ms против 1623.496 ms
...
Рейтинг: 0 / 0
Огромная разница при выполнении select на master и на slave
    #39452351
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander_CFПриветствую !
Есть несколько серверов с аналогичной конфигурацией, запрос на слейве выполняется в разы дольше чем на местере. Если на этот же сервер скопировать базу с мастера и развернуть без включения репликации - время такое же как на мастере. После включения репликации скорость падает.
Планы выполнения одинаковые, одна существенная разница:
Мастер:
Код: sql
1.
->  Bitmap Index Scan on "OutgoingMessages_Status_StampToSend_Deleted"  (cost=0.00..3556.90 rows=80249 width=0) (actual time=139.761..139.761 rows=9158 loops=1)



Слейв:
Код: sql
1.
 ->  Bitmap Index Scan on "OutgoingMessages_Status_StampToSend_Deleted"  (cost=0.00..3556.90 rows=80249 width=0) (actual time=1470.853..1470.853 rows=8671249 loops=1)



Разница 138.116 ms против 1623.496 ms

track_io_timing = on
explain (analyze, costs, buffers, timing) запрос

ну и запрос выполнять раза 3-4 смотря на изменения скорости работы.

PS: а точно ли запросы 100% одинаковы? можно привести их целиком?
Точно ли реплика не отстает сильно от мастера?
Точно ли work_mem одинаково настроен на мастере и реплике? (да и остальные настройки)

--
Maxim Boguk
dataegret.ru
...
Рейтинг: 0 / 0
Огромная разница при выполнении select на master и на slave
    #39452369
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander_CFПриветствую !
Есть несколько серверов с аналогичной конфигурацией, запрос на слейве выполняется в разы дольше чем на местере. Если на этот же сервер скопировать базу с мастера и развернуть без включения репликации - время такое же как на мастере. После включения репликации скорость падает.
Планы выполнения одинаковые, одна существенная разница:
Мастер:
Код: sql
1.
->  Bitmap Index Scan on "OutgoingMessages_Status_StampToSend_Deleted"  (cost=0.00..3556.90 rows=80249 width=0) (actual time=139.761..139.761 rows=9158 loops=1)



Слейв:
Код: sql
1.
 ->  Bitmap Index Scan on "OutgoingMessages_Status_StampToSend_Deleted"  (cost=0.00..3556.90 rows=80249 width=0) (actual time=1470.853..1470.853 rows=8671249 loops=1)



Разница 138.116 ms против 1623.496 ms


йа одинь этта вижу
...
Рейтинг: 0 / 0
Огромная разница при выполнении select на master и на slave
    #39452371
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы это был вопрос
...
Рейтинг: 0 / 0
Огромная разница при выполнении select на master и на slave
    #39452378
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqзы это был вопрос

Вот потому и были вопросы от меня на счет
>>а точно ли запросы 100% одинаковы? можно привести их целиком?
>>Точно ли реплика не отстает сильно от мастера?
...
Рейтинг: 0 / 0
Огромная разница при выполнении select на master и на slave
    #39453000
Alexander_CF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет, спасибо за ответы.
Мастер
explain (analyze, verbose, buffers) SELECT "om".* FROM "Table" AS "om" WHERE (om."UserID" = 11111) AND (NOT om."Deleted") AND (om."Status" = 0) ORDER BY "StampToSend" asc LIMIT 11;

Слейв
explain (analyze, verbose, buffers) SELECT "om".* FROM "Table" AS "om" WHERE (om."UserID" = 11111) AND (NOT om."Deleted") AND (om."Status" = 0) ORDER BY "StampToSend" asc LIMIT 11;

Проверяли по нескольку раз, копировали базу с мастера, поднимали, запускали репликацию - такая же фигня.

Реплика не отстает - 100500%
...
Рейтинг: 0 / 0
Огромная разница при выполнении select на master и на slave
    #39453001
Alexander_CF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторТочно ли work_mem одинаково настроен на мастере и реплике? (да и остальные настройки)
Да, точно, проверяли. Всё идентично, более того, на мастере диск помедленнее (в клауде обычный диск, а на реплике уже на SSD переехали)
...
Рейтинг: 0 / 0
Огромная разница при выполнении select на master и на slave
    #39453010
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander_CFПривет, спасибо за ответы.
Мастер
explain (analyze, verbose, buffers) SELECT "om".* FROM "Table" AS "om" WHERE (om."UserID" = 11111) AND (NOT om."Deleted") AND (om."Status" = 0) ORDER BY "StampToSend" asc LIMIT 11;

Слейв
explain (analyze, verbose, buffers) SELECT "om".* FROM "Table" AS "om" WHERE (om."UserID" = 11111) AND (NOT om."Deleted") AND (om."Status" = 0) ORDER BY "StampToSend" asc LIMIT 11;

Проверяли по нескольку раз, копировали базу с мастера, поднимали, запускали репликацию - такая же фигня.

Реплика не отстает - 100500%

Hm интересные дела. А все таки привести результаты от explain можно? (полные а не обрывки?)
На всякий случай - autovacuum не выключен на мастере?
Не исправляет ли ручной запуск vacuum analyze таблица; проблему?

Покажите полную структуру таблицы включая индексы заодно.

--
Maxim Boguk
dataegret.ru
...
Рейтинг: 0 / 0
Огромная разница при выполнении select на master и на slave
    #39453131
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander_CF<...>

Реплика не отстает - 100500%
ну да, а разницу в 8лямов ровсов в плане вам кот начихал


и где стракча OutgoingMessages_Status_StampToSend_Deleted ?

офф. вот такой инд. был бы тут правильнее:
(Status,"UserID",StampToSend) WHERE NOT Deleted
OR
("UserID",StampToSend) WHERE (NOT Deleted) AND Status=0
...
Рейтинг: 0 / 0
Огромная разница при выполнении select на master и на slave
    #39453299
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander_CF,

покажите полностью выводы explain. используется streaming репликация или что-то другое?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Огромная разница при выполнении select на master и на slave
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]