Soul性能优化

说明

  • 本文主要介绍如何对soul进行优化

本身消耗

  • soul本身所有的操作,都是基于jvm内存来匹配,本身消耗时间大概在 1-3 ms左右。

底层netty调优

  • soul内置依赖 spring-webflux 而其底层是使用的netty

  • 我们可以自定义netty的相关参数来对soul 进行优化,以下是示例:

  1. @Bean
  2. public NettyReactiveWebServerFactory nettyReactiveWebServerFactory() {
  3. NettyReactiveWebServerFactory webServerFactory = new NettyReactiveWebServerFactory();
  4. webServerFactory.addServerCustomizers(new EventLoopNettyCustomizer());
  5. return webServerFactory;
  6. }
  7. private static class EventLoopNettyCustomizer implements NettyServerCustomizer {
  8. @Override
  9. public HttpServer apply(final HttpServer httpServer) {
  10. return httpServer
  11. .tcpConfiguration(tcpServer -> tcpServer
  12. .runOn(LoopResources.create("soul-netty", 1, DEFAULT_IO_WORKER_COUNT, true), false)
  13. .selectorOption(ChannelOption.SO_REUSEADDR, true)
  14. .selectorOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT)
  15. .option(ChannelOption.TCP_NODELAY, true)
  16. .option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT));
  17. }
  18. }
  • 这个类在 soul-bootstrap中已经内置,在压测的时候,可以根据自己的需求来进行优化设置。

  • 业务线程模型可以看线程模型