You need to enable JavaScript to run this app.
文档中心
云服务器

云服务器

复制全文
下载 pdf
veLinux镜像
veLinux 2.0系统特性说明
复制全文
下载 pdf
veLinux 2.0系统特性说明
本文主要介绍veLinux 2.0操作系统中,内核、系统组件、系统配置和优化等关键特性。
内核
veLinux 2.0内核基于内核社区长期支持(LTS)的5.15版本定制而成,且未来将支持6.6版本内核,对内存、网络、I/O、文件系统等模块进行了缺陷修复、性能增强并引入了适用于云应用的新特性。
Kernel 5.15
  • 新增eBPF(extended Berkeley Packet Filter)通用helper函数,支持通过模块添加eBPF功能。
  • 新增对Intel® SPR/EMR处理器的i10mn EDAC的Drivers(驱动)支持,并提供对HBM内存的EDAC支持。
  • 新增对EMR平台的特性支持(RAPL、Idle、Uncore Frequency等)。
  • 新增对fast REP的支持以及对Split Lock、P-state的增强。
  • 新增QAT(QuickAssist Technology)设备对SVM(Secure Virtual Machine)的支持。
  • 新增Intel® RDT(Resource Director Technology)对SNC(Sub-NUMA Clustering)的隔离支持。
  • 新增TCPDirect(使用dma-buffer)的支持,即Device Memory TCP,可减少报文拷贝,极大提升报文吞吐。
  • 新增AMD QoS特性,包括SMBA (Slow Memory Bandwidth Allocation) 和BMEC(Bandwidth Monitoring Event Configuration),提供新型CXL内存的资源QOS隔离。
  • 新增PSI(Pressure Stall Information)特性,针对cgroup(Control Groups)级别的CPU Stall增加了FULL模式,优化了memory stall FULL模式的实现和进程阻塞切换的开销。
  • 优化冗余的HugeTLB(Huge Transparent Large Pages),降低内存开销。
  • 优化了cgroup(Control Groups)Slab Memory Controller。
  • 支持VDUSE设备模拟框架,能够为容器和虚机提供统一的I/O虚拟化层。
  • 修复CVE-2023-5717、CVE-2023-2176、CVE-2023-35001、CVE-2023-31248、CVE-2023-2007等重要CVE漏洞。
Kernel 6.6
  • 支持EEVDF(Enhanced Virtual Deadline Fairness)的调度器算法,旨在解决完全公平调度(CFS)中存在的一些问题,特别是在任务延迟方面缺乏保障的情况下。EEVDF会考虑任务的延迟需求,能够提升任务的时延保证,同时不降低系统的整体吞吐量。
  • 支持Folios新的内存管理机制,以提升内存管理性能。
  • 在用户态支持Intel® Shadow Stack特性,来保证用户态栈被破坏时触发故障保护,也有助于问题和故障的提前发现和定位。
  • 在低队列深度(low queue depth)的 I/O 场景下,IO_uring的Direct I/O性能有了较大提升。
  • 支持cachestat syscall来查询具体文件的Pagecache的一些统计信息(如cache、dirty、writeback等)。
  • 支持用户空间(User Space)的Trace event功能。
  • 细化进程内存大锁(Process Big Memory Lock)到VMA(per Virtual Memory Area,per-VMA)级别,可大幅度提升大规格多CPU系统并发扩展场景下的内存管理性能,降低锁竞争开销。
  • 支持Rust语言编写的内核模块。
  • 支持MGLRU(Most Gapped Least Recently Used,最大间隔最近未使用)算法,提升内存回收管理的性能。
系统组件
自研组件
Atop
Atop是开源社区的一个性能监测工具,火山引擎平台在社区版本的基础上进行了定制开发。在veLinux 2.0中,Atop升级至2.8.1+velinux2,主要更新如下:
  • 支持LLC收集。
  • 支持pgin&pgout。
  • 补充tcpsock和udpsock 内存消耗。
  • 新增cgroup v2支持。
  • Supplement inflight I/O requests。
  • 通过-J xxx引入JSON输出,提供以JSON格式记录数据的能力。
  • 为每个进程新增nvcsw和nivcsw两种上下文切换计数方式。
  • 为空闲线程引入单独的计数器。
  • 为容器添加RDELAY/BDELAY。
kdump-tools
配合veLinux 2.0的内核使用,内核发生kernel panic之时(硬件故障或内核软件issue)第一内核切换到第二内核,处理panic现场,记录关键信息。配合内核dbg包,支持gdb调试和追溯。在velinux 2.0中,kdump-tools版本号为 2:1.8+velinux2。主要具有如下特性:
  • 通过过滤无关的内核cmdline、替换systemd等方法来降低kdump内核中的内存使用,从而防止机器在dump内存的过程中出现OOM(out of memory)的错误。
  • 检测内存等硬件故障,提前结束dump过程,防止再次出现内核错误。
  • 提前dump dmesg,防止在dump内存失败的情况下,获取不到dmesg的信息。
  • 在kdump侧实现crashkernel = auto功能,根据机器内存自动设置预留给kdump的内存的大小,且无需对内核做定制化修改。
OpenJDK
支持openjdk-velinux-8、openjdk-velinux-11、openjdk-velinux-17三个版本。具有如下特性:
  • 针对大数据数据存储压缩场景,veLinux的OpenJDK集成了优化的zlib实现,基于GZIP的数据压缩、解压缩性能会得到有效改进,详细数据可查看zlib
  • 针对Full GC(Full Garbage Collection,全垃圾回收)延时较长的问题,移植了G1 Parallel Full GC(Garbage-First Parallel Full Garbage Collection,垃圾优先并行全面垃圾回收)到jdk-8中,有效缓解了Full GC带来的长延时问题。
LXCFS
LXCFS(Linux Containers Filesystem)是一个用于Linux容器的文件系统代理,火山引擎平台基于社区5.0.4版本,增加per cgroup模拟numa拓扑,提供OOM Killer(Out of Memory Killer)保护和remount机制。
zlib
zlib是开源社区的一个无损压缩的基础库,火山引擎平台在社区版本madler/zlib上进行了一些性能优化。velinux 2.0中升级至 1:1.2.11.dfsg-1+velinux2u1版本。具有如下特性:
  • 支持压缩过程中哈希函数的向量化指令,并且重构了字符串匹配的流程。
  • 增强解压过程中长字符串拷贝效率。
  • 支持crc32/adler32等校验码的向量化指令。
  • 修复CVE-2018-25032漏洞。
压缩和解压缩性能对比:
base-files
更新至12.4+base2u1版本,变更/etc/os-release文件内容,适配velinux系统标识。
重点开源组件
核心工具
glibc
glibc(GNU C Library,GNU C库)是Linux系统中最基本和最重要的C语言函数库之一。火山引擎平台采用2.36版本,提供更高的性能和可靠性体验,主要具有如下特性:
  • AArch64架构提供了包括BTI(branch target identification) 和PAC-RET(pointer authentication for return addresses) 在内的分支保护安全加固。
  • 内存分配相关接口通过PTRDIFF_MAX设置了上限,避免潜在的溢出误申请过大内存的行为,提高了可靠性。
  • 新增异步信号安全函数fork族函数_Fork,用以满足用户的异步信号安全需求。
  • Unicode编码支持到14.0.0,支持编码范围更广。
  • 提供新的 tunable 环境变量满足功能和性能上的灵活运用,具体为:
  • glibc.pthread.stack_cache_size配置线程栈cache大小。
  • glibc.rtld.dynamic_sort选择DSO排序算法。
  • glibc.malloc.hugetlb通过与内核的大页配置相配合,提高系统性能。
  • 支持LoongArch CPU。
Binutils
Binutils是GNU项目的一组开源的二进制工具,用于创建、操作和分析二进制文件。火山引擎平台采用2.40版本,提供更可靠的二进制程序的创建和管理工具。主要特性如下:
  • 支持使用zstd对调试节进行压缩。
  • 新增多种实用便捷选项,提升工具的可用性。
  • elfedit/readelf支持LAM_U48和LAM_U57。
  • 需要C99编译器和库支持。
  • 新增对LoongArch指令集的支持。
util-linux
util-linux是一个包含各种Linux实用工具的项目,包含了大量的实用工具。火山引擎平台采用2.38.1版本,提供较新的Linux运行必须的各种系统程序。
dpkg
dpkg(Debian Package)是一个用于管理Debian系统上软件包的工具。火山引擎平台采用1.21.22版本,提供更安全的Linux软件包管理器。
APT
APT(Advanced Package Tool)是一个基于dpkg的高级软件包管理工具。火山引擎平台采用2.6.1版本,提供更高效可靠的包管理前端工具。
启动与引导
systemd
systemd是一个系统和服务管理器。火山引擎平台采用252版本,默认使用cgroup v2(Control Group Version 2),提供了更可靠的系统和服务管理器。主要特性如下:
  • sd-boot从原来的PCR 8升级到支持TPM PCR 12。
  • 支持 cgroup v2更多特性。
  • 支持 cgroup v2 BPF相关逻辑。
  • 支持 GPT Discoverable Partitions Specification 相关特性。
  • 新增每次升级时触发所有设备udev规则。
  • 选项CPUAffinity=支持numa。
  • udev规则支持PCI和USB设备的auto-suspend。
  • 新增userdb相关特性。
  • 新增工具systemd-network-generator、systemd-sysext、systemd-repart等来控制系统拓展层级、更好地支持GPT等。
  • 新增网络设备命名规则“keep”。
  • 系统资源限制 RLIMIT_NOFILE 设置为 1024(soft)和 4096(hard)。
  • 将 /dev 的最大默认 inodes 数从64K提高到1M, 将 /tmp 的最大默认 inodes 数从400K提高到1M。
  • 现在在 x86_64 上偏向使用 RDRAND 指令集。
GRUB2
GRUB2(GNU GRand Unified Bootloader 2)是GNU项目开发的一款多操作系统引导加载程序。火山引擎平台采用2.06版本,具有如下特性:
  • 支持Virtual LAN。
  • ARM支持EHCI、DMA、DTB驱动支持。
  • 支持UUID、PARTUUID。
  • 支持包含Open Firmware text representation的NVMe设备。
  • 添加对F2FS(flash-friendly file system)的支持。
  • 支持稀疏节点的文件系统。
  • 支持RAID-5、RAID-6或RAID1C34的文件系统,读取/启动/恢复。
  • 全架构支持TPM(可信平台模块)。
  • 支持RISC-V架构。
编译与开发
GCC
GCC(GNU Compiler Collection)是一个由GNU项目开发的开源编译器集合,用于编译和构建各种编程语言的程序。火山引擎平台采用12.2.0版本,提供更好的C和C++的支持,同时持续改进RISC-V和LoongArch CPU架构的支持。具有如下特性:
  • 编译优化。
  • 升级编译器版本。
  • 反馈编译优化,基于业务运行特征实施函数重排/基本块重排,贴合业务特性提升效果。
  • LTO链接优化。
  • 支持ShadowCallStack sanitizer(仅 aarch64)。
  • 默认编译的C++版本选项为17,实现一部分C++ 23特性。
  • 支持armv9,支持LoongArch。
GDB
GDB(GNU Debugger)是一个开源的、功能强大的调试器,用于调试各种编程语言的程序。火山引擎平台采用13.1版本,提供最新版本的调试能力。主要特性如下:
  • 支持多种架构,包括LoongArch、openrisc、C-SKY。
  • LoongArch GNU/Linux现已添加浮点支持。
  • 默认支持多线程符号表加载。
  • 不再支持python2,对python api增强。
Vim
Vim是一款开源的、高度可定制的文本编辑器,是Vi编辑器的改进和扩展版本。火山引擎平台采用9.0版本,支持一种新的脚本语言Vim9script。
Shell
Shell是操作系统提供的一个命令行解释器,用于与操作系统内核进行交互和执行用户命令。火山引擎平台采用bash 5.2.15版本。主要特性如下:
  • 新增可加载内置命令:asort、mktemp、accept、mkfifo、csv、cut/lcut、seq等。
  • shell现在尝试在退出时取消链接所有FIFO,无论消费过程是否已经完成。
  • bind -x现在支持不同编辑模式的不同绑定和键盘映射。
  • 将历史记录写入syslog现在可以处理比syslog max更长的消息通过使用序列号写入多条消息来确定长度。
  • bash-completion
  • 对nmap、openssl、ssh-keygen、gcc等命令提供更多的支持。
  • 新支持gssdp-discover、xvfb-run、influx、dmypy、carton、scrub、ecryptfs-migrate-home、chmod、json_xs等。
  • 优化丰富了测试模块。
Python
火山引擎平台采用Python3的3.11.2版本,不再支持Python2。主要特性如下:
  • Python 3.11比Python 3.10快10 ~ 60%。
  • 新增tomllib模块,支持解析标准库中的TOML。
  • 新增多种类型提示。
  • 新增一种标准异常类型ExceptionGroup,并引入新的语法 except*,允许程序同时触发和处理多个不相关的异常。
  • 新增细粒度Traceback错误信息,增强调试能力(来自于PEP 657)。
Perl
Perl是一种高级的、通用的、解释型的编程语言。火山引擎平台采用5.38.2版本。主要特性如下:
  • 新增Unicode 15.0支持。
  • 新增浮点异常信号支持。
  • 新增可变长的后行断言 (lookbehind) 支持。
  • 新增builtin核心模块。
  • 新增try/catch/finally异常处理机制。
  • C11 TLS特性支持,线程化perl构建场景性能提升。
  • 特定场景下标量创建速度提升30%。
  • 语言环境操作线程安全支持。
  • Hash表key分配性能提升。
Web服务器
Apache
Apache是一个开源的、跨平台的Web服务器软件。火山引擎平台采用2.4.57版本。主要特性如下:
  • 新增modules:mod_socache_redis、mod_systemd。
  • 新增工具:fcgistarter、htcacheclean、rotatelogs、htpasswd、htdbm,提升便捷性。
  • 功能增强:毫秒设置KeepAliveTimeout、MPM异步支持增强。
Nginx
Nginx是一个开源的、高性能的、轻量级的Web服务器和反向代理服务器软件。火山引擎平台采用1.22.1版本。主要特性如下:
  • 增加对Openssl 3.0的支持。
  • 改进http/2性能。
  • 安全加固:修复CVE-2022-41741、CVE-2022-41742、CVE-2021-23017。
数据库
MariaDB
MariaDB是一个开源的关系型数据库管理系统(RDBMS)。火山引擎平台采用10.11.6版本。主要特性如下:
  • 新增授权行为:GRANT to PUBLIC。
  • 新增UUID数据类型。
  • InnoDB性能改进、gap锁修复、改进redo log。
  • 提升Docker时区库初始化速度。
  • 支持容器中健康检查。
  • 跳过InnoDB缓冲池加载/转储,提升Docker启动/初始化速度。
  • 修复CVE-2023-22084、CVE-2022-47015。
PostgreSQL
PostgreSQL是一个开源、跨平台的关系型数据库管理系统(RDBMS)。火山引擎平台采用15.6版本。主要特性如下:
  • 支持SQL MERGE命令。
  • 通过指定列列表和行筛选条件的能力,在逻辑复制发布中选择性发布表内容。
  • 更多压缩选项,包括支持Zstandard (zstd) 压缩。这包括支持在 pg_basebackup期间在服务器端执行压缩。
  • 支持使用JSON格式的结构化服务器日志输出。
  • 性能改进,特别是内存中和磁盘上的排序。
  • 修复CVE-2024-0985。
安全相关
GnuPG 2
GnuPG 2(GNU Privacy Guard 2)是开源的加密软件套件GunPG新版本,用于提供数据加密和数字签名功能。火山引擎平台采用2.2.40版本。主要特性如下:
  • 支持使用OCB或EAX的AEAD加密模式。
  • 支持DFN颁发的密钥。
  • 支持Telesec ESIGN应用程序。
  • 使用TPM 2.0来保护私钥。
  • 提升gpg加密,解密等过程的速度。
  • 使用管道进行解密,避免内存耗竭。
  • 支持使用openpgp进行ssh-agent身份验证。
  • 强制为ed448和cv448算法创建版本5密钥。
  • 支持多种类型的智能卡。
OpenSSL
OpenSSL是一个开源的加密和安全套接字库,提供了各种加密算法、协议和工具,用于保护网络通信、数据传输和数据存储的安全性。火山引擎平台采用3.0.8版本。主要特性如下:
  • 支持内核TLS协议(KTLS)。
  • 引入“提供者”(Provider)概念,支持以编程方式或配置文件指定用于给定应用程序的算法实现。
  • 基于SHA1的签名证书将不被认证client和server信任。
  • 修复CVE-2022-3786、CVE-2022-3602、CVE-2022-3786、CVE-2023-0401等漏洞。
OpenSSH
OpenSSH(Open Secure Shell)是一个用于安全远程登录的开源实现,它提供了加密的通信会话,包括远程登录、文件传输和端口转发等功能。火山引擎平台采用9.2 p1版本,提供更大型的安全隧道功能、多种认证方法和更安全的SSH协议。
最近更新时间:2025.08.19 14:21:06
这个页面对您有帮助吗?
有用
有用
无用
无用