系列解读SMC-R:透明无感提升云上 TCP 应用网络性能(一)| 龙蜥技术

简介:已有的应用若想使用RDMA技术改造成本高,那么有没有一种技术是不做任何改造就可以享受RDMA带来的性能优势?

文/龙蜥社区高性能网络SIG

引言

Shared Memory Communication over RDMA (SMC-R) 是一种基于 RDMA 技术、兼容 socket 接口的内核网络协议,由 IBM 提出并在 2017 年贡献至 Linux 内核。SMC-R 能够帮助 TCP 网络应用程序透明使用 RDMA,获得高带宽、低时延的网络通信服务。阿里云云上操作系统 Alibaba Cloud Linux 3 以及龙蜥社区开源操作系统 Anolis 8 配合神龙弹性 RDMA (eRDMA) 首次将 SMC-R 带上云上场景,助力云上应用获得更好的网络性能:《技术揭秘:阿里云发布第四代神龙 ,SMC-R 让网络性能提升 20%》。

由于 RDMA 技术在数据中心领域的广泛使用,龙蜥社区高性能网络 SIG 认为 SMC-R 将成为下一代数据中心内核协议栈的重要方向之一。为此,我们对其进行了大量的优化,并积极将这些优化回馈到上游 Linux 社区。目前,龙蜥社区高性能网络 SIG 是除 IBM 以外最大的 SMC-R 代码贡献团体。由于 SMC-R 相关中文资料极少,我们希望通过一系列文章,让更多的国内读者了解并接触 SMC-R,也欢迎有兴趣的读者加入龙蜥社区高性能网络 SIG 一起沟通交流(二维码见文末)。本篇作为系列文章的第一篇,将从宏观的角度带领读者初探 SMC-R。

一、从 RDMA 谈起

Shared Memory Communication over RDMA 的名称包含了 SMC-R 网络协议的一大特点——基于 RDMA。因此,在介绍 SMC-R 前我们先来看看这个高性能网络领域中的绝对主力:Remote Direct Memory Access (RDMA) 技术。

1.1 为什么需要 RDMA ?

随着数据中心、分布式系统、高性能计算领域的快速发展,网络设备性能进步显著,主流物理网络带宽已达到了 25-100 Gb/s,网络时延也进入了十微秒的时代。然而,网络设备性能提升的同时一个问题也逐渐显露:网络性能与 CPU 算力逐渐失配。传统网络中,负责网络报文封装、解析和用户态/内核态间数据搬运的 CPU 在高速增长的网络带宽面前逐渐显得力不从心,面临越来越大的压力。以 TCP/IP 网络的一次数据发送与接收过程为例。发送节点 CPU 首先将数据从用户态内存拷贝至内核态内存,在内核态协议栈中完成数据包封装;再由 DMA 控制器将封装好的数据包搬运到 NIC 上发送到对端。接收端 NIC 获得数据包后通过 DMA 控制器搬运到内核态内存中,由内核协议栈解析,层层剥离帧首或包头后再由 CPU 将有效负载 (payload) 拷贝到用户态内存中,完成一次数据传输。

(图/传统 TCP/IP 网络传输模型)

在这一过程中,CPU 需要负责:

1)用户态与内核态间的数据拷贝。

2)网络报文的封装、解析工作。

这些工作“重复低级”,占用了大量 CPU 资源 (如 100 Gb/s 的网卡跑到满带宽需要打满多个 CPU 核资源),使得 CPU 在数据密集型场景下无法将算力用到更有益的地方。

所以,解决网络性能与 CPU 算力失配问题成为了高性能网络发展的关键。考虑到摩尔定律逐渐失效,CPU 性能短时间内发展缓慢,将网络数据处理工作从 CPU 卸载到硬件设备的思路就成为了主流解决方案。这使得以往专用于特定高性能领域的 RDMA 在通用场景下得到愈来愈多的应用。

1.2 RDMA 的优势

RDMA (Remote Direct Memory Access) 是一种远程内存直接访问技术,自提出以来经过 20 余年的发展已经成为了高性能网络的重要组成。那么 RDMA 是如何完成一次数据传输的呢?

(图/用户态 RDMA 网络传输模型)

RDMA 网络 (用户态模式) 中,具备 RDMA 能力的网卡 RNIC 直接从发送端用户态内存中取得数据,在网卡中完成数据封装后传输到接收端,再由接收端 RNIC 将数据解析剥离,将有效负载 (payload) 直接放入用户态内存中完成数据传输。这一过程中 CPU 除了必要的控制面功能外,几乎不用参与数据传输。数据就像是通过 RNIC 直接写入到远程节点的内存中一样。因此,与传统网络相比,RDMA 将 CPU 从网络传输中解放了出来,使得网络传输就像是远程内存直接访问一样方便快捷。

(图/传统网络与 RDMA 网络协议栈对比)

对比传统网络协议,RDMA 网络协议具有以下三个特点:

1.旁路软件协议栈

RDMA 网络依赖 RNIC 在网卡内部完成数据包封装与解析,旁路了网络传输相关的软件协议栈。对于用户态应用程序,RDMA 网络的数据路径旁路了整个内核;对于内核应用程序,则旁路了内核中的部分协议栈。由于旁路了软件协议栈,将数据处理工作卸载到了硬件设备,因而 RDMA 能够有效降低网络时延。

2.CPU 卸载

RDMA 网络中,CPU 仅负责控制面工作。数据路径上,有效负载由 RNIC 的 DMA 模块在应用缓冲区和网卡缓冲区中拷贝 (应用缓冲区提前注册,授权网卡访问的前提下),不再需要 CPU 参与数据搬运,因此可以降低网络传输中的 CPU 占用率。

3.内存直接访问

RDMA 网络中,RNIC 一旦获得远程内存的访问权限,即可直接向远程内存中写入或从远程内存中读出数据,不需要远程节点参与,非常适合大块数据传输。

二、回到 SMC-R

通过上述介绍,相信读者对 RDMA 主要特点以及性能优势有了初步的了解。不过,虽然 RDMA 技术能够带来可喜的网络性能提升,但是想使用 RDMA 透明提升现有 TCP 应用的网络性能仍有困难,这是因为 RDMA 网络的使用依赖一系列新的语义接口,包括 ibverbs 接口与 rdmacm 接口 (后统称 verbs 接口)。

部分 ibverbs与rdmacm接口[1]

相较于传统 POSIX socket 接口,verbs 接口数量多,且更接近硬件语义。对于已有的基于 POSIX socket 接口实现的 TCP 网络应用,想要享受 RDMA 带来的性能红利就不得不对应用程序进行大量改造,成本巨大。

因此,我们希望能够在使用 RDMA 网络的同时沿用 socket 接口,使现有 socket 应用程序透明的享受 RDMA 服务。

针对这一需求,业界提出了以下两个方案:

其一,是基于 libvma 的用户态方案。libvma 的原理是通过 LD_PRELOAD 来将应用所有 socket 调用引入自定义实现,在自定义实现中调用 verbs 接口,完成数据收发。但是,由于实现在用户态,libvma 一方面缺少内核统一资源管理,另一方面对 socket 接口的兼容性较差。

其二,是基于 SMC-R 的内核态方案。作为内核态协议栈,SMC-R 对 TCP 应用的兼容性相较于用户态方案会好很多,这种 100% 兼容意味着极低的推广和复用成本。此外,实现在内核态使得 SMC-R 协议栈中的 RDMA 资源能够被用户态不同进程共享,提高资源利用率的同时降低频繁资源申请与释放的开销。不过,完全兼容 socket 接口就意味着需要牺牲极致的 RDMA 性能 (因为用户态 RDMA 程序可以做到数据路径旁路内核与零拷贝,而 SMC-R 为了兼容 socket 接口,无法实现零拷贝),但这也换来兼容与易用,以及对比 TCP 协议栈的透明性能提升。未来,我们还计划拓展接口,以牺牲小部分兼容性的代价将零拷贝特性应用于 SMC-R,使它的性能得到进一步改善。

2.1 透明替换 TCP

SMC-R is an open sockets over RDMA protocol that provides transparent exploitation of RDMA (for TCP based applications) while preserving key functions and qualities of service from the TCP/IP ecosystem that enterprise level servers/network depend on!

摘自:

https://www.openfabrics.org/images/eventpresos/workshops2014/IBUG/presos/Thursday/PDF/05_SMC-R_Update.pdf

SMC-R 作为一套与 TCP/IP 协议平行,向上兼容 socket 接口,底层使用 RDMA 完成共享内存通信的内核协议栈,其设计意图是为 TCP 应用提供透明的 RDMA 服务,同时保留了 TCP/IP 生态系统中的关键功能。为此,SMC-R 在内核中定义了新的网络协议族 AF_SMC,其 proto_ops 与 TCP 行为完全一致。

/* must look like tcp */
static const struct proto_ops smc_sock_ops = {.family    = PF_SMC,.owner    = THIS_MODULE,.release  = smc_release,.bind    = smc_bind,.connect  = smc_connect,.socketpair  = sock_no_socketpair,.accept    = smc_accept,.getname  = smc_getname,.poll    = smc_poll,.ioctl    = smc_ioctl,.listen    = smc_listen,.shutdown  = smc_shutdown,.setsockopt  = smc_setsockopt,.getsockopt  = smc_getsockopt,.sendmsg  = smc_sendmsg,.recvmsg  = smc_recvmsg,.mmap    = sock_no_mmap,.sendpage  = smc_sendpage,.splice_read  = smc_splice_read,
};

由于 SMC-R 协议支持与 TCP 行为一致的 socket 接口,使用 SMC-R 协议非常简单。总体来说有两个方法:

(图/SMC-R 的使用方法)

其一,使用 SMC-R 协议族 AF_SMC 开发。通过创建 AF_SMC 类型的 socket,应用程序的流量将进入到 SMC-R 协议栈;

其二,透明替换协议栈将应用程序创建的 TCP 类型 socket 透明替换为 SMC 类型 socket。透明替换可以通过以下两种方式实现:

  • 使用 LD_PRELOAD 实现协议栈透明替换。在运行 TCP 应用程序时预加载一个动态库。在动态库中实现自定义 socket() 函数,将 TCP 应用程序创建的 AF_INET 类型 socket 转换为 AF_SMC 类型的 socket,再调用标准 socket 创建流程,从而将 TCP 应用流量引入 SMC-R 协议栈。
int socket(int domain, int type, int protocol)
{int rc;if (!dl_handle)initialize();/* check if socket is eligible for AF_SMC */if ((domain == AF_INET || domain == AF_INET6) &&// see kernel code, include/linux/net.h, SOCK_TYPE_MASK(type & 0xf) == SOCK_STREAM &&(protocol == IPPROTO_IP || protocol == IPPROTO_TCP)) {dbg_msg(stderr, "libsmc-preload: map sock to AF_SMC\n");if (domain == AF_INET)protocol = SMCPROTO_SMC;else /* AF_INET6 */protocol = SMCPROTO_SMC6;domain = AF_SMC;}rc = (*orig_socket)(domain, type, protocol);return rc;
}

开源用户态工具集 smc-tools 中的 smc_run 指令即实现上述功能[2]。

  • 通过 ULP + eBPF 实现协议栈透明替换。SMC-R 支持 TCP ULP 是龙蜥社区高性能网络 SIG 贡献到上游 Linux 社区的新特性。用户可以通过 setsockopt() 指定新创建的 TCP 类型 socket 转换为 SMC 类型 socket。同时,为避免应用程序改造,用户可以通过 eBPF 在合适的 hook 点 (如 BPF_CGROUP_INET_SOCK_CREATE、BPF_CGROUP_INET4_BIND、BPF_CGROUP_INET6_BIND 等) 注入 setsockopt(),实现透明替换。这种方式更适合在容器场景下可以依据自定义规则,批量的完成协议转换。
static int smc_ulp_init(struct sock *sk)
{struct socket *tcp = sk->sk_socket;struct net *net = sock_net(sk);struct socket *smcsock;int protocol, ret;/* only TCP can be replaced */if (tcp->type != SOCK_STREAM || sk->sk_protocol != IPPROTO_TCP ||(sk->sk_family != AF_INET && sk->sk_family != AF_INET6))return -ESOCKTNOSUPPORT;/* don't handle wq now */if (tcp->state != SS_UNCONNECTED || !tcp->file || tcp->wq.fasync_list)return -ENOTCONN;if (sk->sk_family == AF_INET)protocol = SMCPROTO_SMC;elseprotocol = SMCPROTO_SMC6;smcsock = sock_alloc();if (!smcsock)return -ENFILE;<...>
}
SEC("cgroup/connect4")
int replace_to_smc(struct bpf_sock_addr *addr)
{int pid = bpf_get_current_pid_tgid() >> 32;long ret;/* use-defined rules/filters, such as pid, tcp src/dst address, etc...*/if (pid != DESIRED_PID)return 0;<...>ret = bpf_setsockopt(addr, SOL_TCP, TCP_ULP, "smc", sizeof("smc"));if (ret) {bpf_printk("replace TCP with SMC error: %ld\n", ret);return 0;}return 0;
}

综合上述介绍,TCP 应用程序透明使用 RDMA 服务可以体现在以下两个方面:

2.2 SMC-R 架构(图/SMC-R 架构)

SMC-R 协议栈在系统内部处于 socket 层以下,RDMA 内核 verbs 层以上。是一个具备 "hybrid" 特点的内核网络协议栈。这里的 "hybrid" 主要体现在 SMC-R 协议栈中混合了 RDMA 流与 TCP 流:

数据流量基于 RDMA 网络传输

SMC-R 使用 RDMA 网络来传递用户态应用程序的数据,使应用程序透明的享受到 RDMA 带来的性能红利,即上图中黄色部分所示。发送端应用程序的数据流量通过 socket 接口从应用缓冲区来到内核内存空间;接着通过 RDMA 网络直接写入远程节点的一个内核态 ringbuf (remote memory buffer, RMB) 中;最后由远程节点 SMC-R 协议栈将数据从 RMB 拷贝到接收端应用缓冲区中。

(图/SMC-R 共享内存通信)

显然,SMC-R 名称中的共享内存通信指的就是基于远程节点 RMB 进行通信。与传统的本地共享内存通信相比,SMC-R 将通信两端拓展为了两个分离的节点,利用 RDMA 实现了基于“远程”共享内存的通信。

(图/主流 RDMA 实现)

目前,RDMA 网络的主流实现有三种:InfiniBand、RoCE 和 iWARP。其中,RoCE 作为在高性能与高成本中权衡的方案,在使用 RDMA 的同时兼容以太网协议,既保证了不错的网络性能,同时也降低了网络组建成本,因此倍受企业青睐,Linux 上游社区版本的 SMC-R 也因此使用 RoCE v1 和 v2 作为其 RDMA 实现。

而 iWARP 则是基于 TCP 实现了 RDMA,突破了其余两者对无损网络的刚性需求。iWARP 具备更好的可拓展性,非常适用于云上场景。阿里云弹性 RDMA (eRDMA) 基于 iWARP 将 RDMA 技术带到云上。阿里云操作系统 Alibaba Cloud Linux 3 与龙蜥社区开源操作系统 Anolis 8 中的 SMC-R 也进一步支持了 eRDMA (iWARP),使云上用户透明无感的使用 RDMA 网络。

依赖 TCP 流建立连接

除 RDMA 流外,SMC-R 还会为每个 SMC-R 连接配备一条 TCP 连接,两者具有相同的生命周期。TCP 流在 SMC-R 协议栈中主要担负以下职责:

1)动态发现对端 SMC-R 能力

在 SMC-R 连接建立前,通信两端并不知道对端是否同样支持 SMC-R。因此,两端会首先建立一条 TCP 连接。在 TCP 连接三次握手的过程中通过发送携带特殊的 TCP 选项的 SYN 包表示支持 SMC-R,同时检验对端发送的 SYN 包中的 TCP 选项。

(图/表示 SMC-R 能力的 TCP 选项)

2)回退

若在上述过程中,通信两端其一无法支持 SMC-R 协议,或是在 SMC-R 连接建立过程中无法继续,则 SMC-R 协议栈将回退至 TCP 协议栈。回退过程中,SMC-R 协议栈将应用程序持有的文件描述符对应的 socket 替换为 TCP 连接的 socket。应用程序的流量将通过这条 TCP 连接承载,以保证数据传输不会中断。

3)帮助建立 SMC-R 连接

若通信两端均支持 SMC-R 协议,则将通过 TCP 连接交换 SMC-R 连接建立消息 (建连过程类似 SSL 握手)。此外,还需要使用此 TCP 连接交换两侧的 RDMA 资源信息,帮助建立用于数据传输的 RDMA 链路。

通过上述介绍,相信读者对 SMC-R 总体架构有了初步的了解。SMC-R 作为一个 "hybrid" 解决方案,充分利用了 TCP 流的通用性和 RDMA 流的高性能。后面的文章中我们将对 SMC-R 中的一次完整通信过程进行分析,届时读者将进一步体会到 "hybrid" 这一特点。

本篇作为 SMC-R 系列文章的首篇,希望能够起到一个引子的作用。回顾本篇,我们主要回答了这几个问题:

1、为什么要基于 RDMA ?

因为 RDMA 能够带来网络性能提升 (吞吐/时延/CPU占用率);

2、为什么 RDMA 能够带来性能提升?

因为旁路了大量软件协议栈,将 CPU 从网络传输过程中解放出来,使数据传输就像直接写入远程内存一样简单;

3、为什么需要 SMC-R ?

因为 RDMA 应用基于 verbs 接口实现,已有的 TCP socket 应用若想使用 RDMA 技术改造成本高;

4、SMC-R 有什么优势?

SMC-R 完全兼容 socket 接口,模拟 TCP socket 接口行为。使 TCP 用户态应用程序能够透明使用 RDMA 服务,不做任何改造就可以享受 RDMA 带来的性能优势。

5、SMC-R 的架构特点?

SMC-R 架构具有 "hybrid" 的特点,融合了 RDMA 流与 TCP 流。SMC-R 协议使用 RDMA 网络传输应用数据,使用 TCP 流确认对端 SMC-R 能力、帮助建立 RDMA 链路。

参考引用说明:

[1]:https://network.nvidia.com/pdf/prod_software/RDMA_Aware_Programming_user_manual.pdf

[2]:GitHub - ibm-s390-linux/smc-tools: Tools for use with AF_SMC sockets

原文链接

本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511100.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技术引领未来, IDC TechScape中国数据安全发展路线图首发

2022年8月26日&#xff0c;IDC 2022 CSO全球网络安全峰会&#xff08;中国站&#xff09;在上海隆重开幕&#xff0c;会上首次发布《IDC TechScape&#xff1a;中国数据安全发展路线图&#xff0c;2022》。报告认为&#xff0c;帮助用户构建全方位数据安全治理体系将成为大趋势…

DataV 3D 平面地图 2.0 焕新上线

简介&#xff1a;DataV3月&#xff0c;3D平面地图2.0现已上线~ 3D 平面地图 2.0 现已上线~ 让我们来看看更新了哪些功能吧&#xff01; 01 交互升级&#xff0c;省市区自由下钻 自带行政区域数据&#xff0c;无需配置&#xff1a; 甚至&#xff0c;可以通过「蓝图编辑器」实…

PolarDB-X 发布 2.1.0 版本,Paxos 开源

简介&#xff1a;2022年4月1号&#xff0c;PolarDB-X 正式开源X-Paxos&#xff0c;基于原生MySQL存储节点&#xff0c;提供Paxos三副本共识协议&#xff0c;可以做到金融级数据库的高可用和容灾能力&#xff0c;做到RPO0的生产级别可用性&#xff0c;可以满足同城三机房、两地三…

828成首个B2B企业节,华为联合3万生态伙伴助力中小企业数字化转型

中小企业既是市场的主体&#xff0c;也是保就业的主力军。截至2021年末&#xff0c;中小企业在全国企业中数量占比已超过99%&#xff0c;并贡献了80%的就业机会。 为助力中小企业创新发展&#xff0c;8月28日&#xff0c;华为联合3万家生态伙伴&#xff0c;共同发起了全国首个…

阿里云贾扬清:数据湖正成为企业数据应用创新标配

简介&#xff1a;全球数据湖峰会开幕 数字经济蓬勃发展的今天&#xff0c;越来越多的用户已经从“上好云”&#xff0c;走到了“用好云”的这个阶段。如果说在“上好云这个阶段&#xff0c;大多数用户关心的是如何在成本上获得更好的回报。那么在上好云这个阶段&#xff0c;更…

强强联手,NVIDIA 与 Ampere Computing 重磅推出云原生服务器平台

随着 5G、元宇宙的兴起&#xff0c;云游戏再一次迎来爆发。据 IDC 与中国信息通信研究院联合发布的《全球云游戏产业深度观察及趋势研判&#xff08;2022年&#xff09;》显示&#xff0c;2021年&#xff0c;中国地区云游戏市场收入已达 40.6 亿元&#xff0c;同比增长 93.3%。…

有了这款工具,定位线上问题事半功倍|云效工程师指北

简介&#xff1a;有了这款工具&#xff0c;定位线上问题事半功倍&#xff0c;程序员在日常工作中经常会遇到一些线上问题需要排查&#xff0c;本文的主人公程序员小张也不例外。但排查的过程却时常令他困扰不已。让我们一起看看他遇到了哪些问题&#xff0c;又是怎么解决的。 …

云原生时代如何用 Prometheus 实现性能压测可观测-Metrics 篇

简介&#xff1a;可观测性包括 Metrics、Traces、Logs3 个维度。可观测能力帮助我们在复杂的分布式系统中快速排查、定位问题&#xff0c;是分布式系统中必不可少的运维工具。 作者&#xff1a;拂衣 什么是性能压测可观测 可观测性包括 Metrics、Traces、Logs3 个维度。可观测…

基于 KubeVela 的机器学习实践

简介&#xff1a;本文主要介绍如何使用 KubeVela 的 AI 插件&#xff0c;来帮助工程师更便捷地完成模型训练及模型服务。 作者&#xff1a;KubeVela 社区 在机器学习浪潮迸发的当下&#xff0c;AI 工程师除了需要训练、调试自己的模型之外&#xff0c;还需要将模型进行部署上…

Gartner发布2022年云平台服务技术成熟度曲线,iPaaS、低代码将达到成熟期

Gartner 2022年云平台服务技术成熟度曲线显示&#xff0c;集成平台即服务&#xff08;iPaaS&#xff09;和低代码应用平台&#xff08;LCAP&#xff09;技术将在不到两年的时间内达到生产成熟期&#xff08;Plateau of Productivity&#xff09;。 编辑 | 宋慧 供稿 | Gartner…

贼喊捉贼?“盗版”软件开发者向 GitHub 投诉被侵权

整理 | 于轩 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;拥有超过2亿个代码存储库&#xff0c;由8000多万用户共享&#xff0c;GitHub已然成为世界上最大和最先进的开发平台。 与其他托管用户生成内容的平台一样&#xff0c;这个庞大的代码库经常会接到版权…

基于 Serverless 架构的头像漫画风处理小程序

简介&#xff1a; 当一个程序员想要个漫画风的头像时... 前言 我一直都想要有一个漫画版的头像&#xff0c;奈何手太笨&#xff0c;用了很多软件 “捏不出来”&#xff0c;所以就在想着&#xff0c;是否可以基于 AI 实现这样一个功能&#xff0c;并部署到 Serverless 架构上让…

异动分析技术解决方案—异动归因之指标拆解

简介&#xff1a;归因的方法有多种&#xff0c;这篇文章的重点是指标拆解&#xff0c;也是我们做业务分析时最常用到的方法。我们的目的是解放人力&#xff0c;将指标拆解实现自动化&#xff0c;一方面可以加快业务迭代速度&#xff0c;快速定位问题&#xff1b;另一方面可以对…

阿里巴巴云原生混部系统 Koordinator 正式开源

简介&#xff1a; 脱胎于阿里巴巴内部&#xff0c;经过多年双 11 打磨&#xff0c;每年为公司节省数十亿的混部系统 Koordinator 今天宣布正式开源。通过开源&#xff0c;我们希望将更好的混部能力、调度能力开放到整个行业&#xff0c;帮助企业客户改进云原生工作负载运行的效…

足不出户,确保交付——独家交付秘籍(第二回)

简介&#xff1a;在后疫情时代&#xff0c;遇到无法出差、无法访客时&#xff0c;如何保障交付按时保质的进行&#xff0c;做好运维质量的保障&#xff0c;从而不影响企业整体营收&#xff0c;已成为我们生死攸关的难题。小锤在遇到无法只通过远程就完成项目交付验收&#xff0…

如何使用 PTS 快速发起微服务压测

简介&#xff1a;本文讲阐述什么是微服务架构、微服务架构对系统稳定性带来的影响&#xff0c;以及用性能测试验证稳定性的必要性、用户进行微服务压测的痛点和 PTS 的独特优势、云上使用 PTS 快速发起微服务压测的步骤&#xff0c;以及压测完成后排查分析相关问题的 Tips。 作…

一首让计算机崩溃的歌曲!

大家好&#xff0c;我是轩辕。想象一个场景&#xff1a;手机里播放一首音乐&#xff0c;然后你带着手机从一台电脑旁经过&#xff0c;电脑就被你弄崩溃死机了。这是不是有点像电影里的桥段&#xff1f;一年前&#xff0c;我写过一篇文章&#xff1a;电脑关机了&#xff0c;黑客…

OpenYurt 之 Yurthub 数据过滤框架解析

简介&#xff1a;OpenYurt 是业界首个非侵入的边缘计算云原生开源项目&#xff0c;通过边缘自治&#xff0c;云边协同&#xff0c;边缘单元化&#xff0c;边缘流量闭环等能力为用户提供云边一体化的使用体验。在 Openyurt 里边缘网络可以使用数据过滤框架在不同节点池里实现边缘…

金融核心系统云原生转型的三个挑战、六个误区和四个步骤

嘉宾 | 马振雄出品 | CSDN云原生近年来&#xff0c;云原生技术发展如火如荼&#xff0c;IT系统云原生转型已成共识&#xff0c;留给各行各业的只是何时云原生、怎样云原生的时间和方式问题。金融行业作为各类转型历来的排头兵&#xff0c;在推进云原生转型上同样不逞多让。金融…

Java 定时任务技术趋势

简介&#xff1a;定时任务是每个业务常见的需求&#xff0c;比如每分钟扫描超时支付的订单&#xff0c;每小时清理一次数据库历史数据&#xff0c;每天统计前一天的数据并生成报表等等。 作者&#xff1a;黄晓萌&#xff08;学仁&#xff09; Java 中自带的解决方案 使用 Ti…