我们有一个运行在NonStop服务器上的ODBC池。该池已连接到SQL/MX。
这个池被一些外部Java应用程序使用,每个应用程序都有一个连接到ODBC池的JDBC池(例如,每个应用程序有14个连接)。
随着时间的推移(在几次应用程序回收之后),我们看到CPU之间的不平衡--一些有8个ODBC进程在运行,有些只有5个,这也导致CPU时间不平衡。
至此,我们假设以循环方式将一个CPU分配给ODBC进程。这将保持ODBC进程的数量或多或少地均匀分布。但事实并非如此。
有关于ODBC池如何决定为每个新分配的进程选择哪个CPU的信息吗?它是否查看CPU负载?可用内存?还有别的吗?
不幸的是,即使是惠普自己的人(也就是我们)也不能肯定地回答这些问题。:-(
发布于 2010-05-22 11:51:01
实际上,连接是以循环方式分配给CPU的。但是,如果其中一个使用者(具有自己的池)由于任何原因被重新启动,连接将在分配它们的CPU上释放(显然),但新的连接将根据轮询算法在下一个CPU上分配。因此,有些CPU会变得不那么繁忙,有些则会变得更多。因此不平衡。
https://stackoverflow.com/questions/2858722
复制相似问题