Higress 全新 Wasm 运行时,性能大幅提升
内容提要
Higress最新将Wasm插件的运行时从V8切换到WAMR,通过开启AOT模式大幅提升性能。WAMR是一个广受欢迎的WebAssembly运行时开源项目,具有良好的平台适应性和优良的性能。Higress和WAMR将继续合作,带来更多实用的新特性。
延伸解读
性能提升的实测数据与规律
文章通过k6压测对比了V8和WAMR下多个插件的单请求平均附加延时。数据显示,bot-detect提升95%,hmac-auth提升36%,jwt-auth提升60%,jwt-logout提升66%,key-auth提升43%,oauth提升113%。整体来看,Wasm指令越复杂的插件,WAMR带来的性能提升越明显。这为读者评估迁移收益提供了具体参考。
WAMR性能优势的技术根源
WAMR性能提升主要源于三点:一是深度优化的预编译能力,将Wasm opcodes翻译为IR并生成指定平台机器码,运行时性能媲美native binary;二是高度优化的FFI,减少host与guest间类型转换和内存拷贝;三是智能感知硬件加速,如在X86平台利用GS寄存器实现segue算法,提升线性空间访问效率。这些机制共同降低了插件执行开销。
从V8迁移的动因与挑战
V8虽然JIT性能好,但项目复杂度高,Wasm实现与JS逻辑耦合,且Envoy社区对V8版本依赖停留在2022年,无法支持Wasm GC等新特性,升级风险高。此外V8客户端更重视JIT优化,AOT模式下性能提升有限。WAMR由Intel开发,采用C语言,支持多种运行模式,资源开销极低,可在100KB内存中运行实例,更适合网关场景。
未来功能与生态协作
Higress与WAMR团队合作,即将推出多项新特性:支持生成CPU火焰图、Crash后打印完整函数堆栈并通过addr2line定位源码行号、观测每个Wasm插件的CPU和内存占用、支持TypeScript编写Wasm插件。这些功能将进一步提升插件的可观测性和开发效率,读者可关注开源社区获取最新进展。
Q&A
Higress为什么将Wasm运行时从V8切换到WAMR?
Higress切换到WAMR是为了大幅提升Wasm插件的性能,开启AOT模式后,性能平均提升约50%。
WAMR相比V8有哪些优势?
WAMR具有高性能、低资源开销、良好的平台适应性和社区支持,支持多种运行模式,且在性能测评中表现优异。
Higress的Wasm插件提供了哪些核心能力?
Higress的Wasm插件提供了工程可靠性、沙箱安全性和热更新能力,同时增加了域名/路由级生效、Redis访问能力和虚拟机自愈机制。
WAMR如何提升Wasm插件的性能?
WAMR通过深度优化的预编译能力、高度优化的FFI和智能感知平台硬件加速能力来提升Wasm插件的性能。
Higress的Wasm插件技术采用周期处于什么阶段?
Higress的Wasm插件技术已进入早期采用阶段,核心驱动力是性能红利带来的成本下降。
未来Higress和WAMR将推出哪些新特性?
未来将推出支持生成CPU火焰图、完整函数堆栈打印、资源监测和使用TypeScript编写Wasm插件等新特性。