NonStop ODBC: как соединения (серверы ODBC) назначаются процессорам?

У нас есть пул ODBC, работающий на сервере NonStop. Пул подключен к SQL/MX.

Этот пул используется несколькими внешними приложениями Java, каждое из которых имеет пул JDBC, подключенный к пулу ODBC (например, 14 соединений на приложение).

Со временем (после нескольких перезапусков приложений) мы видим дисбаланс между процессорами — у некоторых запущено 8 процессов ODBC, у некоторых только 5. Это также приводит к дисбалансу процессорного времени.

До этого момента мы предполагали, что ЦП назначается процессу ODBC в циклическом режиме. Это позволило бы более или менее равномерно распределить количество процессов ODBC. Однако это не так.

Есть ли какая-либо информация о том, как пул ODBC решил, какой ЦП выбрать для каждого нового выделенного процесса? Он смотрит на загрузку процессора? Доступная память? Что-то другое?

К сожалению, даже сотрудники HP (то есть доступные нам) не смогли с уверенностью ответить на эти вопросы. :-(


person Vladimir Dyuzhev    schedule 18.05.2010    source источник


Ответы (1)


И на самом деле соединения назначаются процессорам в циклическом режиме. Но если один из потребителей (со своим пулом) по какой-либо причине будет перезапущен, то соединения будут освобождены на тех процессорах, где они были размещены (очевидно), но новые будут распределены на следующем процессоре по циклическому алгоритму. . Таким образом, некоторые процессоры станут менее загруженными, а некоторые — более. Таким образом дисбаланс.

person Vladimir Dyuzhev    schedule 22.05.2010