Nonstop ODBC: Как соединения (серверы ODBC) назначены CPU?
-
30-09-2019 - |
Вопрос
У нас есть пул ODBC, работающий на нестапорциональном сервере. Бассейн подключен к SQL / MX.
Этот бассейн используется несколькими внешними приложениями Java, каждый из которых имеет пул JDBC, подключенный к пулу ODBC (например, 14 соединений на применение).
Со временем (после нескольких рециркулирующих приложений) мы видим дисбаланс между процессорами - у некоторых есть 8 процессов ODBC, некоторые только 5., которые приводят к дисбалансу времени процессора.
До этого момента мы предположили, что ЦП назначается процессу ODBC в Round-Robin Fashion. Это будет поддерживать количество процессов ODBC более или менее одинаково распределена. Это не так, хотя.
Есть ли какие-либо информации о том, как Bool ODBC решил, какой ЦП выбирал для каждого нового выделенного процесса? Это смотрит на загрузку процессора? Доступная память? Что-то другое?
К сожалению, даже люди HP (доступны для нас, то есть) не могли ответить на эти вопросы с уверенностью. :-(
Решение
И на самом деле подключения назначаются процессоры в круглой робинской моде. Но если один из потребителей (со своим собственным бассейном) возобновляется по какой-либо причине, соединения будут выпущены на процессорах, где они были выделены (очевидно), но новые будут выделены на следующем процессоре в соответствии с алгоритмом Round-Robin Отказ Таким образом, некоторые процессоры станут менее занятыми, а некоторые. Таким образом дисбаланс.