性能调优
有许多可用于调优代理性能的选项。要调整哪个选项取决于您是在优化速度、内存使用量、带宽还是存储。
在调优代理性能时,首先要调整的参数是 TransactionSampleRate。调整采样率可控制要追踪的请求百分比。默认情况下,采样率设置为 1.0,这意味着会追踪所有请求。
采样率会影响上述所有四个性能类别,因此调低采样率是提高性能的简单方法。
以下是使用 ASP.NET Core 上的配置将采样率设为 20% 的示例
{
"ElasticApm": {
"TransactionSampleRate": 0.2
}
}
在复杂的应用程序中,一个请求可能会产生许多 Span。为每个 Span 捕获堆栈跟踪可能会导致显著的内存使用量。每个错误也会捕获堆栈跟踪。有几个设置可以用来调整堆栈跟踪的捕获方式。
要停用捕获堆栈跟踪(针对 Span 和错误),请将 StackTraceLimit 设置为 0。
在默认设置下,APM .NET 代理会为持续时间超过 5ms 的每个记录的 Span 收集堆栈跟踪。若要提高持续时间阈值,请设置 SpanStackTraceMinDuration。
StackTraceLimit 控制在捕获堆栈跟踪时应收集多少个堆栈帧。
捕获 HTTP 请求和响应标头会增加内存分配、网络带宽以及 Elasticsearch 使用的磁盘空间。若要停用捕获 HTTP 请求和响应标头,请将 CaptureHeaders 设置为 false。
.NET 代理会跟踪某些系统和应用程序指标。系统会定期收集这些指标并将其发送到 APM Server,然后从那里发送到 Elasticsearch。您可以使用 MetricsInterval 设置来调整指标收集的时间间隔。