十年磨一剑,veLinux深度解读
欢迎关注【字节跳动SYS Tech】。字节跳动SYS Tech 聚焦系统技术领域,与大家分享前沿技术动态、技术创新与实践、行业技术热点分析等内容。
veLinux简介
整体设计
- 向上提供更稳定、更安全、更易用的应用接口,并针对云原生、大数据、机器学习等场景提供针对性优化。
- 向下建立更准确、更完整、更高效的硬件抽象,并基于各种硬件类型融合整体解决方案对外输出。
丰富的版本
- 通用版本
- 快速启动版
- 等保认证版
- 兼容CentOS版
高性能内核
- 针对 HugeTLB 重度使用的云场景,提出 HVO (HugeTLB Vmemmap Optimization),消除 vmemmap 冗余数据,最大为用户 节省 HugeTLB 总量的 1. 5 6%。 这意味着 1024 GB 的服务器,最大能够节省约 16 GB 的内存。
- Dying memory cgroup 作为容器场景下一个显著的内存占用问题,极端情况下占用上百 GB 内存。针对此问题,提出专项优化方案,减少 dying memory cgroup 发生的概率以及优化其容器部署密度。极端情况下, 内存占用减少 80%。
- PSI(Pressure Stall Information)是用于评估系统资源压力的主要指标之一。PSI 在实际生产环境中 CPU 占用过高,veLinux Kernel 对其优化并 降低 了 10% 的 CPU 使用,同时提出 PSI CPU FULL 指标,更方便量化和展示容器之间 CPU 资源竞争。
- VDUSE(vDPA Device in Userspace) 是字节跳动自主研发的 面向云原生场景的下一代高性能设备虚拟化框架,能够为容器和虚机提供统一的I/O虚拟化层。目前,在云原生场景下,容器或者安全容器(虚机)在使用分布式存储或者高性能RPC服务时,涉及的 I/O 数据平面比较庞杂,在运维和可维护性上也有所欠缺。且 业界现在并没有一个标准的技术方案,VDUSE 希望提供一个标准统一的技术方案,方便用户在用户态模拟磁盘、网卡等设备接入容器或者虚机。当部署在 veLinux 上的云原生应用希望访问自研的分布式存储服务时,通过 VDUSE,可以高效地开发一套高性能的用户态接入方案,供上述的云原生应用使用。
系统特性
稳定性
高性能
OpenJDK
- 针对大数据数据存储压缩场景,veLinux 的 OpenJDK 集成了优化的 zlib 实现,基于 GZIP 的数据压缩、解压缩性能会得到有效改进,详细数据请参考下方 zlib 章节 。
- 针对 Full GC 延时较长的问题,我们移植了 G1 Parallel Full GC 到 jdk-8 中,有效缓解了Full GC带来的长延时问题。
zlib
- 支持压缩过程中哈希函数的向量化指令,并且重构了字符串匹配的流程。
- 增强解压过程中长字符串拷贝效率 。
- 支持 crc32/adler32 等校验码的向量化指令 。
其他性能优势
安全性
- 及时修复 CVE 漏洞:CVE(Common Vulnerabilities and Exposures)是公共的安全漏洞列表,用于标准化识别已知网络威胁。为了方便用户更便捷地查看 CVE 更新情况,veLinux 官网发布了 CVE 安全中心,每周更新并修复 CVE 补丁。
- 入侵检测安全防护:得益于字节安全团队的技术支持,veLinux 提供入侵检测安全防护,底层采用安全团队自研的开源项目 Elkeid,主要通过收集主机层的信息来实现入侵检测、行为审计、攻击溯源、资产盘点、合规基线检测等能力,目前完整版本在字节跳动内部的部署规模已达到数百万量级,其稳定性、性能、数据采集能力、检测能力和溯源能力等均在内部得到实战验证。
- 通过等保三级认证:等保三级认证是由国家公安机关对各机构的信息系统安全等级保护状况进行的认证与评定。veLinux 目前已通过三级等保认证,这是国家对非银行机构的 最高级认证。这项安全认证资质已写入火山引擎云安全白皮书,为云上用户提供可靠的安全能力。
- 提供内核热补丁:快速修复在运行中机器的内核漏洞。内核热补丁是一种动态为内核打补丁的技术,可以在不重启系统的情况下,修复内核 BUG 或者 CVE 漏洞,在最大程度上减少系统服务中断时间,增加系统可用性。未来 veLinux 还将提供统一的补丁管理平台、以及补丁客户端的整套解决方案(内测中),通过该平台用户可以将热补丁批量下发至需要打补丁的机器,提高运维效率。
易用性
- 通过过滤无关的内核 cmdline、替换 systemd 等方法来降低 kdump 内核中的内存使用,从而防止机器在 dump 内存的过程中出现 oom 的错误。
- 检测内存等硬件故障,提前结束 dump 过程,防止再次出现内核错误。
- 提前 dump dmesg,防止在 dump 内存失败的情况下,获取不到 dmesg 的信息。
- 在 kdump 侧实现 crashkernel = auto 功能,根据机器内存自动设置预留给 kdump 的内存的大小,且无需对内核做定制化修改。
- 适配对 kdump 预留内存位置有特殊要求的硬件厂商。
- 稳定性增强 增加oom killer 保护、修复atopcct统计、限制日志存储总量防系统盘占满等功能。
- 远程分析 支持json格式数据传输到服务端,支持网页版atop及集群内数据聚合。
- 更多实用指标 NUMA维度的CPU及MEM指标统计与聚合、runqueue delay、compact_stall、allocastall、InCsumErrors等指标。
- 灵活使用 支持筛选Top N线程的监控数据,支持定制日志保留天数及存储位置。
- 终端 UI 优化 类htop,按照NUMA粒度,直观展示所有CPU和内存。达到纵览所有CPU负载,直观判断CPU绑核是否均衡等目的。
快速启动
灵活使用
云原生的特性
即将发布容器 OS版本
- 系统轻量化
- 只包含 Kubernetes Pods 运行所依赖的软件包和系统服务,缩短系统启动时间,精简操作系统。
- 根文件系统为 只读权限,只有 /etc和 /var 目录可写,以满足基础的系统配置需求。
-
- 系统维度升级回滚
lxcfs 组件优化
总结与规划

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
百度工程师教你玩转设计模式(适配器模式)
作者 | 北极星小组 在现实生活中,经常会遇到两个“对象” 因为接口不兼容而不能一起工作的场景,这时需要第三者进行适配,如:国内的充电线插头不一定适用国外的插座需要借助转接头、SD卡无法直接链接电脑需要借助读卡器、用直流电的笔记本电脑接交流电源时需要一个电源适配器等。 在软件设计中,需要开发的具有某种业务功能的组件在现有的组件库中已经存在,但它们与当前系统的接口规范不兼容,如果重新开发这些组件成本又很高,这时用适配器模式能很好地解决这些问题。 适配器模式(Adapter Pattern):是指将某个类的接口转化成客户端期望的另一个接口,主要目的是兼容性,让原本因接口不匹配不能工作的两个类可以协同工作。 △适配器示意图 适配器模式包含如下角色: Target:目标抽象类, 定义客户要使用的接口 Adapter:适配器类,将Adaptee的接口进行适配转换 Adaptee:适配者类,需要被转换接口的对象 Client:客户类,通过适配器接口Target去使用Adaptee的功能 △对象适配器 △类适配器 一、适配器模式在文档业务场景中的应用(对象适配器) 微软office文档有两种数据格式...
- 下一篇
ClickHouse 冷热分离存储在得物的实践
1. 业务背景 得物上一代日志平台的存储主要依赖于 ES。随着公司业务的高速发展,日志场景逐步产生了一些新需求,主要表现在:应用数量逐步增多,研发需要打印更多的日志定位业务问题,安全合规需要保留更长时间的日志。随着 Clickhouse 的应用广泛,我们了解到行业部分知名公司已经将日志平台逐步由 ES 迁移至Clickhouse,以此来获取更好的写入性能与高压缩比。因此我们与日志平台研发团队开始进行日志平台新存储的选型评估,本文会介绍我们如何通过 Clickhouse 的冷热分离存储替代 ES 的实施方案。 2. 前置介绍 2.1 ClickHouse 简介 ClickHouse 是一个用于联机分析( OLAP )的列式数据库管理系统( DBMS )。列式数据库更适合于 OLAP场景(对于大多数查询而言,处理速度至少提高了 100 倍),下面通过图片更有利于直观理解: 行式 图片来源: https://ClickHouse.com/docs/assets/images/row-oriented-d515facb5bffb48cbd09dc7d064c8816.gif# 列式 图片来源:...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6