Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1950045
  • 博文数量: 77
  • 博客积分: 2175
  • 博客等级: 大尉
  • 技术积分: 2491
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-20 20:49
个人简介

欢迎光临我的博客

文章分类

全部博文(77)

文章存档

2023年(1)

2018年(4)

2017年(1)

2016年(2)

2015年(2)

2013年(5)

2012年(29)

2010年(33)

分类: LINUX

2018-02-07 10:28:03

测试环境:

  • Red Hat Enterprise Linux Workstation release 6.8 (Santiago).
  • Kernel level: Linux 2.6.32-696.18.7.el6.x86_64
  • CPU: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz (8 cores)

测试用例:

在pti_enabled=1和pti_enabled=0的情况下,分别读取同一个2G的虚拟机image文件100次。

对该测试用例测试10次,生成性能结果比较曲线如下:

本图是在每次测试的时候都清除系统缓存(echo 3 > /proc/sys/vm/drop_caches)得到的结果


本图是在每次测试的时候都不清除系统缓存得到的结果

可以看到,在清除系统缓存的时候,meltdown fix(修复)会导致性能平均有20%的下降。在不清除系统缓存的时候,meltdown修复会导致性能平均有32%的下降。简单来看,meltdown修复平均会导致系统性能有26%的下降。而在读取image文件达到1000次的时候,性能平均下降31%。这说明I/O越密集,meltdown修复对性能的影响越显著!

原因分析:

在intel cpu上,meltdown修复对用户态和内核态引入了两套页表映射,这样,当程序在执行系统调用从用户态切换到内核态时,都需要进行页表切换,这显然会带来额外的性能开销。系统中断或异常导致的程序从用户态切换到内核态也是一样。此外,当读取文件数据时,内核还需要从内核态向用户态传送数据,这也会带来额外的性能开销。
所以meltdown修复对性能的影响还是很显著的!

相关链接:http://blog.chinaunix.net/uid-23741326-id-5783282.html
阅读(6563) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~