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

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

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

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

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

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

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

1 ответ

Решение

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

Другие вопросы по тегам