在ServiceFabric应用程序中使用TraceEventSession会引起资源不足错误 [英] TraceEventSession usage in ServiceFabric application raises insufficient resource error
问题描述
我在群集中运行一个State-full服务结构应用程序..在同一群集中运行约20个State-full服务应用程序.我已经使用TraceEventSession进行关联.我的集群有10个节点.当我部署应用程序时,我可以在Performance Monitor中看到正在运行的TPL会话处于活动状态.当集群中部署的应用程序数量增加时,我开始收到指定的错误
I have a State-full service fabric application running in a cluster.. I have about 20 State-full applications running in the same cluster. i have used TraceEventSession for correlation purposes. My cluster is having 10 nodes. When i deploy an application i am able to see the TPL session running active in Performance Monitor. When the number of application deployed in the cluster increased i started receiving the error specified
系统资源不足,无法完成请求的服务. (来自HRESULT的异常:0x800705AA)
Insufficient system resources exist to complete the requested service. (Exception from HRESULT: 0x800705AA)
System.Runtime.InteropServices.COMException(0x800705AA):不足 存在系统资源来完成请求的服务. (例外 来自HRESULT:0x800705AA) System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode,IntPtr errorInfo),网址为 Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableProvider(Guid providerGuid,TraceEventLevel providerLevel,UInt64 matchAnyKeywords, TraceEventProviderOptions选项)位于 TestApp.Service.Program.Main()在 C:\ Agent_work \ 12 \ s \ TestApp \ TestApp.Service \ Program.cs:line 61
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会话的代码
this is the code i wrote in program.cs to enable the tpl session
session = new TraceEventSession("TestApp_TplSession");
session.EnableProvider(TplEtwProviderTraceEventParser.ProviderGuid, TraceEventLevel.Verbose,
(ulong)TplEtwProviderTraceEventParser.Keywords.TasksFlowActivityIds);
session.EnableProvider(ServiceEventSource.Current.Name);
我不确定在同一集群中将部署多少个状态全方位服务应用程序.我如何摆脱这个错误?
I am not sure of how many state full service application will be deployed in the same cluster. How will i get rid of this error??
推荐答案
Windows最多可以同时运行64个ETW会话.考虑使用在每个节点上运行的单个无状态应用程序来创建单个会话.
Windows has a limit of 64 ETW sessions that can be running concurrently. Consider using a single stateless app running on every node to create a single session.
这篇关于在ServiceFabric应用程序中使用TraceEventSession会引起资源不足错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!