性能调优

编辑

有很多选项可用于调整代理性能。要调整哪个选项取决于您是针对速度、内存使用量、带宽还是存储进行优化。

采样

编辑

调整代理性能时,首先要考虑的是 TransactionSampleRate。调整采样率可以控制跟踪请求的百分比。默认情况下,采样率设置为 1.0,这意味着跟踪 *所有* 请求。

采样率会影响所有四个性能类别,因此简单地降低采样率是提高性能的一种简单方法。

以下是如何使用 ASP.NET Core 配置 将采样率设置为 20% 的示例。

{
    "ElasticApm": {
        "TransactionSampleRate": 0.2
    }
}

堆栈跟踪

编辑

在复杂的应用程序中,一个请求可能会产生许多跨度。为每个跨度捕获堆栈跟踪可能会导致大量的内存使用。堆栈跟踪也会为每个错误捕获。有一些设置可以调整如何捕获堆栈跟踪。

禁用捕获堆栈跟踪

编辑

要禁用捕获堆栈跟踪(对于跨度和错误),请将 StackTraceLimit 设置为 0

仅为长时间运行的跨度捕获堆栈跟踪

编辑

在其默认设置中,APM 代理会为每个持续时间超过 5 毫秒的已记录跨度收集堆栈跟踪。要增加持续时间阈值,请设置 SpanStackTraceMinDuration

减少捕获的堆栈跟踪帧数

编辑

StackTraceLimit 控制在捕获堆栈跟踪时应收集多少个堆栈帧。

禁用捕获 HTTP 请求和响应标头

编辑

捕获 HTTP 请求和响应标头会增加 Elasticsearch 使用的内存分配、网络带宽和磁盘空间。要禁用捕获 HTTP 请求和响应标头,请将 CaptureHeaders 设置为 false

增加指标收集间隔

编辑

.NET 代理跟踪某些系统和应用程序指标。这些指标会定期收集并发送到 APM 服务器,然后发送到 Elasticsearch。您可以使用设置 MetricsInterval 调整指标收集的间隔。