У нас есть JAVA EE-приложение (портал цифровой библиотеки онлайн) с В спящем режиме 4.3, который соединяется с базой данных PostGres 9.2. После тестирования загрузки с загрузкой 175 параллельных пользователей, входящих в систему и получающих доступ к системе, загрузка ЦП сервера базы данных подходит к 100% и остается тот путь.
Аппаратные средства для сервера базы данных: 4 процессора Core Pentium 2 + GHz. 12 ГБ RAM Ubuntu размер пула соединения 200. Сервер приложений является Tomcat Apache 6.x работа других 4 процессоров Core Pentium 2 + GHz. 12 ГБ RAM машина Ubuntu.
Помогите! Должен зафиксировать это срочно.
Есть ли у вас администратор баз данных?
Может ли он ответить на вопросы о регулярном обслуживании базы данных, например, о частоте анализа таблиц, достаточном объеме памяти для базы данных?
Можете ли вы найти запросы, которые влияют на ЦП базы данных?
Существуют некоторые способы помочь Вам без расширения оборудования, такие как:
Я столкнулся с подобной проблемой. Причина была в том, что некоторые транзакции застревали и работали долгое время. Таким образом, загрузка процессора увеличилась до 100%. Следующая команда помогла определить соединения, работающие дольше всего:
SELECT max(now() - xact_start) FROM pg_stat_activity
WHERE state IN ('idle in transaction', 'active');
Эта команда показывает время с момента, когда соединение установлено. Это время не должно быть больше часа. Так что отключение соединения, которое работало долгое время или зависало в любой момент, помогло мне. Я следил за этим постом, чтобы отслеживать и решать свою проблему. Сообщение включает множество полезных команд для отслеживания этой ситуации.