1. 使用SQL Server自带工具
SQL Server on Linux提供了多组原生工具,适合直接监控实例性能:
SELECT cntr_value FROM sys.dm_os_performance_counters WHERE object_name = 'SQLServer:Buffer Manager' AND counter_name = 'Buffer Cache Hit Ratio';
SELECT cntr_value FROM sys.dm_os_performance_counters WHERE object_name = 'SQLServer:Buffer Manager' AND counter_name IN ('Page Reads/sec', 'Page Writes/sec');
SELECT cntr_value FROM sys.dm_os_performance_counters WHERE object_name = 'SQLServer:Locks' AND instance_name = '_Total' AND counter_name = 'Lock Waits/Sec';
2. 利用Linux命令行工具
Debian系统的原生命令行工具可快速查看系统级资源使用情况,辅助判断SQL Server性能问题:
top -p $(pgrep -f sqlservr)
)。vmstat 1
(每秒刷新CPU、内存、磁盘I/O、进程状态);iostat -x 1
(详细磁盘I/O统计,如读写延迟、吞吐量)。netstat -tulnp | grep sqlservr
),确认SQL Server端口(默认1433)的连接数和流量。free -h
)和磁盘空间(df -h
),避免因资源不足导致SQL Server性能下降。3. 第三方监控工具集成
第三方工具提供更全面的监控和可视化能力,适合企业级环境:
mssql_exporter
(SQL Server专用exporter)收集SQL Server指标(如QPS、TPS、缓存命中率、锁等待时间);check_mssql_health
等插件监控SQL Server(如服务可用性、缓冲池命中率、死锁数量),支持阈值告警(如邮件、短信通知)。glances -p $(pgrep -f sqlservr)
插件监控SQL Server进程的资源占用(CPU、内存、I/O),适合快速排查问题。4. 自定义脚本监控
通过编程语言编写自定义脚本,实现个性化监控和告警:
Invoke-SqlCmd
执行DMV查询,结合Send-MailMessage
发送告警,可集成到Windows任务计划中定时运行。