我有一个在集群中运行的状态全服务结构应用程序。我在同一个集群中运行了大约20个状态完整的应用程序。我使用TraceEventSession进行关联。我的群集有10个节点。当我部署应用程序时,我能够在性能监视器中看到TPL会话正在运行。当群集中部署的应用程序数量增加时,我开始收到指定的错误
没有足够的系统资源来完成所请求的服务。 (HRESULT异常:0x800705AA)
System.Runtime.InteropServices.COMException(0x800705AA):不足 存在系统资源以完成所请求的服务。 (例外 来自HRESULT:0x800705AA)at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(的Int32 errorCode,IntPtr errorInfo)at Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableProvider(GUID providerGuid,TraceEventLevel providerLevel,UInt64 matchAnyKeywords, TraceEventProviderOptions选项) TestApp.Service.Program.Main()in C:\ Agent_work \ 12个\ S \ TestApp \ TestApp.Service \ Program.cs中:线 61
这是我在program.cs中编写的代码,用于启用tpl会话
session = new TraceEventSession("TestApp_TplSession");
session.EnableProvider(TplEtwProviderTraceEventParser.ProviderGuid, TraceEventLevel.Verbose,
(ulong)TplEtwProviderTraceEventParser.Keywords.TasksFlowActivityIds);
session.EnableProvider(ServiceEventSource.Current.Name);
我不确定将在同一群集中部署多少个状态全服务应用程序。我将如何摆脱这个错误?
答案 0 :(得分:5)
Windows可以同时运行64个ETW会话的限制。考虑使用在每个节点上运行的单个无状态应用程序来创建单个会话。