Назад | Перейти на главную страницу

PostgreSQL 9.2 увеличивает загрузку ЦП до 100%

У нас есть приложение Java EE (портал электронной цифровой библиотеки) с Hibernate 4.3, которое подключается к базе данных PostGres 9.2. При нагрузочном тестировании с нагрузкой 175 одновременных пользователей, выполняющих вход в систему и получающих доступ к системе, загрузка ЦП сервера базы данных возрастает до 100% и остается прежней.

Оборудование для сервера базы данных: 4-ядерный процессор Pentium 2+ ГГц. 12 ГБ ОЗУ Ubuntu Размер пула соединений составляет 200. Сервер приложений - Apache Tomcat 6.x, работающий на другом процессоре Pentium 2+ ГГц с тактовой частотой 4 ядра. 12 ГБ ОЗУ для машины Ubuntu.

Пожалуйста помоги! Нужно срочно это исправить.

Я столкнулся с подобной проблемой. Причина была в том, что некоторые транзакции зависали и работали долгое время. Таким образом, загрузка процессора увеличилась до 100%. Следующая команда помогла выяснить, какие соединения работают дольше всего:

SELECT max(now() - xact_start) FROM pg_stat_activity
                           WHERE state IN ('idle in transaction', 'active');

Эта команда показывает время, с которого установлено соединение. Это время не должно быть больше часа. Так что отключение соединения, которое работало долгое время или зависало в любой момент, помогло мне. Я следил за этим постом, чтобы отслеживать и решать свою проблему. Почта включает множество полезных команд для отслеживания этой ситуации.

У вас есть администратор базы данных?

Сможет ли он ответить на вопросы о регулярном обслуживании базы данных, например, о частоте анализа таблиц, о достаточном объеме памяти для базы данных?

Можете ли вы найти запросы, которые влияют на процессор базы данных?

Существуют несколько способов помочь Вам без расширения аппаратного обеспечения, например:

  1. Адекватное управление памятью - это зависит от конфигурации / загрузки вашей базы данных
  2. Соответствующие индексы, чтобы избежать полного сканирования таблицы - вы должны исследовать запросы
  3. Регулярный анализ таблиц / индексов - администратор баз данных должен регулярно его настраивать
  4. Общая архитектура базы данных приложений - это индивидуальный подход