腾讯服务器操作系统,TencentOS-kernel

tencentos-logo.png

TencetOS Server kernel

TencentOS Server( 又名Tencent Linux 简称Tlinux) 是腾讯针对云的场景研发的 Linux 操作系统,提供了专门的功能特性和性能优化,为云服务器实例中的应用程序提供高性能,且更加安全可靠的运行环境。Tencent Linux 使用免费,在 CentOS(及发行版)上开发的应用程序可直接在 Tencent Linux 上运行,用户还可持续获得腾讯云的更新维护和技术支持。

支持平台

X86: 支持intel, AMD(包括ROME平台)。

ARM64: 支持热补丁,虚拟化。

主要特性

特性类型

特性内容

内核定制

基于内核社区长期支持的4.14.105版本定制而成,增加适用于云场景的新特性、改进内核性能并修复重大缺陷

容器支持

针对容器场景进行优化,提供了隔离增强和性能优化特性:meminfo、vmstat、cpuinfo、stat、loadavg, uptime, diskstats

Sysctl 隔离,如 tcp_no_delay_ack、tcp_max_orphans大量文件系统和网络的 BUGFIX

NVME IO按比例隔离

性能优化

计算、存储和网络子系统均经过优化,包括:优化 xfs 内存分配,解决 xfs kmem_alloc 分配失败告警优化网络收包大内存分配问题,解决 UDP 包量大时,占据过多内存问题限制系统 page cache 占用内存比例,从而避免内存不足影响业务的性能或者 OOM

其他特性

离线调度算法(BT)

进程防gdb

ARM64热补丁

pagecache limit

缺陷支持

提供操作系统崩溃后的 kdump 内核转储能力提供内核的热补丁升级能力

安全更新

Tencent Linux 会定期进行更新,增强安全性及功能

通过源代码编译内核rpm包

ARM64环境

安装gcc 8.2或者以上, 可自行编译gcc或者使用腾讯软件源的rpm包,腾讯软件源使用方式参见下面章节。

默认配置文件 package/default/config.default

通过以下步骤编译内核rpm

git tag 4.14.105-19-0008.beta10

cd package/defeault

./generate-rpms.sh -j jobs_num

debuginfo会包含在kernel-debuginfo包里,内核vmlinux默认释放到/boot目录,模块debuginfo释放到/usr/lib/debug/目录

通过腾讯云获取 TencentOs Server(Tlinux)

腾讯云在 云服务器控制台 提供了 Tencent Linux 公共镜像,您可通过下列方法获取并使用 Tencent Linux。

创建云服务器实例时,选择公共镜像,并选择 Tencent Linux 的相应版本。

操作详情请参见 创建实例。

已创建的云服务器实例,可通过重装系统将现有操作系统更换为 Tencent Linux。

操作详情请参见 重装系统。

通过腾讯软件源获取TencentOS Server软件安装包

软件源使用简介

TencentOS server使用腾讯软件源作为其yum服务,操作系统中已默认配置好软件源,如需安装软件,只需要使用yum即可在线安装。比如安装httpd,执行下面的命令:

# yum install httpd

TencentOS server的内核和用户态包的更新也会持续同步至腾讯软件源,如需升级系统,可执行下面的命令

# yum update

通过SCL源的方式安装使用高版本gcc的命令如下

# yum -y install tlinux-release-sclo(CentOS 7系统请使用yum -y install centos-release-scl-rh)

# yum -y install devtoolset-8-gcc

# scl enable devtoolset-8 bash

容器隔离增强

由于在docker容器中/proc下数据是通过mount bind host中proc得到的,而内核中proc文件系统大部分没有实现namespace功能,仅有pid和net实现了namespace,因此container中看到的proc诸多统计数据,例如/proc/meminfo ,/proc/stat等都是host的全局数据而非container对应的统计数据,这会导致用户在container中使用free,top,或者资源采集时等得到的是错误的数据。为了修正这个问题,使得业务在使用docker容器时可以有途径获得docker自身的统计状态,tlinux内核实现了对一些常用数据的隔离。

方案设计

常用的命令free、top、vmstat以及网管agent所涉及到的,目前已实现的隔离数据包括/proc/meminfo、/proc/stat、/proc/vmstat、/proc/loadavg、/proc/cpuinfo。

隔离方案如图所示

docker-isolation.jpg

tlinux内核在cgroup的memory,cpuset等子系统中分别添加对应的文件输出,然后由用户通过mount bind操作,将同名文件绑定到container的proc中。Mount bind操作可以在docker启动container的流程中添加。

例如:在memeory子系统对应的container目录中添加meminfo和vmstat文件。

docker_isolation_img1.jpg

在cpu子系统对应的container下实现cpuinfo,stat文件。

docker_isolation_img2.jpg

3. 文件接口说明

目前已实现的隔离文件列表如下:

/sys/fs/cgroup/cpuset/system.slice/docker-[id].scope目录下实现:

cpuset.stat, 对应/proc/stat

cpuset.cpuinfo, 对应/proc/cpuinfo

cpuset.loadavg, 对应/proc/loadavg

/sys/fs/cgroup/memory/system.slice/docker-[id].scope目录下实现:

memory.vmstat, 对应/proc/vmstat

memory.meminfo, 对应/proc/meminfo

/sys/fs/cgroup/cpuacct/system.slice/docker-[id].scope目录下实现:

cpuacct.uptime, 对应/proc/uptime, 包含两个字段,第一个字段为容器启动时间,第二个字段为系统空闲时间在容器启动之后的增量。

/sys/fs/cgroup/blkio/system.slice/docker-[id].scope目录下实现:

blkio.diskstats, 对应/proc/diskstats

Uptime隔离

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值