# veLinux特性说明 **Published by:** [Test](https://paragraph.com/@test-33/) **Published on:** 2022-01-28 **URL:** https://paragraph.com/@test-33/velinux ## Content veLinux特性说明更新时间:2021.09.13 19:54:46系统特性系统特性包含内核、系统组件、系统配置和优化等。内核veLinux kernel基于内核社区长期支持(LTS)的5.4版本定制而成,对内存、网络、I/O、文件系统等模块进行了缺陷修复、性能增强并引入了适用于云应用的新特性,例如:优化冗余的HugeTLB页,降低内存开销。增加ebpf通用helper函数,支持通过模块添加ebpf功能。优化了cgroup slab memory controller。VDUSE设备模拟框架。PSI特性:针对cgroup级别的CPU stall增加了FULL模式,优化了memory stall FULL模式的实现和进程阻塞切换的开销。系统组件字节跳动自研软件包,如下。atopatop是开源社区的一个性能监测工具,字节跳动在社区版本的基础上进行了定制开发,新增feature包括:支持筛选记录Top N线程的监控数据记录。支持JSON格式输出监控数据,提供多样化展示。避免crash后持续写旧文件导致无效写入。支持定制日志保留天数。kdump-tools配合veLinux 5.4.56版本内核使用,内核发生kernel panic之时(硬件故障或内核软件issue)第一内核切换到第二内核,处理panic现场,记录关键信息。配合内核dbg包,支持gdb调试和追溯。支持上报服务端,配合监控服务使用,提供内核panic的准实时监控报警功能。systemd修复了journald重启时日志丢失的问题。pciutils提供了正确读取和显示PCI Gen 4 16GT/s速率的支持。zlibzlib是开源社区的一个无损压缩的基础库,字节跳动在社区版本madler/zlib上进行了一些性能优化。支持压缩过程中哈希函数的向量化指令,并且重构了字符串匹配的流程。增强解压过程中长字符串拷贝效率。支持crc32/adler32等校验码的向量化指令。压缩和解压缩性能对比:配置优化基于字节海量业务场景,为了高并发、低时延等业务需求,对内存、文件系统、网络、安全等方面的系统配置进行了深度优化。网络高并发 配置项值说明net.core.netdev_max_backlog16384最大积压包的个数net.core.somaxconn16384最大积压监听socket的个数net.ipv4.tcp_max_syn_backlog16384最大积压SYN同步包请求的个数net.ipv4.ip_local_port_range10000 65535本地最小和最大端口的限制net.ipv4.tcp_max_orphans2097152孤立连接的最大数量net.ipv4.tcp_max_tw_buckets1048576总timewait数net.ipv4.tcp_max_orphans2097152孤立连接的最大数量net.ipv4.tcp_max_tw_buckets1048576总timewait数低时延 配置项值说明net.core.rmem_max16777216最大socket读buffernet.core.wmem_max16777216最大socket写buffernet.ipv4.tcp_rmem4096 87380 33554432TCP读buffer的最小/默认/最大值net.ipv4.tcp_wmem4096 65536 33554432TCP读buffer的最小/默认/最大值net.ipv4.tcp_slow_start_after_idle0TCP连接在空闲后不进入slow startnet.ipv4.tcp_fastopen3client和server都开启fastopennet.ipv4.tcp_fin_timeout15FIN_WAIT_2状态的最大时长网络安全 配置项值说明net.ipv4.ip_forward0禁止网络端口间的IP转发net.ipv6.conf.all.forwarding0禁止网络端口间的IPv6转发net.ipv4.tcp_syncookies1打开SYN Cookie功能,防止SYN攻击net.ipv4.conf.all.route_localnet0阻止跨机器的本地回环访问提高资源利用 配置项值说明net.ipv4.tcp_tw_recycle0关闭TIME-WAIT sockets重用net.ipv4.tcp_tw_reuse1允许TIME-WAIT sockets的快速回收net.ipv4.tcp_orphan_retries2RTO重试次数net.ipv4.tcp_synack_retries2SYNACK重试次数net.ipv4.tcp_syn_retries3SYN重试次数net.ipv4.tcp_thin_linear_timeouts1开启线性超时重传安全增加漏洞利用难度 配置项值说明kernel.dmesg_restrict1禁止普通用户读取dmesgkernel.randomize_va_space2开启地址空间布局随机化vm.unprivileged_userfaultfd0禁止普通用户使用userfaultfd系统调用kernel.kptr_restrict1只有拥有 CAP_SYSLOG 权限,且 euid==ruid 才可以读取通过 %pK 打印的内核地址 (即通过读取 /proc/kallsyms 获取内核导出符号的地址 )减小攻击面 配置项值说明kernel.yama.ptrace_scope1禁止PTRACE_ATTACH功能kernel.unprivileged_bpf_disabled1禁止普通用户使用eBPF系统调用fs.protected_hardlinks1限制任意用户创建任意文件的硬链接fs.protected_symlinks1对符号链接进行验证fs.suid_dumpable0SUID_DUMP_DISABLE防止 protected/tainted进程的coredump 被恶意利用。kernel.perf_event_paranoid2限制普通用户对 perf event 的访问,缺少 CAP_SYS_ADMIN 特权时,阻止使用 kernel profiling, CPU event, ftrace function tracepoint, raw tracepoint.其他高性能 配置项值说明vm.swappiness0最大限度使用物理内存vm.max_map_count2097152最大进程内存空间调试功能 配置项值说明kernel.sched_schedstats1开启scheduler statistics增加调试和统计信息net.core.bpf_jit_enable1开启eBPF高并发 配置项值说明kernel.pid_max4194303最大PIDfs.file-max12288000最大fdnet.unix.max_dgram_qlen512unix socket队列长度 ## Publication Information - [Test](https://paragraph.com/@test-33/): Publication homepage - [All Posts](https://paragraph.com/@test-33/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@test-33): Subscribe to updates - [Twitter](https://twitter.com/Shadow_Tax): Follow on Twitter