温馨提示×

centos如何监控sqlserver性能

小樊
37
2025-12-19 20:06:01
栏目: 云计算

在 CentOS 上监控 SQL Server 性能的可落地方案

一 内置与命令行快速巡检

  • 使用 sqlcmd 连接实例并执行健康检查与性能查询,例如:
    • 连接:sqlcmd -S your_server_name -U your_username -P your_password
    • 版本与实例:SELECT @@SERVERNAME, @@VERSION, SERVERPROPERTY(‘ProductVersion’)
    • 日志空间:DBCC SQLPERF(LOGSPACE)
    • 活跃请求与等待:SELECT session_id, request_id, task_alloc, task_dealloc, hostname, program_name, loginame, text FROM sys.dm_db_session_space_usage s JOIN sys.sysprocesses p ON s.session_id = p.spid CROSS APPLY sys.dm_exec_sql_text(p.sql_handle) ORDER BY task_alloc DESC
  • 借助 DMVs 与 Extended Events 持续采集执行与等待统计,用于定位慢查询、阻塞与资源瓶颈;在图形化环境可用 SSMS 的性能监视器、活动监视器、Profiler 辅助分析(Profiler 为较重工具,生产慎用)。

二 系统层面资源监控

  • 进程与资源:top/htop(按 PID 过滤 mssql 进程)、free(内存)、vmstat(CPU/内存/IO)、iostat(磁盘)、nmon(多子系统)、dstat(综合资源)、pmap(进程内存映射)、ps/pstree(进程树)、uptime(负载)、ss/netstat(连接与端口)、sar(历史统计)、strace/tcpdump(排障抓包)。
  • 快速示例:
    • 实时资源:top -p $(pidof sqlservr)
    • 磁盘 IO:iostat -x 1
    • 综合资源:nmon
    • 连接与端口:ss -lntp | grep sqlservr 这些工具帮助判断 CPU、内存、磁盘 IO、网络 是否存在瓶颈,并可与数据库层指标联动分析。

三 开源监控平台与告警

  • Prometheus + Grafana
    • 部署 PrometheusGrafana,通过 prometheus-mssql-exporter 采集 SQL Server 指标,在 Grafana 中构建仪表盘并配置阈值告警。
    • 基本流程:安装 Prometheus → 配置 scrape_configs 指向 exporter → 启动 Grafana → 添加 Prometheus 数据源 → 导入或自建 SQL Server 仪表盘 → 配置 Alertmanager 告警规则。
  • Zabbix
    • 使用 Zabbix Agent 或 ODBC 方式监控 SQL Server,内置 MSSQL 性能计数器 支持,结合模板实现自动发现、阈值告警与可视化。
  • 其他可选
    • Nagios(插件化检查与告警)、Monit(进程与资源守护)、企业级 SolarWinds DPARedgate SQL Monitor 等,用于更细粒度的性能分析与报表。

四 关键指标与采集方式

维度 关键指标 采集方式
连接与用户 当前连接数、失败连接 DMVs(如 sys.dm_exec_sessions、sys.sysprocesses)、SSMS 活动监视器
查询性能 平均/最大执行时间、CPU/逻辑读、执行次数 DMVs(如 sys.dm_exec_query_stats、sys.dm_exec_sql_text)、Query Store
等待与阻塞 等待类型与毫秒数、阻塞链 DMVs(如 sys.dm_os_wait_stats、sys.dm_exec_requests)、Extended Events
日志与空间 日志文件大小与已用百分比 T-SQL(DBCC SQLPERF(LOGSPACE))
资源与 IO CPU 利用率、可用内存、磁盘读写延迟与队列 Linux(top/vmstat/iostat/nmon)、Grafana/Prometheus 面板
错误与登录 错误日志、登录失败 SSMS 错误日志、Extended Events
上述指标覆盖数据库与系统两个层面,建议以 DMVs/Query Store 为数据库主视角,以 Linux 工具与平台为系统侧视角,联动排查。

五 落地实施步骤与告警建议

  • 步骤
    1. 建立基线:在业务平稳期采集 CPU、内存、磁盘 IO、连接数、查询性能 的基线值(如 15–30 天)。
    2. 部署采集:在 CentOS 上部署 Prometheus + Grafana + mssql-exporterZabbix,按实例配置采集间隔(如 15s)。
    3. 构建仪表盘:按“连接/查询/等待/日志/资源”分面建立面板,加入关键图表(如 Top SQL、等待统计、磁盘 IO)。
    4. 配置告警:对异常阈值设置 P1/P2/P3 分级告警,例如:
      • P1:SQL Server 进程 宕机/不可达、严重错误日志激增、磁盘 >85% 使用或 IO 延迟异常
      • P2:平均查询时长突增 >50%、P95 等待显著上升、连接数接近上限
      • P3:日志空间 >80%、CPU/内存持续高于基线 20%
    5. 持续优化:结合 Query StoreExtended Events 定位慢查询与阻塞根因,定期评审告警规则与阈值。
  • 注意
    • 生产环境控制采集频率与跟踪范围,避免 Profiler/Extended Events 过度开销;对高频查询使用抽样与合理筛选。
    • 建议将监控账号权限最小化,仅授予必要的 VIEW SERVER STATE 等权限,保障安全与稳定。

0