Я работаю над приложением Rails с Postgres на Ubuntu. К сожалению, для меня это устаревшее приложение использует некоторые хранимые процедуры в тяжелом весе в db. Более того, db довольно большой (5 ГБ), и мой компьютер не особенно быстрый. Время от времени, если я передаю некоторые плохие параметры из моего кода в db, мой компьютер становится очень медленным до такой степени, что я не могу попасть на консоль и убить процесс postgres. Я предполагаю, что это связано с очень дорогостоящим db-запросом. Мое единственное решение - это жесткий сброс моего ноутбука. Поэтому мой вопрос: есть ли способ насильственно убить длинный вопрос? Или, возможно, есть ли способ ограничить процессор и RAM, которым db разрешено использовать, так что у меня все еще есть некоторые ресурсы, оставшиеся для запуска, и вручную перезапускать postgres?Как принудительно остановить длительный запрос postgres при большой нагрузке?
2
A
ответ
5
Вы можете установить максимальное время для заявления, чтобы взять с опцией statement_timeout
конфигурации:
ABORt любое заявление, которое занимает больше, чем указанное количество миллисекунд, начиная с момента, когда команда поступает на сервер из клиент. Если значение
log_min_error_statement
установлено равнымERROR
или ниже, то также будет зарегистрировано заявление о том, что истекло время ожидания. Значение нуля (по умолчанию) отключает это.
Вы можете установить эту опцию различными способами, например, в postgresql.conf
для всех, за один сеанс с помощью команды SET
, или даже в базе данных или на роль. Дополнительная информация о параметрах настройки находится в the documentation.
Смежные вопросы
- 1. настройка PostgreSQL производительность при большой нагрузке
- 2. Плохое качество ввода-вывода при большой нагрузке
- 3. Тайм-аут клиента WCF при большой нагрузке
- 4. JavaScript setTimeout() замедляется при большой нагрузке
- 5. Ошибка кэша при большой нагрузке в memcached
- 6. Tomcat терпит неудачу при большой нагрузке
- 7. Тайм-аут витой связи при большой нагрузке
- 8. Показатели кода состояния Nginx при большой нагрузке
- 9. Wcf NetNamedPipesBinding ответ медленный при большой нагрузке
- 10. Весеннее кэширование не работает при большой нагрузке?
- 11. Как принудительно удалить большой объект
- 12. Что может оправдать длительный запрос EXPLAIN по запросу (postgres)?
- 13. MySQL - Как оптимизировать длительный запрос
- 14. Как остановить длительный рабочий процесс WF4?
- 15. Как остановить длительный опрос в JavaScript?
- 16. Как улучшить производительность Neo4j 2.0 cypher/ExecutionResult при большой нагрузке?
- 17. Запросы, отмененные сервером при большой нагрузке, зависают на IIS
- 18. Служба, развернутая на Tomcat, сбой при большой нагрузке
- 19. Как принудительно остановить выполнение в Stata
- 20. Проверка утечки памяти в C/C++ при большой нагрузке
- 21. Каков правильный способ обновления приложения gae при большой нагрузке?
- 22. nodejs net socket начинает отбрасывать соединения при большой нагрузке
- 23. Ошибки подключения PHP/MYSQL при большой нагрузке через mysql.sock
- 24. MySQL и python-mysql (mysqldb) сбой при большой нагрузке
- 25. Ошибка ActiveState Perl в IIS при большой нагрузке
- 26. Java-процесс не выходит из SIGTERM при большой нагрузке
- 27. Apache Cassandra падает при большой нагрузке на чтение
- 28. Ошибка посредника WSO2ESB js при большой полезной нагрузке
- 29. Почему этот сегмент кода возвращает значение null при большой нагрузке?
- 30. Оптимизированный процесс приема пакетов данных при большой нагрузке на сеть
'pg_terminate_backend()': http://www.postgresql.org/docs/current/static/functions-admin.html#FUNCTIONS-ADMIN-SIGNAL-TABLE –