You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自动终止Azure Analysis Services中运行超5分钟的高QPU会话?

自动化终止Azure Analysis Services高负载超时会话方案

核心思路

通过定期查询Azure Analysis Services的动态管理视图(DMV)识别符合条件的会话,再执行XMLA命令终止会话,最后借助Azure自动化服务实现周期性调度。

步骤1:编写PowerShell脚本实现会话识别与终止

首先确保安装SqlServer PowerShell模块(用于与Azure AS交互),脚本逻辑分为查询会话、终止会话两部分:

1.1 查询符合条件的会话

使用DMV组合查询筛选出活动状态、运行时长超5分钟且QPU占用超阈值的会话:

# 配置Azure AS服务器信息
$asServer = "asazure://<region>.asazure.windows.net/<server-name>"
$thresholdQpu = 50 # 根据实际业务负载调整QPU阈值
$thresholdDuration = 300 # 5分钟,单位为秒

# 执行DMV查询获取目标会话
$query = @"
SELECT 
    s.SessionID,
    s.SessionStatus,
    s.StartTime,
    DATEDIFF(SECOND, s.StartTime, GETDATE()) AS DurationSec,
    st.CPUUsage AS QpuUsage
FROM $SYSTEM.DISCOVER_SESSIONS s
JOIN $SYSTEM.DISCOVER_SESSION_STATISTICS st ON s.SessionID = st.SessionID
WHERE 
    s.SessionStatus = 'active'
    AND DATEDIFF(SECOND, s.StartTime, GETDATE()) > $thresholdDuration
    AND st.CPUUsage > $thresholdQpu
"@

$sessions = Invoke-ASCmd -Server $asServer -Query $query | ConvertFrom-Json

1.2 终止目标会话

遍历查询结果,执行XMLA命令终止会话:

foreach ($session in $sessions.Rows) {
    $cancelXmla = @"
<Cancel xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
    <SessionID>$($session.SessionID)</SessionID>
    <CancelAssociated>true</CancelAssociated>
</Cancel>
"@
    Write-Host "终止会话: $($session.SessionID)"
    Invoke-ASCmd -Server $asServer -Query $cancelXmla
}

步骤2:配置Azure Automation实现定期执行

  • 创建Azure自动化账户,为账户分配Azure Analysis Services的服务器管理员权限,或具备Microsoft.AnalysisServices/servers/query/action、Microsoft.AnalysisServices/servers/cancelSession/action权限的自定义角色。
  • 在自动化账户的模块库中搜索并安装SqlServer模块。
  • 创建PowerShell Runbook,粘贴上述脚本并替换服务器信息、阈值参数。
  • 设置Runbook触发器,例如每5分钟执行一次,确保及时识别并处理超时高负载会话。

注意事项

  • QPU、时长阈值需根据业务实际负载调整,避免误杀正常运行的会话。
  • 建议先在测试环境验证脚本逻辑,确认终止行为符合预期后再部署到生产环境。
  • 可在Runbook中添加日志记录,便于后续排查会话终止的相关情况。

内容的提问来源于stack exchange,提问作者Learn2Code

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 20:22:26