RSS Статьи блога Microsoft Teams
Подписаться
Общие лучшие практики для HikariCP с Azure Database for PostgreSQL
Пул соединений имеет решающее значение для производительности Azure Database for PostgreSQL, поскольку установление новых соединений требует больших ресурсов. HikariCP, популярный пул соединений Java, может столкнуться с проблемами при неправильной настройке, что приведет к исчерпанию, устаревшим соединениям или задержкам. Максимальный срок службы контролирует, как долго соединения используются повторно перед их закрытием; 30 минут являются распространенной и эффективной настройкой. Минимальное количество неактивных соединений в идеале должно соответствовать максимальному размеру пула, чтобы обеспечить немедленную доступность при всплесках трафика. Время ожидания неактивных соединений определяет, как долго неиспользуемые соединения остаются перед удалением; значение по умолчанию в 10 минут обеспечивает хороший баланс. Максимальный размер пула имеет решающее значение: слишком маленький вызывает тайм-ауты, а слишком большой перегружает базу данных. Консервативной отправной точкой для максимального размера пула является 10-20, с последующей корректировкой после нагрузочного тестирования. Включение TCP keepalive предотвращает устаревание соединений, вызванное сетевыми устройствами. Мониторинг активных и неактивных соединений, времени получения и исчерпания пула помогает определить правильный размер. Длительные запросы часто являются основной причиной исчерпания пула, поэтому необходимо исследовать производительность запросов. Приведен пример производственной конфигурации, сбалансированной по этим параметрам для Azure Database for PostgreSQL. Основная цель — здоровый баланс между отзывчивостью приложения и потреблением ресурсов базы данных, а не просто максимизация соединений. Соблюдение этих практик повышает масштабируемость, снижает задержки и повышает надежность приложений, подключающихся к Azure Database for PostgreSQL.