简短结论:在 Ubuntu 上运行 SQL Server,默认情况下“占用内存看起来很高”,但并不是“无脑吃满”,而是有默认行为。
下面具体说。
SQL Server(包括 Linux 版)会尽量缓存数据和执行计划到内存中,这是正常现象,目的是提升性能。
在 Ubuntu 上:
free -h 或 top 看,可能会发现 SQL Server 占了几 GB 甚至十几 GB✅ 这是设计行为,不是 bug
也就是说:
如果你不手动限制,它“能占多少占多少”
| 项目 | Windows | Ubuntu / Linux |
|---|---|---|
| 内存占用 | 类似 | 类似 |
| 默认行为 | 缓存为主 | 缓存为主 |
| OS 开销 | 高 | 低 |
| 总占用 | 略高 | 略低 |
✅ SQL Server 本身占用差不多,Ubuntu 系统更轻量
top
htop
free -h
SELECT
physical_memory_in_use_kb / 1024 AS used_mb,
total_server_memory_kb / 1024 AS total_mb
FROM sys.dm_os_process_memory;
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 4096; -- 4GB
RECONFIGURE;
⚠️ 不建议设太小,否则性能会明显下降
以下情况需要注意:
这时才需要考虑:
Ubuntu 上的 SQL Server 内存占用“看起来高”是正常的,默认会尽量用内存做缓存;只要系统不 swap、不 OOM,就不算问题。
如果你愿意,可以告诉我:
我可以帮你判断是否合理 / 是否需要调优。