Ashwin Asked: 2020-09-24 01:08:39 +0800 CST2020-09-24 01:08:39 +0800 CST 2020-09-24 01:08:39 +0800 CST CPU 内核数对 Postgres 中的更新操作有什么影响? 772 我有批量更新操作被发送到 PostgreSQL 服务器以执行。每个操作(批处理)都将更新同一个表中的行,但可以确保它们将更新不同的行。 鉴于此,是否可以安全地假设通过将 CPU 内核数量增加一倍可以抵消 2 倍的吞吐量增长? postgresql update 1 个回答 Voted Best Answer a_horse_with_no_name 2020-09-24T01:26:23+08:002020-09-24T01:26:23+08:00 只有在使用更多会话/连接时才能使用额外的 CPU。 如果您增加会话数,那么更多的 CPU 应该会显示吞吐量的增加。但是,吞吐量不仅受 CPU 限制,还受 I/O 系统容量的限制。如果当前工作负载受 I/O 限制(即受磁盘性能限制),那么添加更多会话(和更多 CPU)不会增加吞吐量(可能会使情况变得更糟)。 如果您的磁盘没有被当前工作负载饱和,那么添加 CPU 并使用更多会话可能会提高吞吐量。但这通常不是线性的,即 CPU 和会话数量加倍可能只会让您的吞吐量增加 1.5 倍。通常,这条曲线会变平。如果您将并发性从 5 个会话增加到 10 个会话,这可能会使您的吞吐量翻倍(再次:假设您不受 I/O 限制)。但是从 100 到 200,可能不会使吞吐量翻倍。
只有在使用更多会话/连接时才能使用额外的 CPU。
如果您增加会话数,那么更多的 CPU 应该会显示吞吐量的增加。但是,吞吐量不仅受 CPU 限制,还受 I/O 系统容量的限制。如果当前工作负载受 I/O 限制(即受磁盘性能限制),那么添加更多会话(和更多 CPU)不会增加吞吐量(可能会使情况变得更糟)。
如果您的磁盘没有被当前工作负载饱和,那么添加 CPU 并使用更多会话可能会提高吞吐量。但这通常不是线性的,即 CPU 和会话数量加倍可能只会让您的吞吐量增加 1.5 倍。通常,这条曲线会变平。如果您将并发性从 5 个会话增加到 10 个会话,这可能会使您的吞吐量翻倍(再次:假设您不受 I/O 限制)。但是从 100 到 200,可能不会使吞吐量翻倍。