Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Тормоза на Win2008 R2 x64 / 14 сообщений из 14, страница 1 из 1
12.02.2014, 17:07:45
    #38558818
Nitro_Junkie
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза на Win2008 R2 x64
У одного клиента в отличии от большинства остальных стоит не CentOS, а Win2008 R2 x64. Причем именно у него достаточно простая логика и относительно не сложные запросы. Так вот раз в месяц три процесса начинают серьезно тормозить сервер, из-за жесткого насилования веника на чтение. При этом как правило повисают надолго именно на командах типа DELETE FROM t_число где t_число временная таблица. В логах ничего особенного нет. Конфигурация достаточно стандартная:

Версия:
PostgreSQL 9.3.1, compiled by Visual C++ build 1600, 64-bit

Памяти всего 8Gb

Из дефолт настроек изменены только:
shared_buffers = 2Gb
temp_buffers = 256Mb
work_mem = 32Mb

При этом свободной оперативки минимум 2-3 Gb. Все три процесса насилуют следующие файлы:
C:\Program Files\PostgreSQL\9.3\data\base\16396\t19_347016 (у каждого свои циферки)

С чем все это может быть связано, в смысле как диагностировать и лечить такие явления природы.
...
Рейтинг: 0 / 0
13.02.2014, 13:47:11
    #38559791
Hawkmoon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза на Win2008 R2 x64
Проверено (на 8.4) что чем больше shared_buffers под виндой , тем хуже.
Оптимум в районе где-то 256MB-512MB
...
Рейтинг: 0 / 0
13.02.2014, 13:48:58
    #38559794
Hawkmoon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза на Win2008 R2 x64
Возможно, это как-то связано с переносом shmget под винду, не знаю уж...
...
Рейтинг: 0 / 0
18.02.2014, 11:17:49
    #38564128
Nitro_Junkie
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза на Win2008 R2 x64
HawkmoonПроверено (на 8.4) что чем больше shared_buffers под виндой , тем хуже.
Оптимум в районе где-то 256MB-512MB

Что интересно через пару часов все приходит в норму. Но вообще да, похоже есть какой-то косяк с shared_buffers под виндой. Жаль пока не так много где проверить, везде CentOS в основном ставим :(
...
Рейтинг: 0 / 0
18.02.2014, 15:37:47
    #38564737
Тормоза на Win2008 R2 x64
Временные таблицы, да? Надо бы изучить вопрос как в 9.3 обстоят дела с взаимодействием автовакуума с ними.
Раньше он их просто игнорировал, возможно в 9.3 это уже не так и массовые удаления вызывают потребность в резком
пересчете статистики итп?
...
Рейтинг: 0 / 0
19.02.2014, 05:47:44
    #38565398
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза на Win2008 R2 x64
НезалогинившийсяВременные таблицы, да? Надо бы изучить вопрос как в 9.3 обстоят дела с взаимодействием автовакуума с ними.
Раньше он их просто игнорировал, возможно в 9.3 это уже не так и массовые удаления вызывают потребность в резком
пересчете статистики итп?

в 9.3 временные таблицы так и игнорируются автовакумом... и будут игнорироваться и дальше (если вдруг временные таблицы с 0 не перепишут).... там архитектурные причины почему автовакум с ними работать не может
...
Рейтинг: 0 / 0
25.02.2014, 15:35:56
    #38571761
Nitro_Junkie
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза на Win2008 R2 x64
Разобрались. Проблема похоже во временных таблицах, которые pool'ся и при переиспользовании делается DELETE FROM, заполнение данных и ANALYZE, но не делается VACUUM. В результате через некоторое время они дорастают до огромных размеров на диске (правда непонятно почему через некоторое время работа восстанавливалась, видимо все же по какому то событию VACUUM все же trigger'ся).

Что касается винды это похоже просто совпадение.
...
Рейтинг: 0 / 0
25.02.2014, 16:53:21
    #38571941
Жоао!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза на Win2008 R2 x64
Nitro_Junkie,

У вас безусловный DELETE FROM времнных таблиц? Тогда по всем параметрам дешевле их TRUNCATE.
...
Рейтинг: 0 / 0
25.02.2014, 22:45:02
    #38572292
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза на Win2008 R2 x64
Nitro_Junkie(правда непонятно почему через некоторое время работа восстанавливалась, видимо все же по какому то событию VACUUM все же trigger'ся).

ни по какому.... просто в какой то момент коннект к базе отваливается.... и вместе с коннектом умирают его временные таблицы
...
Рейтинг: 0 / 0
26.02.2014, 23:59:33
    #38573624
Nitro_Junkie
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза на Win2008 R2 x64
Жоао!Nitro_Junkie,

У вас безусловный DELETE FROM времнных таблиц? Тогда по всем параметрам дешевле их TRUNCATE.

TRUNCATE нельзя использовать в READ ONLY режиме. А его выключать ради временных таблиц не хочется.
...
Рейтинг: 0 / 0
27.02.2014, 00:02:33
    #38573627
Nitro_Junkie
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза на Win2008 R2 x64
Maxim Boguk,

Там то, как раз не должно быть момента отваливания connection'а, так что дело в чем то другом.
...
Рейтинг: 0 / 0
27.02.2014, 04:43:36
    #38573682
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза на Win2008 R2 x64
Nitro_JunkieMaxim Boguk,

Там то, как раз не должно быть момента отваливания connection'а, так что дело в чем то другом.

Что значить не должно быть? даже при использованиии пулера коннекто у коннекта к базе есть TTL свой (максимальный возраст коннекта к базе после чего он принудительно закрывается)
что для pgbouncer
что для pgpool
что для любых java connnectoon pooler (Типа c3p0)
что для любых известных мне велосипедов
...
Рейтинг: 0 / 0
27.02.2014, 17:04:22
    #38574480
Nitro_Junkie
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза на Win2008 R2 x64
Maxim Boguk,

Ну в данном случае, речь идет о собственном пулинге, и если в спецификации jdbc, в стандартном драйвере, и у самой СУБД TTL нет по умолчанию, то дело все же не в этом :)
...
Рейтинг: 0 / 0
28.02.2014, 00:59:12
    #38574848
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза на Win2008 R2 x64
Nitro_JunkieMaxim Boguk,

Ну в данном случае, речь идет о собственном пулинге, и если в спецификации jdbc, в стандартном драйвере, и у самой СУБД TTL нет по умолчанию, то дело все же не в этом :)

ttl есть всегда... в самом плохом случае ttl наступает когда процессы базы начинает операционка отстреливать по OOM
вечноживые коннекты к базе это очень плохо... 1-2-12 часов это разумно... больше нет...


и еще раз скажу что место во временных таблицах можно почистить только через:
1)disconnect процесса базы
2)truncate Этих таблиц
3)drop эти таблиц...

autovacuum с ними никогда не работал и работать не будет/может так как они существуют только в приватной памяти конкретного процесса базы и к их данным никто кроме этого процесса базы добраться не может.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Тормоза на Win2008 R2 x64 / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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