Linux 4.10亮点特性

源于https://kernelnewbies.org/Linux_4.10

1.KVMGT支持
这个版本在KVM上增加了英特尔GVT-G(KVMGT)的支持,这个是从英特尔第四代酷睿(Haswell)处理器和英特尔图形处理器以来,拥有mediated pass-through模式,带有完整的GPU虚拟化解决方案。此功能基于新的VFIO Mediated Device框架。与direct pass-through模式不同,KVMGT可以给每一个虚拟(客户)机提供具有完整GPU功能的虚拟化GPU,直接分配部分性能资源,同时可以具有接近本机的性能。在性能、功能和共享功能之前实现了良好的平衡。

2.’perf c2c’工具,用于缓存行竞争分析
在现代系统中一般具有多个处理器,不同的物理存储单元连接到不同的CPU。在这些NUMA系统中,对于本地存储单元的访问比其他处理器存储单元访问更快。当一个任务是多线程时,不同的线程可能同时运行在不同的CPU上面,如果这些线程试图访问和修改相同的内存,由于同步CPU缓存,它们之前可能出现性能问题。
perf c2c(for “cache to cache”)是一种跟踪和分析NUMA系统中上述情况引起的性能问题。该工具基于x86的负载延迟和Intel CPU提供的精确存储设备事件(跟踪)功能。
更多说明:https://joemario.github.io/blog/2016/09/01/c2c-blog/

3.’perf sched timehist’支持
‘perf sched timehist’提供了对调度事件的分析功能。示例:$ perf sched record – sleep 1; perf sched timehist. 默认它显示每个调度事件信息,包括等待时间(前一个调度退出和下一个调度进入的间隔时间),调度任务延迟(唤醒和开始执行的间隔时间)和任务的执行时间:
{{{ time cpu task name wait time sch delay run time

[tid/pid] (msec) (msec) (msec)

1.874569 [0011] gcc[31949] 0.014 0.000 1.148 1.874591 [0010] gcc[31951] 0.000 0.000 0.024 1.874603 [0010] migration/10[59] 3.350 0.004 0.011
1.874604 [0011] 1.148 0.000 0.035 1.874723 [0005] 0.016 0.000 1.383 1.874746 [0005] gcc[31949] 0.153 0.078 0.022

}}}
更多:http://www.brendangregg.com/blog/2017-03-16/perf-sched.html

4.改进写回管理
从一开始,Linux同步到磁盘的数据写回到进程内存的方式非常糟糕。在Linux后台写入数据时,它对前台活动的影响应该很小,这就是后台执行的定义… 但是长期以来,在缓存大压力的写入并不是这样的。例如,执行$ dd if=/dev/zero of=foo bs=1M count=10k,或者拷贝数据到USB中的同时,去浏览网页或者打开其他较大耗费内存的APP,就会无法响应。这些问题是因为大量的写入——后台写回活动引起的。
这个版本添加了一种限制缓冲区写回的机制,这样使得大压力的写入行为不能独占I/O请求队列,从而在Linux桌面和shell界面中提供更加流畅的体验。
详情说明:https://lwn.net/Articles/682582/

5.混合内存块轮询
Linux4.4添加了内存块层的轮询请求操作,可以提高高吞吐量设备(例如NVM)的性能。但是,连续的轮询会导致CPU占用率增加,有些情况(CPU占用率高从而)导致吞吐量降低。
这个版本加入了新的混合轮询方法,内核在轮询中加入了一些延迟,而不是在I/O提交后就立刻进行轮询。例如,假设I/O在8us内执行完毕,则内核休眠4us,唤醒后进行轮询。这种混合方案可以减少轮询导致的延迟,同时占用相同(或更少)的CPU。

6.cgroups中支持eBPF程序
此版本cgroup中添加了eBPF钩子,允许将用于网络过滤和记录的eBPF程序附加到cgroup,从而eBPF可以跟踪cgroup中的所有任务的套接字。 添加了新类型BPF_PROG_TYPE_CGROUP_SKB。 bpf(2)系统调用通过两个新命令BPF_PROG_ATTACH和BPF_PROG_DETACH,允许将eBPF程序附加或取消目标进程。 此功能由内核CONFIG_CGROUP_BPF控制。

7.支持英特尔高速缓存分配技术
Intel中支持设置L2/L3 caches的策略,例如,可以为实时任务分配专用的缓存空间。
更多说明:https://lwn.net/Articles/694800/
这里写图片描述

猜你喜欢

转载自blog.csdn.net/cui841923894/article/details/82054757