Является ли пул соединений лучшим способом для запуска множества экземпляров приложений на одном сервере (с MySQL)? - PullRequest
0 голосов
/ 11 апреля 2011

Я хочу настроить сервер Tomcat в MySQL 5.1 (на Win Server 2008 x64), чтобы запустить большой проект на одной машине.У меня есть приложение gwt, и мне нужно запустить более 300 его экземпляров на одном сервере HP.

Каждый экземпляр использует отдельную базу данных MySQL (от db1 до db300), поэтому нужен отдельный пул соединений, этоявляется частью моей конфигурации пула соединений для db1 (аналогично другим dbs):

<Resource name="jdbc/mysql/db1" auth="Container" type="javax.sql.DataSource" initialSize="5" maxActive="100" maxIdle="20" maxWait="30000" removeAbandoned="true" removeAbandonedTimeout="5" validationQuery="select now();" .../>

Для 300 экземпляров число активных соединений будет 300 * 100 = 30000 активных соединений!

СейчасЯ хочу знать, возможно ли открыть такое огромное количество подключений к 300 базам данных MySQL на одном сервере.

Если нет, то каково решение и если да, то сколько ресурсов (ОЗУ и ЦП)будет использоваться?

Является ли пул соединений лучшим способом или есть другой способ?

Если пул соединений является лучшим выбором, то какой может быть лучший параметр для моего раздела ресурсов для создания моих пулов?

1 Ответ

0 голосов
/ 11 апреля 2011

Количество активных соединений будет только 30000, если каждый из 300 экземпляров должен использовать 100 одновременно.Если они простаивают, они будут использовать где-то между 1500 (от initialSize) и 6000 (от maxIdle) в зависимости от вашей конфигурации.Возможно, вы захотите уменьшить эти значения для обработки 300 экземпляров.Возможно, initialSize="2" maxActive="10" maxIdle="5" достаточно?

Если вы действительно ожидаете, что все экземпляры будут использовать такое количество подключений, тогда одного сервера, вероятно, недостаточно.Почти невозможно сказать, сколько ОЗУ или ЦП вам понадобится, это действительно зависит от того, что вы делаете и какой активности ожидаете.

...