由于 Oracle NOSql 的更多打开连接,高 CPU 利用率问题
High CPU Utilisation Issue due to more Open connections of Oracle NOSql
当 运行 使用 OracleNosql 的 NodeJs 应用程序时,发现多个连接正在打开并且在执行后没有关闭。当存在高吞吐量或请求超时问题时,连接也会大量打开并且不会关闭。谁能建议如何控制 nodejs 应用程序和 oraclenosql 之间的巨大开放连接。
https://oracle.github.io/nosql-node-sdk/global.html#Config 在此文档中也找不到任何最大连接池大小 属性 配置。
编辑 1:
public noSQLClient: NoSQLClient = new NoSQLClient({
serviceType: ServiceType.KVSTORE,
endpoint: env.DB_HOST
});
您可以按如下方式添加httpOpt:
public noSQLClient: NoSQLClient = new NoSQLClient({
serviceType: ServiceType.KVSTORE,
endpoint: env.DB_HOST,
httpOpt: {
keepAlive: true,
maxSockets: 128,
maxFreeSockets: 64,
.....
}
});
以上具体数字仅供参考。
您可以做的另一件事是将 keepAlive 设置为 false(当前默认设置为 true):
public noSQLClient: NoSQLClient = new NoSQLClient({
serviceType: ServiceType.KVSTORE,
endpoint: env.DB_HOST,
httpOpt: {
keepAlive: false
}
});
这将确保没有空闲套接字处于打开状态,但可能会影响性能。
确保您的应用程序共享一个 NoSQLClient
句柄,而不是在同一进程中创建多个句柄。当你完成它时,一定要调用它的 close()
方法来释放资源。
当 运行 使用 OracleNosql 的 NodeJs 应用程序时,发现多个连接正在打开并且在执行后没有关闭。当存在高吞吐量或请求超时问题时,连接也会大量打开并且不会关闭。谁能建议如何控制 nodejs 应用程序和 oraclenosql 之间的巨大开放连接。
https://oracle.github.io/nosql-node-sdk/global.html#Config 在此文档中也找不到任何最大连接池大小 属性 配置。
编辑 1:
public noSQLClient: NoSQLClient = new NoSQLClient({
serviceType: ServiceType.KVSTORE,
endpoint: env.DB_HOST
});
您可以按如下方式添加httpOpt:
public noSQLClient: NoSQLClient = new NoSQLClient({
serviceType: ServiceType.KVSTORE,
endpoint: env.DB_HOST,
httpOpt: {
keepAlive: true,
maxSockets: 128,
maxFreeSockets: 64,
.....
}
});
以上具体数字仅供参考。
您可以做的另一件事是将 keepAlive 设置为 false(当前默认设置为 true):
public noSQLClient: NoSQLClient = new NoSQLClient({
serviceType: ServiceType.KVSTORE,
endpoint: env.DB_HOST,
httpOpt: {
keepAlive: false
}
});
这将确保没有空闲套接字处于打开状态,但可能会影响性能。
确保您的应用程序共享一个 NoSQLClient
句柄,而不是在同一进程中创建多个句柄。当你完成它时,一定要调用它的 close()
方法来释放资源。