Наша база данных, кажется, сломана, обычно она использует около 1-2% процессора, но если мы запустим некоторые дополнительные бэкэнд-услуги, которые делают запросы UPDATE и INSERT для таблицы строк 10M (около 1 запроса за 3 секунды), все идет в ад (в том числе CPU увеличивается с 2% до 98% использования).
Мы решили отладить, что происходит, запустите VACUUM и ANALYZE, чтобы узнать, что неправильно с db, но...
production=# ANALYZE VERBOSE users_user;
INFO: analyzing "public.users_user"
INFO: "users_user": scanned 280 of 280 pages, containing 23889 live rows and 57 dead rows; 23889 rows in sample, 23889 estimated total rows
INFO: analyzing "public.users_user"
INFO: "users_user": scanned 280 of 280 pages, containing 23889 live rows and 57 dead rows; 23889 rows in sample, 23889 estimated total rows
ERROR: tuple already updated by self
мы не можем завершить ANALYZE на ЛЮБОЙ из таблиц и не смогли найти никакой информации об этой проблеме. Любые предложения, что может быть неправильным?
PostgreSQL 9.6.8 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16), 64-bit
Дополнительная информация по запросу:
Возможно, у вас поврежден pg_class
SELECT * FROM pg_class WHERE relname = 'users_user';
Выход: https://pastebin.com/WhmkH34U
Итак, первое, что нужно сделать, - выгнать все остальные сеансы и попробовать снова
Нет дополнительных сеансов, мы сбросили всю БД на новый сервер тестирования, проблема все еще возникает, нет клиентов, подключенных к этой БД