【问题标题】:Oracle NUM_CPUS, NUM_CPU_SOCKETS and Connection PoolingOracle NUM_CPUS、NUM_CPU_SOCKETS 和连接池
【发布时间】:2021-04-23 17:01:37
【问题描述】:

我阅读了有关 Oracle 连接池大小的信息。官方文件说:

例如,假设服务器有 2 个 CPU,每个 CPU 有 18 个内核。 每个 CPU 内核有 2 个线程。基于 Oracle Real-Wold 性能 组指南,应用程序可以有 36 到 360 与数据库实例的连接。

我的 Oracle 服务器的 NUM_CPUS 是 16,NUM_CPU_CORES 是 8,但 NUM_CPU_SOCKETS 是 2。这意味着我们实际上有 2 个 CPU,但使用多线程它就像 16 个 CPU。

我不确定在连接公式中使用哪一个。可能是 16 岁,但我想在这里确定一下。

16cpu * 8cores = 最少 128 个连接?

或

2cpu * 8cores = 最少 16 个连接?

哪一个适用于我。 :/

提前致谢。

【问题讨论】:

    标签: oracle oracle11g connection-pooling


    【解决方案1】:

    你应该使用2 cpu * 8 cores = 16 minimum connections。

    documentation 中的这句话暗示该规则适用于物理 CPU 和内核:“连接数应基于 CPU 内核数,而不是 CPU 内核线程数。”您的 NUM_CPUS 值 16 必须是“逻辑”CPU,因为系统只有 2 个插槽。

    【讨论】:

    • 但文档说 NUM_CPUS:NUM_CPUS Oracle 指标表示可用的 CPU 或处理器的数量。所以我很困惑。他们没有说它是核心线程数,而是说CPU数。 ://
    • @LacOniC 我认为您指的是this dba-oracle.com article 文章。该页面似乎已有 20 年历史,那时处理器还没有内核,CPU 的每个定义都是物理 CPU。该网站包含一些有问题的信息,因此您应该尽可能忽略它。
    猜你喜欢
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多