|
|
|
Погасить Пг после Х времени неактивности.
|
|||
|---|---|---|---|
|
#18+
Сейчас прорабатываю улучшение ситуации с тестированием кода на своем проекте. На текущий момент у нас тесты гоняются через SQLite, хотя боевая база у нас PostgreSQL. Нам это позволяет делать такой монстр как DBIX::Class (perl). Это все хорошо работает ровно до первой попытки написать что-то кроме банального CRUD'а. Когда начинаешь оптимизировать запросы начинаются разные WINDOW процедуры и т.д. Выносить такое дело в хранимки не получится по тем-же причинам (SQLite не поддерживает), да и в нашей компании религиозный запрет на логику в БД. Тесты сделаны по принципу "куча тестовых файлов, каждый из который поднимает некоторое тестовое окружение и начинает себя тестировать". Поэтому хочется уметь поднять Пг на старте тестирования и положить в конце. Проблема в том, что понятие конца не существует (исторически, кому интересно - посмотрите на prove, у кого остались вопросы - prove -j8 допустим.). Что хочется: Запускать СУБД перед тестами (UNIX_SOCKET онли и т.д. нагрузки там, понятно, не будет) и класть ее после окончания тестов. Проблема с последним. Реально текущие исследования не дали нормального ответа - как это сделать, кроме как по неактивности самого Пг. То есть если к нему нету коннектов более 5-10 секунд, то Пг должен самовыгрузиться и, желательно, прибрать за собой (удалить папку data), хотя и прибирать за собой не сильно надо (всегда можно обернуть в скрипт postmaster, который после него уберется). Вопрос: Как заставить Пг выключиться после Х времени неактивности (нету коннектов)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2016, 20:00 |
|
||
|
Погасить Пг после Х времени неактивности.
|
|||
|---|---|---|---|
|
#18+
Warstone, Недавно во все активные ветки был добавлен функционал, который опускает экземпляр, если удалить $PGDATA/postmaster.pid. Это отвечает на вопрос — как. Я не знаю как у вас настроено логгирование, но я бы включил логгирование всех коннектов+дисконнектов. Тогда можно проверять возраст файла с логами и, скажем, если он старше 15 минут — вырубать. Для надёжности явно писать в лог (RAISE WARNING), если есть долгие прогоны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2016, 22:08 |
|
||
|
Погасить Пг после Х времени неактивности.
|
|||
|---|---|---|---|
|
#18+
1. Непонятна сама задача зачем класть Postgress? Чем он мешает, когда крутится без подключений - жалко 0.1% производительности машины, которая и так простаивает? 2. Если все-таки очень хочется гасить Postgress, то тесты наверное чем-то запускаются и наверное это что-то знает, когда они закончились, и наверное там можно настроить еще одно задание? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2016, 10:04 |
|
||
|
Погасить Пг после Х времени неактивности.
|
|||
|---|---|---|---|
|
#18+
Локшин Марк1. Непонятна сама задача зачем класть Postgress? Чем он мешает, когда крутится без подключений - жалко 0.1% производительности машины, которая и так простаивает?У нас и так ЛА на деве меньше 4х не опускается... Где-то 10 серверников, порядка 50 инстансов различных игр. Сейчас это все в одной Пг базе сидит. (Проблема ЛА - не проблема, и не на стороне Пг, естественно). А если за собой не чистить, то будет больно. Хочется мобильности к тому-же.Локшин Марк2. Если все-таки очень хочется гасить Postgress, то тесты наверное чем-то запускаются и наверное это что-то знает, когда они закончились, и наверное там можно настроить еще одно задание?На этот вопрос ответ дан в первом посте. Считаем что это так карта легла что не получается без хаков. vyegorovЯ не знаю как у вас настроено логгирование, но я бы включил логгирование всех коннектов+дисконнектов.Как надо - так и настрою. Я-же буду постмастер поднимать. vyegorovТогда можно проверять возраст файла с логамиИнтересное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2016, 22:29 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=93&tid=1997305]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 354ms |

| 0 / 0 |
