由于 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() 方法来释放资源。