Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Anchor
pool_and_memory_status
pool_and_memory_status

Каждое приложение биллинга инициализирует пул соединений к базе данных. Необходимость пула вызвана многопоточностью приложений, т.к. в один момент времени соединение с базой данных может потребоваться разным потокам. Пул предотвращает необходимость постоянного создания TCP соединений с MySQL, экономя ресурсы как клиентского приложения, так и MySQL-сервера.

В конфигурации приложения должна быть определена как минимум одна главная (мастер) база. Эта база постоянно актуальна и может выполнять как запросы обновления, так и выборок. В *.properteis properties конфигурации приложения биллинга определены хост, порт MySQL, имя базы данных и учётные данные для MySQL, например так:

Code Block
languagejava
linenumbersfalse
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://192.168.184.245/bgbilling?useUnicode=true&characterEncoding=UTF-8&allowUrlInLocalInfile=true&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&elideSetAutoCommits=true&useCursorFetch=true&queryTimeoutKillsConnection=true
db.user=bill
db.pswd=bgbilling
db.maxIdle=10
db.maxActive=50

Параметр db.maxIdle определяет максимально число простаивающих в данный момент соединений с базой данных; простаивающие соединения, выходящие за данное количество, закрываются. При большом одновременном количестве запросов к приложению биллинга число активных соединений растёт, по мере надобности устанавливаются новые соединения с MySQL, добавляясь в пул. При достижении активного количества соединений db.maxActive создание соединений прекращается, потоки ожидают освобождения уже занятых соединений.

Каждое приложение биллинга способно возвращать свой статус, вызовом *_status.* скрипта (server_status.sh, radius_status.sh). Сообщение о статусе приложения обязательно содержит время старта приложения и время работы, информацию по соединениям с базой данных и используемой памяти. Рассмотрим как пример вывод server_status.sh:

...

Затем - использование ОЗУ. Параметр max определяет максимальный объем памяти, которую Java-машина может получить у операционной системы; total - сколько реально отобрано Java-машиной памяти в настоящий момент; free - сколько из этой реально выделенной памяти свободно.

...