一、使用SQL Server内置工具监控
SELECT total_physical_memory_kb/1024 AS Total_Memory_MB, available_physical_memory_kb/1024 AS Available_Memory_MB, total_virtual_memory_kb/1024 AS Total_Virtual_Memory_MB, available_virtual_memory_kb/1024 AS Available_Virtual_Memory_MB 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;SELECT @@CPU_BUSY AS CPU_Busy_Time_ms, @@IDLE AS CPU_Idle_Time_ms;二、利用CentOS系统自带工具监控
top -p $(pgrep -f mssql)过滤出SQL Server进程,查看其CPU、内存使用情况;htop提供更直观的交互界面,支持排序和过滤。vmstat 1每秒刷新一次,可监控系统整体资源瓶颈(如CPU idle值低表示CPU繁忙)。iostat -x 1显示各磁盘的读写速率、I/O等待时间等指标,帮助判断磁盘是否成为性能瓶颈。free -m以MB为单位显示已用/空闲内存,结合-/+ buffers/cache行可了解实际可用内存。三、采用第三方监控解决方案
prometheus-mssql-exporter采集SQL Server性能指标(如QPS、TPS、缓存命中率);check_sqlserver插件监控SQL Server状态(如连接数、查询响应时间、死锁数量)。配置Nagios核心后,可设置告警阈值(如连接数超过100触发邮件报警)。四、SQL Server特定监控命令
sqlcmd -S localhost -U sa -P your_password -Q "SELECT @@SERVERNAME AS ServerName, @@VERSION AS Version, SERVERPROPERTY('ProductLevel') AS ProductLevel;"可获取服务器名称、版本和补丁级别;sqlcmd -S localhost -U sa -P your_password -Q "EXEC sp_who2;"可查看当前活动连接。DBCC SQLPERF(LOGSPACE)可查询所有数据库日志文件的大小和使用百分比,帮助判断日志空间是否充足。