适用于: Linux 上的 SQL Server 2025 (17.x)
返回一个表,其中包含详细的 Linux CPU 统计信息,在 SQL Server 2025 (17.x) 累积更新 (CU) 1 及更高版本中提供超出 SQL Server 的系统级见解。
| 列名称 | 数据类型 | 可为 Null | Description |
|---|---|---|---|
uptime_secs |
漂浮 | 否 | 自系统启动以来的秒数。 |
loadavg_1min |
漂浮 | 否 | 运行队列中的作业数(就绪或等待磁盘 I/O)超过 1 分钟。 |
user_time_cs |
bigint | 否 |
USER_HZ 花费在用户模式下。 |
nice_time_cs |
bigint | 否 |
USER_HZ 花费在低优先级的用户模式下(nice)。 |
system_time_cs |
bigint | 否 |
USER_HZ 用于系统模式。 |
idle_time_cs |
bigint | 否 |
USER_HZ 用于空闲任务。 |
iowait_time_cs |
bigint | 否 |
USER_HZ 等待 I/O 完成。 |
irq_time_cs |
bigint | 否 |
USER_HZ 服务中断。 |
softirq_time_cs |
bigint | 否 |
USER_HZ 服务 SoftIRQs。 |
interrupt_cnt |
bigint | 否 | 自系统启动以来服务的中断数。 |
csw_cnt |
bigint | 否 | 自系统启动以来的上下文切换数。 |
boot_time_secs |
bigint | 否 | 启动时间,自 Unix 纪元以来的秒数。 |
total_forks_cnt |
bigint | 否 | 自系统启动以来的分叉数。 |
proc_runable_cnt |
bigint | 否 | 处于可运行状态的进程数。 |
proc_ioblocked_cnt |
bigint | 否 | 等待 I/O 的进程数被阻止。 |
C3_time |
bigint | 否 | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
C2_time |
bigint | 否 | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
C1_time |
bigint | 否 | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
C3_count |
bigint | 否 | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
C2_count |
bigint | 否 | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
C1_count |
bigint | 否 | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
Permissions
要求具有对服务器的 VIEW SERVER PERFORMANCE STATE 权限。
注解
此 DMV 提供自系统启动以来的累积统计信息。
值不限于 SQL Server 活动。 它们反映整个 Linux 主机。
有关解释 Linux CPU 统计信息的详细信息,请参阅分发版的 proc_stat(5) 手动页。
将此 DMV 与其他特定于 Linux 的 DMV 配合使用,以便进行整体监视:
使用场景
诊断 CPU 饱和度:使用
loadavg_1min,proc_runable_cnt并确定user_time_cs系统是否处于大量 CPU 负载之下。调查 I/O 等待:高
iowait_time_cs或proc_ioblocked_cnt值可能指示存储瓶颈。分析系统响应能力:频繁的上下文切换(
csw_cnt)或中断(interrupt_cnt)可能会向系统计划或硬件发出信号。将 SQL Server 性能与系统活动相关联:由于这些指标是系统范围的,因此它们可帮助你区分特定于 SQL Server 和更广泛的 OS 级别问题。
例子
答: 系统的当前 CPU 统计信息
用于 sys.dm_os_linux_cpu_stats 获取系统的当前 CPU 统计信息。 此示例是一次性快照,显示运营团队经常监视的常见信号。
SELECT GETDATE() AS sample_time,
uptime_secs,
loadavg_1min,
proc_runable_cnt,
proc_ioblocked_cnt,
interrupt_cnt,
csw_cnt,
user_time_cs,
system_time_cs,
idle_time_cs,
iowait_time_cs
FROM sys.dm_os_linux_cpu_stats;
B. 将主机压力与 SQL 计划程序相关联
运行以下示例查询以获取主机快照。
SELECT loadavg_1min,
proc_runable_cnt,
proc_ioblocked_cnt,
interrupt_cnt,
csw_cnt
FROM sys.dm_os_linux_cpu_stats;
以下查询返回有关 SQL 计划程序压力的信息,不包括 DAC 和隐藏计划程序。
如果计划程序显示高 runnable_tasks_count ,主机 loadavg_1min 数超过提升 proc_runable_cnt的 CPU 计数,则系统可能受 CPU 限制。 如果 SQL 可运行率较低,但主机 proc_ioblocked_cnt 和 I/O 等待速率较高,则存储是可疑的。
注释
主机指标是系统范围的,不限于 SQL Server。
SELECT scheduler_id,
runnable_tasks_count,
current_tasks_count,
work_queue_count,
is_online,
is_scheduler_online,
load_factor
FROM sys.dm_os_schedulers
WHERE scheduler_id < 255;