总体判断 在 CentOS 上,SQL Server 的资源占用没有固定阈值,主要取决于硬件规格、实例配置与工作负载。在事务密集、大查询/导入导出、或启用 Always On 等高可用特性时,CPU、内存、磁盘 I/O、网络都可能显著上升;而在轻负载或合理配置下,占用可保持平稳。换言之,是否“高”取决于你的具体场景与配置,并非平台本身导致占用偏高。
快速自检 SQL Server 侧
SELECT
total_physical_memory_kb/1024 AS Total_Memory_MB,
available_physical_memory_kb/1024 AS Available_Memory_MB,
process_physical_memory_low,
process_virtual_memory_low
FROM sys.dm_os_sys_memory;
SELECT
d.name AS Database_Name,
SUM(a.total_pages)*8/1024 AS Memory_Usage_MB
FROM sys.dm_os_memory_clerks a
JOIN sys.databases d ON a.database_id = d.database_id
GROUP BY d.name
ORDER BY Memory_Usage_MB DESC;
DBCC SQLPERF(LOGSPACE);
EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 16384; RECONFIGURE;
max server memory 主要限制缓冲池,并不限制 SQL Server 的其他内存开销;设置过高可能影响同机其他服务,过低会限制性能。快速自检 CentOS 侧
top、htop、vmstat 1、free -h、iostat -x 1、nmonss -s、netstat -spmap -x $(pidof sqlservr)strace -p $(pidof sqlservr) -c(短时采样)tcpdump -ni any port 1433 -w sql.pcap常见导致占用高的原因与优化要点
free/top 观察缓冲池命中与压力信号。PAGEIOLATCH_XX/WRITELOG 等等待类型并据此优化查询与 I/O 路径。