@pgsql

Страница 165 из 1062
Andrey
21.11.2016
05:45:10
Зачем тогда свое делать ?
Есть у меня один знакомый, кодер от б-га, но вот архитектор БД... Убить порой хочется.

Kanybek
21.11.2016
06:09:01
Есть. http://bfy.tw/8sFr
database design for stock, database design for store, for book store, online store, database design for stock managment system —> пока вот так ищу, годное не нашел

Andrey
21.11.2016
06:10:50
У Вас принципиально неверный подход. При наличии теоретических знаний о принципах построения реляционных БД практическая задача разработки архитектуры под конкретное приложение становится тривиальной.

Google
Kanybek
21.11.2016
06:14:50
У Вас принципиально неверный подход. При наличии теоретических знаний о принципах построения реляционных БД практическая задача разработки архитектуры под конкретное приложение становится тривиальной.
Тогда придется делать самому, как умею. Обычно при кодинге, смотришь на чужой код, так быстрее учишься у бывалых, а для БД такое не прокатит?

Alex
21.11.2016
06:54:27
Не очень понятно чему можно научиться с чужой БД, у всех свои представления о структуре, сущностях, отношениях. И одну и ту же задачу можно реализовать пачкой способов. Тут скорее вопрос, что конкретно вам будет удобнее.

Maxim
21.11.2016
07:10:04
мастер холодный при этом

Петр
21.11.2016
07:11:14
лаг есть?

что в топе?

ядер достаточно?

Марк ☢
21.11.2016
07:12:24
уж не в D ли состоянии большинство процессов ?

ros
21.11.2016
07:12:33
может рейд рассыпался

Марк ☢
21.11.2016
07:12:43
или свопчик

Maxim
21.11.2016
07:13:55
рейд в порядке

лага вроде не наблюдается

ros
21.11.2016
07:15:06
так слейв загружен запросами

Google
ros
21.11.2016
07:15:17
SELECT

Maxim
21.11.2016
07:15:27
ну там всегда так

в том смысле что запросов драматически больше не стало

ros
21.11.2016
07:16:35
ну лог медленных и профилировщик в зубы может что-то поменялось о чем вы не в курсах

Sergey
21.11.2016
07:18:39
в том смысле что запросов драматически больше не стало
<зануда> Drastically переводится как кардинально, а не драматически. </зануда> А так - +1, slow query log зубы и вперёд

Maxim
21.11.2016
07:19:00
ггг

Sergey
21.11.2016
07:20:08
Там вон в топе селекты простые по кучу времени висят

pgbouncer не используете, кстати?

Maxim
21.11.2016
07:27:17
используем

и перед мастером и перед слейвом баунсер стоит

Петр
21.11.2016
07:59:46
блокировки посмотрите

Данил
21.11.2016
08:01:37
привет что за софт?

Maxim
21.11.2016
08:02:37
pgsql-9.6.1, pgbouncer-1.7.2, рельсобэкенд

или о чем вопрос?

блокировки посмотрите
там 760 accesssharelock, если верить прометею

dmitriy
21.11.2016
08:06:57
select * from pg_locks where granted = false таких много?

Петр
21.11.2016
08:07:22
посмотрите на самые старые сессии на примари и стендбае

возможно среди них есть подозрительные

Maxim
21.11.2016
08:08:10
реально долгих запросов нет

у нас на этой площадке бывало, что какой-нить коммит залипал часа на три

Google
Данил
21.11.2016
08:08:32
визуализация

или о чем вопрос?

Maxim
21.11.2016
08:08:35
и слейв начинал сходить с ума

но сейчас дело не в этом

Петр
21.11.2016
08:08:55
возможно поломались планы, посмотрите индексы

dmitriy
21.11.2016
08:08:57
а селекты долгие одни и теже?

Maxim
21.11.2016
08:09:02
визуализация
Prometheus + Grafana

Данил
21.11.2016
08:09:07
спс

Петр
21.11.2016
08:09:19
проблем на схд нет?

Maxim
21.11.2016
08:09:32
нет

Vadim
21.11.2016
08:10:01
BLOAT какой на объектах БД?

Maxim
21.11.2016
08:10:09
select * from pg_locks where granted = false таких много?
postgres=# select * from pg_locks where granted = false; (0 rows)

Петр
21.11.2016
08:10:44
посмотрите планы и наличие статистик

dmitriy
21.11.2016
08:10:48
посмотрите pg_stat_user_tables, может analyze давно не было?

Maxim
21.11.2016
08:11:39
а что там конкретно посмотреть?

Vadim
21.11.2016
08:12:07
.

.

https://gist.github.com/anonymous/82037d2f17450b41173f8c57580c07ce

Vadim
21.11.2016
08:13:32
gist.github.com
спасибо

Google
Maxim
21.11.2016
08:15:56
так

я выполнил этот магический запрос

и даже вроде не открыл ворота в ад

Vadim
21.11.2016
08:16:43
каков результат?

Maxim
21.11.2016
08:17:14
ну если я правильно понимаю, то результат довольно печален

-[ RECORD 1 ]-+----------------------------------------------------------- database_name | darberry schema_name | public table_name | offer_financials index_name | offer_financials_uniqueness bloat_pct | 77.1 bloat_bytes | 16962265088 bloat_size | 16 GB index_bytes | 21987745792 index_size | 20 GB table_bytes | 41457065984 table_size | 39 GB index_scans | 0

Vadim
21.11.2016
08:17:34
ну вот вам и ответ на ваши вопросы)

Admin
ERROR: S client not available

Maxim
21.11.2016
08:17:40
блоат в половину размера таблицы

dmitriy
21.11.2016
08:17:54
а запросы на этой таблицы тормозят?

Vadim
21.11.2016
08:17:55
pg_repack или FULL VACUUM

Maxim
21.11.2016
08:18:26
а запросы на этой таблицы тормозят?
если говорить культурно, то ДА

dmitriy
21.11.2016
08:18:50
а когда на ней последний last_autovacuum был?

и попробуйте запустить на ней VACUUM VERBOSE

Vadim
21.11.2016
08:19:58
и попробуйте запустить на ней VACUUM VERBOSE
скорее всего не поможет. Он обрежет только то, что сможет обрезать в конце таблицы. Нужен полный вакуум таблицы

dmitriy
21.11.2016
08:20:14
при большом блоте не обязательно будут тормозить запросы жутко

Vadim
21.11.2016
08:21:06
при большом блоте не обязательно будут тормозить запросы жутко
А давайте сделаем сначала полный вакуум и проверим) у меня другие предположения на этот счет)

dmitriy
21.11.2016
08:21:29
у вас начинаются тормоза, когда в индексе лежат указатели на мертвые строки, и бэкенду приходится ходить в heap и проверять их на mvcc, простой vacuum их вычищает из индекса, и запросы работают нормально

понятно, что сделав vacuum full у вас все будет чики-пуки

Google
dmitriy
21.11.2016
08:22:01
по, не факт, что он пройдет

потому что могут быть старые снапшоты активны, которые на дадут почистить dead tuples, для этого я и советую сначала запустить VACUUM VERBOSE, чтобы понять, сможет он почистить или нет

но если он отработает, то по идее и его должно хватить

Vadim
21.11.2016
08:28:42
Сделайте только над теми таблицами которые у вас наиболее распухшие сейчас. Чтобы не было простоя, воспользуйтесь https://github.com/reorg/pg_repack

Остальное сделайте ночью, когда у вас база наименее нагружена

https://gist.github.com/anonymous/82037d2f17450b41173f8c57580c07ce
по этой ссылке есть запрос dead_tuples. Там есть время последнего вакуума и анализа таблиц. если оно совсем старое то запустите обычный вакуум пока что.

Maxim
21.11.2016
08:32:18
а когда на ней последний last_autovacuum был?
# select relname,last_vacuum, last_autovacuum, last_analyze, last_autoanalyze from pg_stat_user_tables where relname = 'offer_financials'; -[ RECORD 1 ]----+------------------------------ relname | offer_financials last_vacuum | last_autovacuum | 2016-11-17 09:34:58.496268+00 last_analyze | 2016-10-04 06:25:12.992705+00 last_autoanalyze | 2016-11-17 11:42:04.574505+00

Vadim
21.11.2016
08:32:49
ну в общем только полный вакуум как я и говорил

dmitriy
21.11.2016
08:33:01
Почему?

Vadim
21.11.2016
08:33:02
используйте пгрепак

Потому что нужно неистово писать 4 дня (2 из которых выходные), чтобы получить 16 Гб BLOAT

Maxim
21.11.2016
08:35:24
fuck yeah

ERROR: could not access status of transaction 1321660374 DETAIL: Could not open file "pg_clog/04EC": No such file or directory.

Vadim
21.11.2016
08:35:46
ооо..вот это уже интересно)

Maxim
21.11.2016
08:35:48
потому и не кусают

слейв ждет транзакций из этого лога

а его нет

Vadim
21.11.2016
08:36:34
коммит синхронный?

dmitriy
21.11.2016
08:36:56
Это в ответ на что такое прилетело?

Страница 165 из 1062