高并发100问02-linux内核性能相关优化有哪些

本文概述了Linux内核中与性能密切相关的功能,如CPU调度域、I/O调度算法、TCP拥塞控制、内存管理、同步原语、巨型页、性能剖析工具等,展示了内核如何提升系统效率和扩展性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux内核的功能,尤其是那些与性能相关的,包含如下。多数功能还标记了第一次引入Linux时的内核版本。

  • CPU调度级别:各种先进的CPU调度算法都有开发,包括调度域(2.6.7),对于非

致存储访问架构(NUMA)能做出更好的决策。

  • I/O 调度级别:开发了不同的块IO调度算法,包括 deadline(2.5.39)、 anticipatory(2.5.75

和完全公平队列(CFQ)(2.6.6)。

  • TCP拥塞: Linux内核支持更新的TCP拥塞算法,允按需选择。此外,还有许多对TCP的增强。

  • Overcommit:out-of-memory(OOM)killer,该略用较少内存做更多的事情。

  • Futex(2.5.7): fast user-space- mutex的缩写,用于提供高性能的用户级别的同步原语。

  • 巨型页(2.5.36):由内核和内存管理单元(MMU)支持大型内存的预分配。

  • Oprofile(2.5.43):研究CPU使用和其他活动的系统剖析工具,内核和应用程序都

适用。

  • RCU(2.5.43):内核所提供的只读更新同步机制,支持伴随更新的多个读取的并发,

提升了读取频繁的数据的性能和扩展性。

  • epoll(2.5.46):可以高效地对多个打开的文件描述符做IO等待的系统调用,提升了

服务器应用的性能。

  • 模块IO调度(2.6.10): Linux对调度块设备O提供可插拔的调度算法,参见第9章。 DebugFS(2.6.11):一个简单的非结构化接口,用该接口内核可以将数据暴露到用户级别,通常为某些性能工具所用。

  • Cpusets(2.6.12):进程独占的CPU分组。

  • 自愿内核抢占(2.6.13):这个抢占过程,提供了低延时的调度,并且避免了完全抢占

的复杂性。

  • inotify(2.6.13):文件系统事件的监控框架。

  • blktrace(2.6.17):跟踪块IO事件的框架和工具(后来迁移到了 tracepoints中)。

  • splice(2.6.17):一个系统调用,将数据在文件描述符和管道之间快速移动,而不用经

过用户空间。

  • 延时审计(2.6.18):跟踪每个任务的延时状态,参见第4章。IO审计(2.6.20):测量每个进程的各种存储IO统计。

  • DynTicks(2.6.21):动态的tick,当不需要时( tickless),内核定时中断不会触发,这样可以节省CPU的资源和电力;

  • SLUB(2.6.22):新的slab内存分配器的简化版本10·CFS(2.6.23):完全公平调度算法;

  • cgroups(2.6.24):控制组可以测量并限制进程组的资源使用。latencytop(2.6.25):观察操作系统的延时来源的仪器和工具。

  • Tracepoints(2.6.28):静态内核跟踪点(也称静态探针)可以组织内核里的逻辑执行点,用于跟踪工具(之前是内核标记)。

  • perf(2.6.31):perf是一套性能观测工具,包括CPU性能计数器剖析、静态和动态跟踪。关于该内容的介绍;

  • 透明巨型页(2.6.38):这是一个简化巨型(大型内存页面使用的框架);

  • Uprobes(3.5):用户级别软件动态跟踪的基础设施,为其他软件所用(perf、 SystemTap,

等等)。

  • KVM:基于内核的虚拟机(Kernel-based- Virtual Machine,vm)技术是 Qumranet公 司为 Limux开发的,该公司在2008年被 Red Hat公司收购。KVM使得可以创建虚拟的操作系统实例,并运行虚拟机自己的内核;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值