spring微服务 undertow的容器引起网关CPU超高的解决办法

注意:免费节点订阅链接已更新至 2026-01-13点击查看详情

一个项目在做压测的时候碰到一个网关CPU超过100%的问题,即便是停止压测CPU仍然居高不降。


图中明显有一个进程 xnio-1 i/o 很高不降的 这个分析进程来自undertow容器的。分析发现这个进程但凡压测超过50%就会很快升高到100 而且长时间不降。


通过此图发现存在很多空循环 ,到目前始终无法知道是什么原因引起了空循环造成CPU根本不会下降 只能重启服务解决。

翻阅了无法资料都是在说版本问题 ,尝试升级版本已经存在此类问题。只能通过更换netty容器直接就解决了这个问题。

参考资料如下:

首先通过GTP分析:

“XNIO 是一个用于构建高性能非阻塞 I/O 的库。它提供了一种在 Java 中进行异步 I/O 操作的框架。XNIO 可以用于构建网络应用程序,支持高并发和低延迟的网络通信。

XNIO-1 I/O-1 进程的名称表明它与 XNIO 框架中的 I/O 操作有关。在异步 I/O 模型中,可能会创建多个线程或者使用事件循环等机制来处理并发的 I/O 操作。这样的进程通常是与网络通信相关的,用于处理输入和输出。

具体而言,XNIO-1 I/O-1 进程中的 XNIO-1 可能表示 XNIO 框架的一个实例或者一个线程池。I/O-1 可能表示这是与 I/O 操作相关的第一个线程或任务。

如果你在应用程序中使用了 XNIO,这个进程可能是你应用程序的一个工作线程,负责处理异步 I/O 事件。在网络应用程序中,这种异步处理方式通常能够提供更好的性能和可伸缩性。

如果你想要更详细的信息,你可以检查应用程序的代码和配置,以了解是什么导致了 XNIO-1 I/O-1 进程的创建。在进行代码审查的同时,你还可以使用性能分析工具,如 Java Mission Control、VisualVM 或 YourKit,来深入了解这个进程的性能特征和行为。”

问题:XNIO-1 I/O-1 XNIO-2 I/O-2 cpu占用超过100%不释放

“当 XNIO 进程的 CPU 占用超过 100% 且不释放时,可能是因为系统处于某种性能瓶颈状态或者出现了一些问题。

最要的信息是这个:XNIO I/O threads are taking high CPU (may be because its not closing CLOSE_WAIT TCP connections) -https://issues.redhat.com/browse/XNIO-335

结论是:Details:
1. We are using Spring boot + undertow (version details are mentioned below)
2. App server is behind NGnix load balancer. We are using keep alive connections from NGnix to app server
3. When we deploy the app server, everything is OK, CPU usage is low, app is able to close TCP connections.
4. After an hour or so, the app server process starts taking up 25% of the CPU. Upon some inspection, I see that app is not able to close the CLOSE_WAIT connections (which may be the root cause )
5. When we leave the app server up and running for few days, it takes up more than 50% of CPU and the number of CLOSE_WAIT connections grows.
6. We are consistently able to reproduce with following versions:

  • spring-boot-starter-undertow: 2.1.1.RELEASE and 2.1.3.RELEASE
  • xnio-nio: 3.6.5.Final and 3.7.0.Final

7. I have noticed one 502 (BAD GATEWAY) from the app server just around the time when it starts taking up high CPU and at that moment I see the CLOSE_WAIT connections (although this app server doesn't have much traffic). May be when XNIO I/O thread rejects the incoming request, it gets into this state?
8. Please see attached images.

Using following server options:

  • builder.setServerOption(UndertowOptions.NO_REQUEST_TIMEOUT, 30 * 1000);
  • builder.setServerOption(UndertowOptions.REQUEST_PARSE_TIMEOUT, 30 * 1000);
  • builder.setServerOption(UndertowOptions.IDLE_TIMEOUT, 60 * 1000);
  • server.connection-timeout=50000 (spring property)

是让我更换更好的版本与配置信息,但尝试过后 依旧没有解决问题。不知道问题是怎么触发到这个bug。

全面解析v2rayng在蓝奏云上的使用:从下载配置到科学上网的完整指南

引言

在当今互联网环境下,网络限制和内容屏蔽已成为许多用户面临的共同问题。为了突破这些限制,科学上网工具应运而生,其中v2rayng凭借其强大的功能和易用性脱颖而出。与此同时,蓝奏云作为一款高效便捷的云存储平台,为v2rayng的配置分享提供了极大的便利。本文将全面解析v2rayng在蓝奏云上的使用,涵盖下载、安装、配置及常见问题解决,助你轻松实现科学上网。

什么是v2rayng?

v2rayng是一款基于V2Ray核心开发的网络代理工具,专为Android设备设计。它支持多种协议,如VMess、VLess、Shadowsocks等,能够有效绕过网络封锁,访问被屏蔽的网站和服务。v2rayng以其简洁的界面、稳定的性能和灵活的配置选项,成为许多用户科学上网的首选工具。

v2rayng的核心优势

  1. 多协议支持:兼容多种代理协议,适应不同网络环境需求。
  2. 高效稳定:基于V2Ray核心,提供流畅的网络连接体验。
  3. 用户友好:界面简洁,操作直观,适合新手和高级用户。
  4. 隐私保护:支持加密传输,减少数据泄露风险。

蓝奏云简介

蓝奏云是一款专注于文件存储和分享的云服务平台,以其高速上传下载和便捷的分享功能广受欢迎。用户可以通过蓝奏云轻松存储和分发v2rayng的安装包及配置文件,使其成为科学上网社区的重要资源库。

蓝奏云的特点

  • 免费存储:提供大容量免费存储空间,适合分享小型文件。
  • 高速传输:上传下载速度快,减少等待时间。
  • 便捷分享:生成短链接或二维码,方便他人获取文件。

v2rayng的下载与安装

1. 下载v2rayng

由于v2rayng并非官方应用商店提供,用户通常需要通过第三方平台获取。蓝奏云是常见的下载来源之一,以下是具体步骤:

  1. 访问蓝奏云的v2rayng分享链接(可通过搜索引擎或相关论坛获取)。
  2. 找到最新版本的APK文件,点击下载。
  3. 等待下载完成,确保文件完整(建议核对文件大小或MD5值)。

2. 安装v2rayng

Android设备安装第三方APK需开启“允许未知来源”选项:

  1. 进入手机设置,找到“安全”或“应用权限管理”。
  2. 启用“允许安装未知来源应用”。
  3. 找到下载的APK文件,点击安装。
  4. 按照提示完成安装,启动v2rayng。

v2rayng的配置教程

1. 获取V2Ray配置文件

配置文件是v2rayng运行的关键,通常包含服务器地址、端口、加密方式等信息。蓝奏云上常有用户分享现成的配置文件:

  1. 在蓝奏云搜索或通过社区获取配置文件(JSON格式)。
  2. 下载配置文件到手机本地存储。

2. 导入配置文件

  1. 打开v2rayng,点击右上角的“+”按钮。
  2. 选择“导入配置”,找到下载的JSON文件并导入。
  3. 检查配置信息是否正确(如服务器地址、端口、ID等)。

3. 启动代理服务

  1. 在主界面选择已导入的配置。
  2. 点击“启动”按钮,v2rayng将建立代理连接。
  3. 通知栏显示代理图标,表示运行成功。

4. 测试连接

  1. 打开浏览器,访问Google或YouTube等被屏蔽网站。
  2. 若无法访问,检查配置或尝试切换节点。

常见问题解答

Q1: 连接失败怎么办?

  • 检查网络是否正常。
  • 确认配置文件中的服务器信息无误。
  • 尝试更换节点或协议(如从VMess切换到Shadowsocks)。

Q2: 如何更新v2rayng?

  • 定期查看蓝奏云或社区论坛,获取最新版本。
  • 下载新APK后覆盖安装,保留原有配置。

Q3: 如何确保隐私安全?

  • 选择信誉良好的节点提供商。
  • 避免使用不明来源的配置文件。
  • 定期更换节点,减少追踪风险。

总结

v2rayng结合蓝奏云的高效分享功能,为用户提供了便捷的科学上网解决方案。通过本文的详细指南,即使是新手也能轻松完成下载、安装和配置。在享受自由访问互联网的同时,务必注意隐私保护和节点安全性。希望这篇解析能助你畅游无阻的网络世界!

精彩点评

v2rayng与蓝奏云的组合,堪称科学上网领域的“黄金搭档”。v2rayng以其强大的技术内核和灵活的配置选项,为用户提供了稳定高效的代理服务;而蓝奏云则以其极速的文件分享能力,让配置资源的获取变得触手可及。这种“工具+平台”的模式,不仅降低了技术门槛,还极大提升了用户体验。

然而,值得注意的是,科学上网虽能突破限制,但也需遵守法律法规,合理使用。此外,用户应提高安全意识,避免使用来路不明的节点或配置文件,以防隐私泄露。技术的本质是服务于人,唯有正确使用,方能真正发挥其价值。

总的来说,本文系统性地梳理了v2rayng在蓝奏云上的完整使用流程,内容详实、逻辑清晰,既适合新手入门,也能为进阶用户提供参考。在信息日益受限的今天,这样的指南无疑是一盏明灯,照亮了自由访问知识的道路。

版权声明:

作者: freeclashnode

链接: https://www.freeclashnode.com/news/article-4178.htm

来源: FreeClashNode

文章版权归作者所有,未经允许请勿转载。

免费节点实时更新

热门文章

最新文章

归档