适合内存研究的实验方法及工具

适合内存研究的实验方法及工具

  • 测试TLB miss 和页遍历引入的开销:
    使用全系统模拟器gem5,运行大内存负载程序,会花上数周甚至数月,消耗内存是负载程序所需两倍以上。同时TLB miss 相较于其他微体系结构事件(分支错误预测,cache miss)发生的少很多,减小工作负载,不仅需要对应用程序和操作系统有深入的了解和仔细的调优,还需要改变虚拟内存行为。
    威斯康辛麦迪逊的Basu等人,同时结合硬件性能计数器和内核修改,直接将真实的workload运行在真实的物理机上。
    使用oprofile收集硬件性能计数器,然后准确估计出TLB miss所花时间在总执行周期的百分比。
$ opreport
CPU: PIII, speed 863.195 MHz (estimated)
Counted CPU_CLK_UNHALTED events (clocks processor is not halted) with a unit mask of 0x00 (No unit mask) count 50000
   506605 54.0125 cc1plus
	   450385 88.9026  cc1plus
	    28201  5.5667  libc-2.3.2.so
	    27194  5.3679  vmlinux
	      677  0.1336  uhci_hcd
	       89  0.0176  usbcore
	       51  0.0101  ld-2.3.2.so
               ...
   163209 17.4008 lyx
	    60213 36.8932  lyx
	    23881 14.6322  libc-2.3.2.so
	    21968 13.4600  libstdc++.so.5.0.1
	    13676  8.3794  libpthread-0.10.so
	    12988  7.9579  libfreetype.so.6.3.1
	    10375  6.3569  vmlinux
	     8599  5.2687  libqt-mt.so.3.0.5
	     4190  2.5673  ld-2.3.2.so
	     4157  2.5470  libfontconfig.so.1.0
               ...
    58962  6.2863 kdeinit
	    16971 28.7829  libqt-mt.so.3.0.5
	    11533 19.5601  libkonsolepart.so
               ...
  • 获得TLB miss 开销也可以使用Linux perf,获取tlb miss发生时,页遍历时的所花的周期数。
  • 使用Linux pamp utility 收集一个进程所分配的全部内存大小(pamp)。
  • 使用Linux vmstat utility 收集虚拟内存使用情况,同时会将processes, memory, paging, block IO,
    traps, disks and cpu activity, 一起显示出来,如下图所示(vmstat)。
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 401160 100252 1307468    0    0     5    17   49   70  0  0 100  0  0
  • page walk latency,在DynamoRIO 上模拟memory hierarchy of Broadwell-like processor,用应用页表转储,模拟了页遍历通过内核内部模块捕获应用程序的页,然后计算每个级别页表的访存时延得到页表遍历时延。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值