gpt4 book ai didi

windows - Azure 通过 XML 文件实现的可扩展性

转载 作者:行者123 更新时间:2023-12-03 01:58:34 33 4
gpt4 key购买 nike

以编程方式更改定义实例数量的 XML 文件的最佳实践解决方案是什么?我知道使用 Windows Azure API 的 csmanage.exe 可以实现这一点。我如何衡量哪些辅助角色虚拟机正在实际工作?我也在 MSDN 社区论坛上提出了这个问题:http://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/02ae7321-11df-45a7-95d1-bfea402c5db1

最佳答案

要修改配置,您可能需要查看PowerShell Azure Cmdlets 。这确实简化了任务。例如,下面是一个 PowerShell 代码段,用于将生产中“WebRole1”的实例计数增加 1:

$cert = Get-Item cert:\CurrentUser\My\<YourCertThumbprint>
$sub = "<YourAzureSubscriptionId>"
$servicename = '<YourAzureServiceName>'
Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub |
Get-Deployment -Slot Production |
Set-DeploymentConfiguration {$_.RolesConfiguration["WebRole1"].InstanceCount += 1}

现在,就实际监控系统负载和吞吐量而言:您将需要 Azure API 调用和性能计数器数据的组合。例如:您可以请求 Azure 队列中当前的消息数量:

http://yourstorageaccount.queue.core.windows.net/myqueue?comp=metadata

您还可以设置您的角色来捕获特定的性能计数器。例如:

 public override bool OnStart()
{
var diagObj= DiagnosticMonitor.GetDefaultInitialConfiguration();
AddPerfCounter(diagObj,@"\Processor(*)\% Processor Time",60.0);
AddPerfCounter(diagObj, @"\ASP.NET Applications(*)\Request Execution Time", 60.0);
AddPerfCounter(diagObj,@"\ASP.NET Applications(*)\Requests Executing", 60.0);
AddPerfCounter(diagObj, @"\ASP.NET Applications(*)\Requests/Sec", 60.0);

//Set the service to transfer logs every minute to the storage account
diagObj.PerformanceCounters.ScheduledTransferPeriod = TimeSpan.FromMinutes(1.0);

//Start Diagnostics Monitor with the new storage account configuration
DiagnosticMonitor.Start("DiagnosticsConnectionString",diagObj);
}

因此,此代码将一些性能计数器捕获到每个角色实例上的本地存储中,然后每分钟将这些值传输到表存储中。

现在的技巧是检索这些值,解析它们,评估它们,然后相应地调整您的角色实例。 Azure API 将允许您轻松地从表存储中提取性能计数器。然而,解析和评估需要一些时间来构建。

这让我建议您查看 Azure Dynamic Scaling Example在 MSDN 代码站点上。这是一个很棒的示例,它提供了:

  • 托管 WCF 服务的演示业务线应用
  • 一种负载生成工具,可以按照您指定的速率将消息推送到服务
  • 负载监控 Web UI
  • 可在本地运行或在 Azure 角色中运行的扩展引擎。

这是您要仔细查看的最后一项。它基于阈值,将性能计数器数据以及队列长度数据与这些阈值进行比较。根据比较,它会相应地扩大或缩小您的实例。

即使您最终不使用此引擎,您也可以看到如何从表存储中获取数据、进行处理以及如何用于驱动实例更改。

关于windows - Azure 通过 XML 文件实现的可扩展性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2700439/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com