编程语言
首页 > 编程语言> > c# – ServiceFabric应用程序中的TraceEventSession使用会导致资源错误不足

c# – ServiceFabric应用程序中的TraceEventSession使用会导致资源错误不足

作者:互联网

我有一个在集群中运行的状态全服务结构应用程序.我有大约20个状态完整的应用程序在同一个集群中运行.我使用TraceEventSession进行关联.我的群集有10个节点.当我部署应用程序时,我能够在性能监视器中看到TPL会话正在运行.当群集中部署的应用程序数量增加时,我开始收到指定的错误

Insufficient system resources exist to complete the requested service.
(Exception from HRESULT: 0x800705AA)

System.Runtime.InteropServices.COMException (0x800705AA): Insufficient
system resources exist to complete the requested service. (Exception
from 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 options) at
TestApp.Service.Program.Main() in
C:\Agent_work\12\s\TestApp\TestApp.Service\Program.cs:line
61

这是我在program.cs中编写的代码,用于启用tpl会话

session = new TraceEventSession("TestApp_TplSession");  
session.EnableProvider(TplEtwProviderTraceEventParser.ProviderGuid, TraceEventLevel.Verbose,
                        (ulong)TplEtwProviderTraceEventParser.Keywords.TasksFlowActivityIds);

session.EnableProvider(ServiceEventSource.Current.Name);

我不确定将在同一群集中部署多少个状态全服务应用程序.我将如何摆脱这个错误?

解决方法:

Windows可以同时运行64个ETW会话的限制.考虑使用在每个节点上运行的单个无状态应用程序来创建单个会话.

标签:c,azure-service-fabric,etw
来源: https://codeday.me/bug/20190608/1198890.html