Higress 全新 Wasm 运行时,性能大幅提升

简介: 在 Higress 将 Wasm 运行时从 V8 替换为 WAMR 后,Wasm 插件的性能对比之前又有了大幅提升。

本文介绍 Higress 将 Wasm 插件的运行时从 V8 切换到 WebAssembly Micro Runtime (WAMR) 的最新进展。通过切换到 WAMR 并开启 AOT 模式大幅提升了 Wasm 插件性能,从我们的测试中大部分插件平均有 50% 左右的性能提升,一些逻辑复杂的插件性能直接翻倍。

Higress Wasm 插件
Higress 作为首个推出 Wasm 扩展能力的云产品网关,从 2022 年就上线了 Wasm 插件市场,我们使用 Wasm 技术作为主要的网关扩展手段,是因为它能为用户带来的独特价值:

  1. 工程可靠性:相比 Lua 等动态类型+解释执行语言,Wasm 可基于多种静态类型语言编译,可以做编译期检查,避免运行时出错把生产环境变成代码捉虫现场。

  2. 沙箱安全性:Wasm 插件运行在严格的虚拟机沙箱环境内,有自己的独立内存空间,不能直接访问外部内存,可以避免插件代码 bug 导致遭到缓冲区溢出、远程代码执行等攻击。

  3. 热更新:Higress 基于 Envoy 的 xDS 机制,插件二进制和配置都可以独立热更新,不会引起连接断开,对 WebSocket/gRPC 等业务场景更友好。

Higress 站在 Istio/Envoy 的肩膀上,为 Wasm 插件机制增加了三个核心能力:

  1. 域名/路由级生效:Istio/Envoy 自带的全局生效方式难以满足大部分场景需求,而基于 Higress Wasm sdk 开发的插件可以做到这点,同时编译出的插件也跟 Istio/Envoy 生态兼容(仅全局生效)。

  2. Redis 访问能力:提供了访问 Redis 的 Host Function,插件代码可以基于 Redis 实现多种能力,例如全局限流,Session 状态管理等。

  3. 虚拟机自愈机制:开发的插件逻辑中若出现了空指针访问、数组越界、内存泄漏等问题,将被运行时系统捕获,不会导致网关崩溃;Higress 支持 Wasm 模块异常后自动重启,并能在快速止血的同时,通过告警通知用户出现问题的代码堆栈。

从 Higress 的企业用户看 Wasm 插件技术的采用周期,已经跨域过鸿沟,步入早期采用大众阶段,核心的驱动力是性能红利带来的成本下降。用户使用 Wasm 插件来开发满足自己特定业务需求的能力,对于鉴权、加解密、会话管理等逻辑在网关完成计算资源的卸载,无需后端服务处理,从而全局降低计算成本。

性能数据上,之前发表的这篇文档《通过Higress Wasm插件3倍性能实现Spring Cloud Gateway功能》反馈了过去的性能成果。

在 Higress 将 Wasm 运行时从 V8 替换为 WAMR 后,Wasm 插件的性能对比之前又有了大幅提升。

相关文章
|
17天前
|
数据采集 Cloud Native Java
10 倍性能提升, GraalVM 应用可观测实践
本文介绍了 GraalVM 静态编译技术在云原生环境下的应用:ARMS 发布了支持 GraalVM 应用的 Java Agent 探针,可为 GraalVM 应用提供开箱即用的可观测能力。同时,文章还提供了使用 ARMS 对 GraalVM 应用进行可观测的详细步骤。
|
6月前
|
传感器 JavaScript 算法
Higress 全新 Wasm 运行时,性能大幅提升(二)
WAMR 是最早由 Intel 团队开发,在字节码联盟(Bytecode Alliance,面向 Wasm 软件生态的非盈利组织)下的一个广受欢迎的 WebAssembly 运行时开源项目。
124 2
|
3月前
|
Prometheus 监控 Cloud Native
使用 Jenkins 监控和优化构建性能
【8月更文第31天】在软件开发的过程中,构建性能直接影响着开发效率和团队的生产力。一个快速、可靠的构建流程可以显著加快迭代速度,减少等待时间,使团队能够更快地响应变化。Jenkins 作为一款广泛使用的持续集成/持续交付(CI/CD)工具,提供了丰富的功能来帮助开发者监控和优化构建性能。本文将探讨如何利用 Jenkins 的内置工具和外部工具来监控构建性能,并提出一些具体的优化方案。
293 0
|
3月前
|
并行计算 算法 调度
自研分布式训练框架EPL问题之提高GPU利用率如何解决
自研分布式训练框架EPL问题之提高GPU利用率如何解决
|
5月前
|
缓存 PHP 数据库
提升PHP应用性能的关键技巧与最佳实践
在当今数字化快速发展的环境中,优化PHP应用程序的性能是开发人员不可忽视的重要任务。本文将探讨一些关键的技巧和最佳实践,帮助开发人员有效提升PHP应用的性能和响应速度。从代码优化到服务器配置,我们将深入分析如何在不同层面上优化PHP应用程序,以提供更好的用户体验和更高的效率。 PHP作为一种广泛应用于Web开发的编程语言,其性能优化对于保持应用的稳定性和响应速度至关重要。下面是几个关键的技巧和最佳实践,可以帮助开发人员提升PHP应用的性能。
55 2
|
5月前
|
边缘计算 安全 开发工具
探索未来计算的可能性:Wasmer — 高性能WebAssembly运行时
探索未来计算的可能性:Wasmer — 高性能WebAssembly运行时
209 2
|
6月前
|
NoSQL JavaScript 算法
Higress 全新 Wasm 运行时,性能大幅提升
本文介绍 Higress 将 Wasm 插件的运行时从 V8 切换到 WebAssembly Micro Runtime (WAMR) 的最新进展。
54978 12
|
6月前
|
人工智能 监控 开发者
阿里云PAI发布DeepRec Extension,打造稳定高效的分布式训练,并宣布开源!
阿里云人工智能平台PAI正式发布自研的 DeepRec Extension(即 DeepRec 扩展),旨在以更低成本,更高效率进行稀疏模型的分布式训练。
|
4月前
|
缓存 监控 测试技术
优化PHP应用性能的关键技巧与实践
提升PHP应用性能是开发者关注的重点之一,本文探讨了几种有效的优化技巧和实际应用策略,包括缓存策略的选择、代码优化建议以及服务器端配置的最佳实践,旨在帮助开发者有效提升PHP应用的运行效率和响应速度。【7月更文挑战第2天】
33 0
|
6月前
|
消息中间件 缓存 负载均衡
构建高性能的后端服务:优化策略与实践
在当今互联网时代,构建高性能的后端服务至关重要。本文将深入探讨如何通过优化策略与实践来提升后端服务的性能。我们将从数据库优化、缓存策略、异步处理和负载均衡等方面展开讨论,帮助开发者构建出稳定、高效的后端架构。
153 2