首页 > 解决方案 > 优化 Docker 容器中的 SQL Server 性能

问题描述

我们遇到了dockerized SQL server 的启动非常慢(而且性能通常很差)的问题。有时需要 5 分钟以上才能启动一个新容器。

在 CI 构建期间,我们在 docker 中使用 SQL Server 进行集成测试,并且一切都在 Kubernetes 集群中运行。

我认为根本原因是 SQL 服务器检测到“裸机”CPU 并且不尊重它在资源受限的容器中运行的事实:

2020-09-22 13:41:39.90 Server      SQL Server detected 12 sockets with 2 cores per socket and 2 logical processors per socket, 24 total logical processors; using 24 logical processors based on SQL Server licensing. This is an informational message; no user action is required

然而,这是不正确的。我们只允许一小部分 CPU(目前是 2.5 CPU)。我读到逻辑处理器的数量对工作线程的数量有影响

我没有找到任何参数如何更改工作线程的数量或专用于 SQL 服务器的逻辑处理器的数量。我找到的唯一参数是内存(MSSQL_MEMORY_LIMIT_MB)。我想为 CPU 做类似的事情。

有谁知道如何在资源有限的 Docker 中运行 SQL 服务器?假设最大 2 Gi 的 RAM 和 2 个 CPU(我们需要扩展我们的构建)?甚至可能吗?

感谢您的任何想法!

标签: sql-serverperformancedocker

解决方案


推荐阅读