skywalking优化

2,933 阅读1分钟

OAP优化

skywalking写入ES的操作是使用了ES的批量写入接口,我们要做的是调整相关参数尽量降低ES索引的写入频率。 参数调整主要是针对skywalking的配置文件application.yml,相关参数如下: ​

storage:
  elasticsearch:
    bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:4000} # Execute the bulk every 2000 requests
    bulkSize: ${SW_STORAGE_ES_BULK_SIZE:40} # flush the bulk every 20mb
    flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:30} # flush the bulk every 10 seconds whatever the number of requests
    concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:4} # the number of concurrent requests
    metadataQueryMaxSize: ${SW_STORAGE_ES_QUERY_MAX_SIZE:8000}

  • 调整bulkActions默认2000次请求批量写入一次改到4000次;
  • bulkSize批量刷新从20M一次到40M一次;
  • flushInterval每10秒刷新一次堆改为每30秒刷新;
  • concurrentRequests查询的最大数量由5000改为8000。

过滤不需要监控的接口

  • 在agent下,将apache-skywalking-apm-bin-es7\agent\optional-plugins\apm-trace-ignore-plugin-6.6.0.jar复制到apache-skywalking-apm-bin-es7\agent\plugins下面
  • 在apache-skywalking-apm-bin-es7\agent\config下面新建一个配置文件 apm-trace-ignore-plugin.config,文件内容为:
trace.ignore_path=${SW_AGENT_TRACE_IGNORE_PATH:/actuator,/actuator/**,/admin/**,/nacos/**,/apollo/**,Lettuce/**,Gson/**,Mysql/**,SpringScheduled/**,/gateway.do}

设置采样率

在默认情况下,SkyWalking会采集所有追踪的数据。但是如果系统比较复杂,采集的端点比较多的时候,可能存储压力比较大,这个时候我们可以修改配置,只存储部分的调用链路信息。比如:50%。 设置采样率的时候并不会影响相关指标的计算。包括服务,服务实例,端点,拓扑图等相关指标的计算还是使用完整的数据计算的。 ​

具体配置在config/application.yml文件中receiver-trace模块。 默认配置10000,采样率精确到1/10000,即10000 * 1/10000 = 1 = 100%。 假设我们设计采样50%,那么设置为5000,具体如下:

receiver-trace:
  selector: ${SW_RECEIVER_TRACE:default}
  default:
    sampleRate: ${SW_TRACE_SAMPLE_RATE:5000}