当前位置: 首页 > 知识库问答 >
问题:

Spring云网关:RHEL上的高CPU利用率:可以从epoll切换到NIO

谭曦
2023-03-14

如下文所述,我们看到部署在RHEL上的spring cloud gateway应用程序的cpu利用率很高。详细信息可在以下链接中获得

根据@SpencerGibb给出的建议,已经尝试使用最新版本的gateway和boot,但在PST期间仍然看到高cpu利用率。似乎大部分的利用是由反应堆“ePoll”线程完成的。

是否有任何反应堆/网管优化可以尝试来提高性能?似乎除了“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

共有1个答案

陶沛
2023-03-14

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

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

 类似资料:
  • 我正在使用mod安全规则https://github.com/SpiderLabs/owasp-modsecurity-crs清理用户输入数据。在将用户输入与mod security rule正则表达式匹配时,我面临着cpu激增和延迟。总的来说,它包含500个正则表达式来检查不同类型的攻击(xss、badrobots、generic和sql)。对于每个请求,我检查所有参数并对照所有这500个正则表

  • 谁能解释一下这两种方法的真正区别 vm。GetTotalizationofCPU(CloudSim.clock()); 和 cloudlet.get利用OfCpu(CloudSim.clock()); 提前感谢

  • 问题内容: 在Linux中是否有命令或任何其他方式来获取当前或平均 CPU使用率 (对于多处理器环境)? 我在小型系统中使用嵌入式Linux。基本上,我需要确定CPU利用率,以便在CPU利用率很高的情况下,可以将新进程转移到系统中的另一个控制器,而不是在可能忙于执行更重要进程的主处理器上执行。 这个问题不仅仅在于对进程进行优先级排序,另一个控制器可以充分处理新进程,只是当主处理器不忙时,我希望它来

  • 问题内容: 关闭。 这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 7年前关闭。 最近,我的服务器CPU性能一直很高。 CPU平均负载为13.91(1分钟)11.72(5分钟)8.01(15分钟),而我的站点的流量仅略有增加。 运行完最高命令后,我看到MySQL使用的CPU是160%! 最近,我一直在优化表,并切换到持久连接。这会

  • 如何获取库伯内特斯集群中 CPU 使用率最高的前三个容器? 上面的命令为所有名称空间中的所有pod提供了CPU和内存利用率。如何将其限制在CPU利用率最高的前三个机架上? 此外,我尝试按CPU排序,但似乎排序不起作用。 输出:

  • 我有一个Java应用程序(基于web),它有时会在几个小时内显示非常高的CPU利用率(几乎90%)。Linux的TOP命令显示了这一点。重新启动应用程序时,问题就会消失。 所以要调查: 我使用线程转储来查找线程正在执行的操作。有几个线程处于“可运行”状态,一些线程处于其他一些状态。在重复执行线程转储时,我确实看到一些线程总是处于“可运行”状态。因此,他们似乎是罪魁祸首。 但我无法确定,哪个线程占用