Spring Cloud Gateway:RHEL上的高CPU利用率:可以从epoll切换到NIO



如以下问题中所述,我们在RHEL上部署的spring云网关应用程序中看到了高cpu利用率。以下链接提供详细信息

https://github.com/spring-cloud/spring-cloud-gateway/issues/1908

根据@spencergibb的建议,我们已经尝试了最新版本的网关和引导,但在PST期间仍然看到高cpu利用率。似乎大部分的利用是由反应器"完成的;epoll";螺纹。

是否有任何可以尝试提高性能的reactor/nety优化?似乎除了";epoll";有使用NIO的选项-这种切换可能吗?

我可以在日志中看到以下警告。这与这种高cpu利用率有关吗?

[2020-08-21 13:45:38,537] [] [15854] [main] [DEBUG] [i.n.u.internal.NativeLibraryLoader] - Unable to load the library 'netty_transport_native_epoll_x86_64', trying other loading mechanism.
java.lang.UnsatisfiedLinkError: no netty_transport_native_epoll_x86_64 in java.library.path
[2020-08-21 13:45:38,567] [] [15884] [main] [DEBUG] [i.n.u.internal.NativeLibraryLoader] - Successfully loaded the library /tmp/libnetty_transport_native_epoll_x86_6488
16793540849624173.so
[2020-08-21 13:45:38,568] [] [15885] [main] [DEBUG] [r.netty.resources.DefaultLoopEpoll] - Default Epoll support : true
[2020-08-21 13:45:38,569] [] [15886] [main] [DEBUG] [r.netty.resources.DefaultLoopKQueue] - Default KQueue support : false
[2020-08-21 13:45:38,581] [] [15898] [main] [DEBUG] [i.n.c.MultithreadEventLoopGroup] - -Dio.netty.eventLoopThreads: 12

您可以通过系统属性或服务器/客户端级别的配置来控制将使用哪个传输。当您在Spring Gateway中时,最好通过系统属性来控制它。使用-Dreactor.netty.native=false。在这里你可以找到更多关于配置线程等的信息。

对于Spring Gateway的链接问题,请尝试将JMeter与Spring Gateway分离——在同一台机器上运行它们是不可行的。

最新更新