#3904 (сбой PostgreSQL 11 на магистрали PostGIS 2.5) — PostGIS
Открыт 6 лет назад
Закрыт 5 лет назад
Сообщил: | халат | Владелец: | детская коляска |
---|---|---|---|
Приоритет: | блокиратор | Веха: | ПостГИС 2.5.0 |
Компонент: | почта | Версия: | 2.4.х |
Ключевые слова: | Копия: |
Поскольку этот коммит pg11 Пробеги Дебби на стр.
Сводка Добавьте макрос pg_noinline в c.h. (подробности) Улучшить производительность sys/catcache. (подробности) Совершить a0247e7a11bb9f5fd55694b594a3906b7bd05881 от Андреса Добавьте макрос pg_noinline в c.h. Заставить функцию не быть встроенной может быть полезно, если это медленный путь. функции, критической для производительности, или должны быть видны в профилях, чтобы позволяют правильно распределять затраты. Автор: Андрес Фройнд Обсуждение: https://postgr.es/m/[email protected] Файл был изменен src/include/c.h Зафиксировать 141fd1b66ce6e3d10518d66d4008bd368f1505fd от Андреса Улучшить производительность sys/catcache. Ниже приведены отдельные улучшения: 1) Предотвращение Вызовы функций на основе FunctionCallInfo заменены на более эффективные функции с собственным интерфейсом аргументов C. 2) Не извлекать столбцы из кортежа записи кэша при каждом совпадении записи - вместо этого сохраните их как массив Datum. Это также позволяет избавиться от необходимости создавать фиктивные кортежи для отрицательного и списка записи и хак для работы со странностями cstring и text. 3) Измените порядок членов структуры catcache.h, чтобы важные записи были более вероятно, будет на одной кэш-линии. 4) Разрешение компилятору специализироваться критический SearchCatCache для определенное количество атрибутов позволяет разворачивать петли и избегать другая инициализация, зависящая от nkeys. 5) Только инициализация ScanKey при необходимости, т.е. промахи catcache, значительно уменьшает кеш-память ненужных промахов кеша процессора. 6) Разделение случай промаха кеша из поиска хэша, уменьшение стека распределения и т. д. в общем случае. 7) CatCTup и соответствующие им heaptuple размещаются в одном кусок. Это приводит к тому, что поиск в кэше выполняется примерно в три раза чаще, чем быстро - полносистемные тесты явно улучшаются меньше, чем это. Я также оценил дополнительные методы: - заменить хеш с открытым кодом на простой хэш - список гуляем прямо сейчас отображается в профилях.К сожалению, это не так просто сделать так безопасно, как расположение записи в памяти может меняться в разное время, что плохо работает с подсчетом ссылок и аннулированием кеша. - Cacheline-выравнивание записей CatCTup - помогает некоторым с производительностью, но выигрыш невелик и код для него некрасивый, т.к. кортежи также должны быть освобождены. - добавить больше правильных функций, а не макросов для SearchSysCacheCopyN и т. д., но сейчас они не отображаются в профили. Причина, по которой макрос-оболочка для syscache.c/h должна быть изменена, скорее чем просто catcache, заключается в том, что в противном случае потребовалось бы разоблачение Массив SysCache наружу. В любом случае, это может быть хорошей идеей, но это на другой день. Автор: Андрес Фройнд. Рецензент: Роберт Хаас. Обсуждение: https://postgr.es/m/[email protected] Файл был изменен src/tools/pgindent/typedefs.list Файл был изменен src/include/utils/syscache.h Файл был изменен src/backend/utils/cache/catcache. c Файл был изменен src/include/utils/catcache.h Файл был изменен src/backend/utils/cache/syscache.c
Журнал регресса postgis выглядит так:
PostgreSQL 11devel на x86_64-pc-linux-gnu, скомпилированный gcc (Debian 5.2.1-22) 5.2.1 20151010, 64-разрядная версия Постгис 2.5.0dev - r15979 - 2017-10-13 22:01:30 скрипты 2.5.0dev r15979 ГЕОС: 3.7.0dev-CAPI-1.11.0 a51a06b1 ПРОДЖ: Отн. 4.9.2, 08 сентября 2015 г. SFCGAL: 1.3.0 Запуск тестов загрузчик/точка .............. ок загрузчик/PointM .............. ок загрузчик/PointZ .............. ок загрузчик/многоточечный .............. в порядке загрузчик/MultiPointM .............. нормально загрузчик/MultiPointZ ........... в порядке загрузчик/дуга .............. в порядке загрузчик/ArcM ........... в порядке загрузчик/ArcZ ........... в порядке загрузчик/полигон ........... в порядке загрузчик/PolygonM .............. ок загрузчик/PolygonZ ........... нормально загрузчик/TSTPolygon ......... нормально загрузчик/TSIPolygon ......... нормально загрузчик/TSTIPolygon ......... нормально загрузчик/PointWithSchema ..... ок загрузчик/NoTransPoint ......... нормально загрузчик/NotReallyMultiPoint ......... нормально загрузчик/MultiToSinglePoint ......... нормально загрузчик/ReprojectPts ........ ок загрузчик/ReprojectPtsGeog ........ ок загрузчик/Latin1 .... ок загрузчик/Latin1-неявный .... хорошо загрузчик/mfile .... хорошо dumper/literalsrid ....... хорошо самосвал/реальный ....... нормально аффинный .. хорошо бестсрид .. хорошо бинарный .. хорошо граница .. ок кластер .. хорошо concave_hull .. хорошо кторс .. ок криволинейный .. хорошо дамп .. ок точки сброса .. хорошо пусто .. хорошо предполагаемый экстент .. не удалось (ожидаемый результат: /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_4_pg11.0w64/test_38_diff) -------------------------------------------------- --------------------------- --- предполагаемый_экстендент_ожидаемый 01.01.2017 03:28:16.191591396 +0000 +++ /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_4_pg11. 0w64/test_38_out 13-10-2017 22:03:16.164629222 +0000 @@ -1,41 +1,4 @@ -ВНИМАНИЕ: статистика для "t.g" не существует -#877.1| -ВНИМАНИЕ: статистика для "t.g" не существует -#877.2| -ВНИМАНИЕ: подпись ST_Estimated_Extent устарела в версии 2.1.0. Пожалуйста, используйте ST_EstimatedExtent -ВНИМАНИЕ: статистика для "t.g" не существует -#877.2.устарело| -ВНИМАНИЕ: статистика для "t.g" не существует -#877.3|||| -#877.4|-10.15000|20.15000|-50.40000|30.40000 -#877.5|-10.15000|20.15000|-50.40000|30.40000 -ВНИМАНИЕ: статистика для "c1.g" не существует -#3391.1|||| -ВНИМАНИЕ: статистика для "c2.g" не существует -#3391.2|||| -ВНИМАНИЕ: статистика для "p.g" не существует -#3391.3|||| -#3391.4|0,00|1,00|0,00|1,00 -ВНИМАНИЕ: статистика для "c2.g" не существует -#3391.5|||| -#3391.6|0.00|1.00|0.00|1.00 -#3391.7|0.00|1.00|0.00|1.00 -#3391.8|-1.00|0.00|-1.00|0.00 -#3391.9|-1.01|1.01|-1.01|1.01 -#3391.10|0,00|1,00|0,00|1,00 -#3391.11|-1,00|0,00|-1,00|0,00 -#3391.12|-1.01|2.02|-1.01|2.02 -ВНИМАНИЕ: статистика для "p. g" не существует -#3391.13|||| -ВНИМАНИЕ: статистика для "p.g" не существует -#3391.14|||| -ВНИМАНИЕ: статистика для "c1.g" не существует -#3391.15|||| -ВНИМАНИЕ: статистика для "c1.g" не существует -#3391.16|||| -#3391.17|0,00|1,00|0,00|1,00 -ВНИМАНИЕ: статистика для "p.g" не существует -#3391.18|||| -#3391.19|0,00|1,00|0,00|1,00 -#3391.20|0,00|1,00|0,00|1,00 -ВНИМАНИЕ: бросайте каскады на 2 других объекта +сервер неожиданно закрыл соединение + Вероятно, это означает, что сервер аварийно завершил работу + до или во время обработки запроса. + соединение с сервером потеряно -------------------------------------------------- --------------------------- forcecurve .. не удалось (ожидаемый результат: /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_4_pg11.0w64/test_39_diff) -------------------------------------------------- --------------------------- --- forcecurve_expected 01.01.2017 03:28:18.503591901 +0000 +++ /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_4_pg11.0w64/test_39_out 2017-10-13 22:03:16. 192628299 +0000 @@ -1,12 +1 @@
Тогда многое остальное — это просто pg11, пытающийся встать, а затем снова сбой.
-ndovm1|{1,2,3,4,5,8} -ndovm2|{1,2,4,6,7} -#3777|ГЕОМЕТРИЧЕСКАЯ КОЛЛЕКЦИЯ ПУСТА|1 -#3777|LINESTRING(0 0,0 1)|1 -#3777|ПУСТАЯ ТОЧКА|1 -#3777|ТОЧКА(0 0)|3 -#3777|ТОЧКА(0 1)|1 -#3777.1|ГЕОМЕТРИЧЕСКАЯСБОРНИК ПУСТОЙ|1 -#3777.1|LINESTRING(0 0,0 1)|1 -#3777.1|ПУСТАЯ ТОЧКА|1 -#3777.1|ТОЧКА(0 0)|3 -#3777.1|ТОЧКА(0 1)|1 +psql: FATAL: система базы данных находится в режиме восстановления -------------------------------------------------- --------------------------- ориентация .. не удалась (ожидаемый результат: /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_4_pg11.0w64/test_54_diff) -------------------------------------------------- --------------------------- --- ориентация_ожидаемая 2017-03-17 00:52:28.667011501 +0000 +++ /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_4_pg11.0w64/test_54_out 13-10-2017 22:03:16.276625529+0000 @@ -1,36 +1 @@ -1|т -2|т : : -pgcast_06|ПОЛИГОН((0 0,0 1,1 1,1 0,0 0)) +psql: FATAL: система базы данных находится в режиме восстановления -------------------------------------------------- --------------------------- out_geography . . не удалось (ожидаемый результат: /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_4_pg11.0w64/test_56_diff) -------------------------------------------------- --------------------------- --- out_geography_expected 01.01.2017 03:28:16.555591475 +0000 +++ /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_4_pg11.0w64/test_56_out 13-10-2017 22:03:16.284625266 +0000 @@ -1,68 +1 @@
Я подозреваю, что это может быть что-то, что нужно исправить вышестоящим, поэтому нам придется придумать пример, не связанный с PostGIS, который создает беспорядок.
Показать комментарии Показать изменения свойства
История изменений (4)
Разрешение: | → исправлено |
---|---|
Статус: | новый → закрытый |
Службы не запускаются PostgreSQL, 3CXPhoneStstemMC01.service
На данный момент я исправил эту проблему. Для всех будущих людей, столкнувшихся с такой же проблемой или интересующихся, вот мои краткие шаги по устранению неполадок:
Это сервер Debian, размещенный в частном порядке.
Первоначально весь сервер не отвечал, поэтому я выполнил на нем полную перезагрузку.
Как только я смог получить доступ к консоли, я сделал следующее:
systemctl start 3CXPhoneServerMC01.service
Сбой из-за ошибки «зависимости». Он сказал мне запустить другую команду для просмотра журналов:
Journalctl -xe
Это показало, что [электронная почта защищена] не запускается.
Я сосредоточился на этой службе, так как подумал, что это должно означать, что системная база данных не запускается.
После долгого поиска и устранения неполадок/гугления и исследований я обнаружил следующее:
Статус Systemctl [электронная почта защищена]
Эта команда показала мне, что существует проблема в языковом/локальном пакете:
10 января 08:29:09 ag3cx01 [email protected][2125]: 2023-01-10 08:29:09. 319 +08 [2130] ЖУРНАЛ: недопустимое значение для параметра «lc_messages»: «en_AU.UTF-8»
10 января 08:29:09 ag3cx01 [email protected][2125]: 2023-01-10 08:29:09.319 +08 [2130] ЖУРНАЛ: недопустимое значение для параметра «lc_monetary»: «en_AU.UTF-8»
10 января 08:29:09 ag3cx01 [email protected][2125]: 2023-01-10 08:29:09.319 +08 [2130] ЖУРНАЛ: недопустимое значение для параметра «lc_numeric»: «en_AU.UTF-8»
10 янв 08:29:09ag3cx01 [электронная почта защищена][2125]: 2023-01-10 08:29:09.319 +08 [2130] ЖУРНАЛ: недопустимое значение параметра «lc_time»: «en_AU.UTF-8»
10 января 08:29:09 ag3cx01 [email protected][2125]: 2023-01-10 08:29:09.319 +08 [2130] FATAL: файл конфигурации «/etc/postgresql/11/main/postgresql.conf» содержит ошибки
10 января 08: 29:09 ag3cx01 [электронная почта защищена][2125]: pg_ctl: не удалось запустить сервер
Еще погуглил Я смог установить пакет локали:
Sudo locale-gen en_AU.utf8
Повторно проверил статус и обнаружил новую ошибку:
10 января 08:47:06 ag3cx01 systemd[1]: Starting PostgreSQL Cluster 11-main. ..
10 января 08:47:06 ag3cx01 [email protected][548]: Ошибка: /usr/lib/postgresql/11/bin/pg_ctl /usr/lib/postgresql/11/bin/pg_ctl start -D /var/lib/postgresql/11/main -l /var/ log/postgresql/postg
resql-11-main.log -s -o -c config_file=»/etc/postgresql/11/main/postgresql.conf» завершен со статусом 1:
10 января 08:47:06 ag3cx01 [email protected][548]: 2023-01-10 08:47:06.268 +08 [553] FATAL: каталог данных «/var/lib/postgresql/11/main» имеет недопустимые разрешения
10 января 08:47:06 ag3cx01 [email protected][548]: 2023-01-10 08:47:06.268 +08 [553] DETAIL: Разрешения должны быть u=rwx (0700) или u=rwx,g =rx (0750).
10 января 08:47:06 ag3cx01 [email protected][548]: pg_ctl: не удалось запустить сервер
10 января 08:47:06 ag3cx01 systemd[1]: [электронная почта защищена]: невозможно открыть файл PID /run/postgresql/11-main.pid (пока?) после запуска: нет такого файла или каталога
, 10 января, 08:47:06 ag3cx01 systemd[1]: [электронная почта защищена]: ошибка с результатом «протокол».