Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Out of shared memory / 23 сообщений из 23, страница 1 из 1
17.09.2008, 15:52
    #35544723
Air777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
Связка PostreSQL 8.3.3 + 1C 8.1.12

Залил тестовую базу, запустил 4 сессии с имитацией интенсивной работы в базе (перепроводка документов с интевалом 1сек в каждой сессии)

Производительность просто потрясающая !!!

НО! Проработала эта красота не долго уже почти через 8 часов сервер уходит в длительную задумчивость на элементарные действия типа просморта журнала или простенького запроса.

Вываливает сообщение:

Ошибка СУБД:
ERROR:Out of shared memory
HINT: You might need to increase max_locks_per_trasaction

Помогите разобратся!

Приложены 2 конфига на которых тестилась база, проблемма сохраняется на обоих.
...
Рейтинг: 0 / 0
17.09.2008, 15:53
    #35544726
Air777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
...
Рейтинг: 0 / 0
18.09.2008, 14:12
    #35546557
ss25
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
promt.ru
Вы, возможно, должны увеличить max_locks_per_trasaction
...
Рейтинг: 0 / 0
18.09.2008, 14:20
    #35546585
Air777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
естественно увеличил эффекта 0. База всеравно уходит в глубокий ступор
...
Рейтинг: 0 / 0
19.09.2008, 00:06
    #35547760
Konstantin~
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
ОК, у вас в текущем конфиге стоит max_locks_per_trasaction=150

Сколько таблиц в базе?
Что показывает:select * from pg_locks;
...
Рейтинг: 0 / 0
19.09.2008, 10:07
    #35548135
Air777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
max_locks_per_trasaction=250
...
Рейтинг: 0 / 0
19.09.2008, 14:28
    #35549074
tkopets
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
за одну транзакцию 250 locks?????
Че вы там делаете в етих транзакциях?
...
Рейтинг: 0 / 0
19.09.2008, 14:40
    #35549108
tkopets
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
max_connections = 100 - у вас 100 одновременных конектов? (может 10-20 хватит ???)
work_mem = 10MB (max_connections*work_mem = 1GB памяти только под work_mem, думаю 2-5 МБ будет достаточно)

random_page_cost = 1.5 (Ваша дисковая подсистема стоит $10 000??? я б поставил ето значение между 3 и 4).
...
Рейтинг: 0 / 0
19.09.2008, 15:01
    #35549180
Air777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
tkopetsза одну транзакцию 250 locks?????
Че вы там делаете в етих транзакциях?

При меньших значениях база вообще не дышит

random_page_cost = 1.5
устновлено по рекомендациям Estersoft
...
Рейтинг: 0 / 0
19.09.2008, 22:34
    #35549991
Konstantin~
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
tkopets в принципе может быть столько локов, как правило системные операции которые затрагивают все таблицы в базе, например pg_dump. Хз сколько у автора таблиц и что там с ними делает 1С.


Air777
ошибка корторую вы приводите возникает когда одна тр. пытается открыть слишком много блокировок. Для начала я бы посмотрел что вообще происходит с блокировками в тот момент когда у вас база начинает тормозить. Запрос как посмотреть я дал выше
...
Рейтинг: 0 / 0
20.09.2008, 00:34
    #35550047
Степан H.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
Поставьте Postgre на более длительный сбор статистики , например (SNMP+CACTI), а дальше смотрите что растет а что падает...

... и еще, возможно, имеет смысл посмотреть в сторону железа, иногда из-за битой RAM и не такое увидишь.
...
Рейтинг: 0 / 0
20.09.2008, 11:30
    #35550186
tkopets
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
Air777random_page_cost = 1.5
устновлено по рекомендациям Estersoft
Если Etersoft знает, какое у Вас железо, то в принципе значение 1.5 *теоретически* может быть уместно, но в этом я очень сомневаюсь.
...
Рейтинг: 0 / 0
23.09.2008, 08:39
    #35553386
Corochoone
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
Кое-что насчёт локов правда из опыта общения с Informix.
В Informix например при SELECT DISTINCT каждая строка, выдаваемая таким запросом упортребляет ровно один lock :)
Помню как долго искал в своё время почему даже при 50 000 локов у меня не отрабатывали большие запросы с DISTINCT
Очень может быть, что и здесь тоже самое! :)

А если хотите знать точно, то помоему был дан разумный совет - собирайте статистику что падает что поднимается с течением времени.
...
Рейтинг: 0 / 0
24.09.2008, 15:36
    #35557214
Air777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
Пляски с бубном вокруг настроек результата не дают, всеравно иногда при выполнении проведения система уходит в ступор и выдает сабж. Подозреваю что проблемма всетаки с постргии (может он делает какоето обслуживание?)ибо иногда при запуске к нему долго даже консолью не приконеектится! Выдает: Error connecting to tye server FATAL: the database system is starting up. При этом в системе плодятся сервисы с именем postgres усиленно закачивают чтото в память, процессор используют на 1-2% такое состояние может длится несколько минут потом по необъяснимым причинам все возвращается на круги своя и база начинает ворочатся. Подскажите как проконтролирвать что происходит и как предотвратить такие тормоза.
...
Рейтинг: 0 / 0
24.09.2008, 15:41
    #35557235
Air777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
select * from pg_locks;

выдает оочень много строк вида:
locktype text database oid relation oid .......
relation 23530 1188991 3/466 2560 AccessExclusiveLock
......

Как это расшифровать?
...
Рейтинг: 0 / 0
24.09.2008, 17:08
    #35557590
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
А постгрес на какой операционке крутится?
Диски какие?
...
Рейтинг: 0 / 0
24.09.2008, 17:12
    #35557608
Air777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
win2K3 server
диски SCSI
последний раз тупо помогла перезагрузка всего сервера все заработало моментально. Мне уже страшно от таких непоняток
...
Рейтинг: 0 / 0
24.09.2008, 18:31
    #35557905
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
Ну я бы для начала постгрес поставил на какой нибудь линукс для проверки.
Помнится лет так N назад M$ испохабила malloc/free для повышения быстродействия своей системы.
Все нормальные прогеры думают, что по free память возвращается(но только не в M$).
А так как для Postgres родной ситемой все-таки *х является, и разрабатывался он на нормальной
системе без всяких заморочек со стороны POSIX API - может где и кушает память?
А потом shared memory в Вин вроде как чарез sawpfile?
Swap не растет?
...
Рейтинг: 0 / 0
24.09.2008, 21:16
    #35558139
123qweasdzxc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
Сколько процессов postgres одновременно висит? это число коннектов, на самом деле.
Какие запросы в pg_stat_actvity?

Дело не в ПГ скорее всего, а в дибильной интеграции его с 1С - эти придурки даже как следует не переделали все запросы с TSQL при переходе с MSSQL.
...
Рейтинг: 0 / 0
24.09.2008, 21:19
    #35558145
123qweasdzxc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
И эта - конфиг у вас ваще дефалтовый:) Так нельзя.

Хотя бы shared увеличить. Посмотреть еще не грузит ли ПГ диск - мб не хватает work_mem
и юзаются темповые файлы.
...
Рейтинг: 0 / 0
25.09.2008, 23:31
    #35560932
Konstantin~
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
ну, с select * from pg_locks я погаречился, но вот даю запрос так сказать "с человеческим лицом", т.е. который выдает информацию в более или менее читаемой форме:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT s.datname as "database", pg_class.relname as "table_name", l.transaction, l.mode as "lock_type",
                    l.granted, s.usename, substr(s.current_query, 1 , 30 ) as "query_status",
                    s.query_start, age(now(),s.query_start) as "query_age", 
                    s.procpid as "process_id" 
          FROM pg_stat_activity s ,pg_locks l
           LEFT OUTER JOIN  pg_class ON (l.relation = pg_class.oid)  
           WHERE l.pid=s.procpid ORDER BY query_start;
(не трудно догадаться что запрос дает инфу по всем запросам которые вешют блокировки на какие-либо таблицы. запрос можно дополнить и/или изменить по надобности если знать что и как устроено в pg_catalog)

Судя по описанной ситуации когда не хватает памяти для блокировок и растет количество процессов это похоже на фирменную особенность 1С. Грубо говоря прога делает кучу запросов которые требуют AccessExclusiveLock ( т.е. "я один ларису ивановну хочу, остальные в очередь") естественно образуется очередь из запросов которая может расти если какой-либо из таких запросов требует значительного времени на исполнение.

Вам я думаю надо сначала четко понять что происходит с точки зрения базы, а потом подергать специалистов по 1С когда у вас на руках будет больше данных. Перевод базы на линукс,солярис,*бсд,етц тут я думаю поможет мало
...
Рейтинг: 0 / 0
29.09.2008, 11:15
    #35564702
Air777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
Проблемма пргрессирует :(
Поставил постгри на другой более слабый сервер с дефолтными настройками от 1С все зарботало более или менее стабильно но всеравно валется 1С иногда 2-3 иногда 3-5 раз в сутки с ошибкой от постгри:

2008-09-29 00:34:54 MSD ERROR: cache lookup failed for relation 871670
2008-09-29 00:34:54 MSD STATEMENT: SELECT 1::INT8 FROM PG_CLASS WHERE pg_catalog.pg_table_is_visible(OID) AND RELKIND='i' AND RELNAME='tmpind4' LIMIT 1
2008-09-29 00:34:54 MSD NOTICE: there is no transaction in progress
2008-09-29 00:42:59 MSD NOTICE: CREATE TABLE will create implicit sequence "tt2186_f_1_seq" for serial column "tt2186.f_1"
2008-09-29 00:58:02 MSD ERROR: relation "tmpind4" already exists
2008-09-29 00:58:02 MSD STATEMENT: CREATE INDEX TmpInd4 ON tt11 (
_IDRRef)

также постоянно лезет в логе такое сообщение:
2008-09-29 04:54:10 MSD NOTICE: CREATE TABLE will create implicit sequence "tt701_f_1_seq" for serial column "tt701.f_1"
2008-09-29 07:35:33 MSD NOTICE: CREATE TABLE will create implicit sequence "tt2225_f_1_seq" for serial column "tt2225.f_1"
2008-09-29 08:15:52 MSD NOTICE: CREATE TABLE will create implicit sequence "tt2245_f_1_seq" for serial column "tt2245.f_1"
2008-09-29 08:17:31 MSD NOTICE: CREATE TABLE will create implicit sequence "tt732_f_1_seq" for serial column "tt732.f_1"
2008-09-29 08:53:33 MSD NOTICE: CREATE TABLE will create implicit sequence "tt2050_f_1_seq" for serial column "tt2050.f_1"
2008-09-29 08:53:58 MSD NOTICE: CREATE TABLE will create implicit sequence "tt767_f_1_seq" for serial column "tt767.f_1"

оно конечно не валит 1с но настораживает. Как боротся?
...
Рейтинг: 0 / 0
29.09.2008, 11:16
    #35564708
Air777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Out of shared memory
еще такое проскакивает:
2008-09-29 09:10:50 MSD WARNING: corrupted pgstat.stat file
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Out of shared memory / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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