Unikernel实现DB+OS提高性能的原理是什么?

1个回答

写回答

超级大好人

2025-12-20 22:45

+ 关注

NIKE
NIKE

有人提及了UNIKErnel。tum有一篇文章,打算为云原生数据库(Cloud - Native DB)设计一个单内核(UNIKErnel),达成数据库(DB)与操作系统(OS)的协同设计。

这么做之后,性能有望得到较大提升。性能的提升一方面源于减少系统调用、内存管理和调度的成本,另一方面是能够充分利用硬件特性与功能。例如,现在很多高性能应用会使用spdk来操作nvme ssd,用dpdk操作高性能网络设备,这些操作接口都避开了内核。就nvme ssd而言,其高性能是通过堆砌多个通道,以并行方式实现的。传统数据库采用posix io进行日志和缓冲区管理,不能发挥现代nvme ssd的特性,与nvme所能提供的极限性能相差甚远。要是把这些机制都在一个uNIKErnel中实现,数据库就能直接得到这些优势,从而进行一些特殊优化。UNIKErnel用于实现数据库(DB)与操作系统(OS)的整合可提升性能。不过,将MySQL或者PostgreSQL移植到UNIKErnel,虽可行但意义不大。似乎性能提升有限,主要是减少了系统调用开销而带来的提升。实际上,利用现代硬件提升性能,很大程度上是通过抛开posix api和线程/进程模型、采用绕过操作系统(OS)的方式达成的。还有一种做法,就像前文提到的那样,进行数据库(DB)和操作系统(OS)的协同设计。这样一来,多数OS和DB的功能都得削减,针对新硬件模型设计I/O、CPU调度模型。

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号