一种软硬件结合的大数据访存踪迹搜集分析工具集
李作骏1,2, 潘海洋1,2, 陈明宇1,2, 包云岗1,2
1 中国科学院大学,北京 100049
2 中国科学院计算技术研究所先进计算机系统研究中心,北京 100190
摘要:随着内存计算框架如Spark的兴起、新型非易失性内存研究的深入以及数据安全形势的日益严峻,现有的访存行为分析工具已经无法满足大数据应用的需求。为此,我们提出了一种软硬件结合的大数据访存踪迹搜集分析工具集。该工具集不仅利用硬件收集基本的访存信息,还结合软件信息同步及离线标注的方法,能够高速、准确地获取丰富的访存行为信息,为大数据访存的实时安全监控提供了一种实现方式。最后,我们通过实验对一组真实的大数据应用进行了访存踪迹采集和分析。
关键词:访存踪迹;访存行为;大数据
引言
在现代计算机系统中,大数据和云计算等以“数据”为核心的应用负载中,“数据”已经成为影响系统性能的关键因素。因此,设计有效的数据组织和访问形式变得至关重要。特别是在地方处理器外部(高速缓存)以及外部存储器(内存)中的数据存储和读写行为方面。获取并分析大数据应用的访存行为特征已成为高效设计的基础。
以Spark为代表的内存计算框架使得大量计算中间结果被缓存于内存中,现有的基于程序流的调试和分析工具已经无法有效应对这种复杂的数据流和程序流分离的情况。此外,新型非易失性内存的应用需要对计算机的访存系统进行全面评估和设计。然而,目前缺乏能够处理新型内存系统并能实时监控数据访问的安全工具。大数据领域信息安全的重要性日益凸显,传统的基于等级保护和程序审查的方法已不再适用,需要一种实时监控系统数据访问全过程并提供安全防护的技术。
目前,可使用的测量和分析方法主要分为两类:一是纯软件的“植入式”工具或模拟平台,二是纯硬件的物理信号采集。软件方法虽然可以获取丰富的语义信息,但模拟速度较慢;硬件方法虽然速度快,但只能获取有限的统计信息,且成本高昂。因此,亟需一种高效的监测手段来详细观察数据在内存中的使用情况。
软硬件结合的访存踪迹搜集分析工具集
为解决上述问题,我们提出了一种新型的软硬件结合、集访存踪迹搜集和分析为一体的工具集——软硬件结合的访存踪迹工具集(Hybrid Memory Trace Toolkit,HMTT)。该工具集由四个部分组成:访存踪迹采集卡、被测系统软件信息同步模块、访存踪迹接收和存储设备以及离线标注工具包。
访存踪迹采集卡主要由一块现场可编程门阵列(FPGA)芯片、双倍数据速率(DDR)总线分支、高速外设部件互联总线标准(PCIe)传输模块及其他功能电路构成。它插在测试机的内存插槽上,通过监听DDR总线的方式获取访存指令信息,并将其转化为包含物理地址、访存时延以及读写特征等的访存踪迹信息,然后通过PCIe传输给接收和存储设备。此外,用户可以在FPGA上设置定制的过滤逻辑以减少回传的数据量。
被测系统软件信息同步模块运行于测试机的计算机系统中,在程序启动或特定信息修正时记录运用元信息的变化,并将其传输给接收机处理。此外,研究人员可以通过特定物理地址告知访存踪迹采集卡及离线标注工具包一些特定信息,这些信息可用于控制访存踪迹采集卡或提供程序关键行为信息。
访存踪迹接收和存储设备由一块PCIe转接卡和一个TB级的存储阵列组成。这部分负责接收并存储由访存踪迹采集卡传输来的访存踪迹信息。接收机还可以通过软件配置模块对数据采集进行控制和过滤。
离线标注工具包由访存踪迹解析模块和访存行为分析模块组成。前者解析访存踪迹信息,提取物理地址、访存时延、读写特征等基本信息;后者将这些基本信息与软件信息同步模块中的页表、锁、函数调用等信息结合,获取高级语义信息,进一步分析访存行为特征。
HMTT解决了现有工具的问题:在访存踪迹完整性的方面,HMTT可以连续存储以小时计、TB级的访存踪迹数据;在采集速度方面,采用硬件旁路侦听的方式,软件执行速度几乎不受影响;在无失真性方面,少量插桩不会干扰指令流和高速缓存交换;在语义信息方面,HMTT开发了多种元信息采集和标注方法,将物理踪迹数据还原成对应的语义信息;在成本方面,HMTT的成本远低于具有相似功能的内存协议分析仪。
经过十余年的研究,HMTT已经从第一代发展到最新的HMTT 4,目前可以满足大数据应用的访存行为分析需求。
应用场景
HMTT已被应用于多个体系结构分析领域,包括DMA缓冲区、LLC、TLB、多线程锁、程序对象、虚拟地址、功耗评估及非易失性内存等。HMTT还可以用于大型程序的分析、优化和调试、数据访问安全分析等方面。
对于DMA缓冲区,可以将HMTT软件API插入Linux操作系统中的网卡或硬盘驱动中,通过检测HMTT采集的访存踪迹中的标记信息区分DMA访存行为和处理器访存行为,为DMA访存行为优化提供数据支持。
对于LLC,HMTT可以捕捉所有LLC缺失的访存操作时间和地址,通过分析时延特征获取系统访问不同物理地址序列对LLC缺失的影响,指导更合理的内存分配技术。
对于TLB,通过将内核特定进程的页表设置为不可缓存的页面,使所有TLB缺失后访问页表的操作进入DDR总线,从而被HMTT捕捉并分析,获取整个程序执行过程中形成TLB缺失的页面序列。
对于多线程锁,通过调用与多线程锁相关的函数,插入HMTT软件API,生成包含当前锁相关信息的内存访问,降低开支并准确监测多线程应用的锁冲突。
对于程序对象,通过动态库重写方式交换Linux中原有的malloc函数,配合HMTT采集的访存踪迹信息,无需修改源代码即可得到虚拟地址范围与各个对象的对应关系。
对于虚拟地址,通过修正Linux内核记录每次页表信息的更新,再将HMTT获取的访存物理地址信息转化为所需的虚拟地址信息。
对于功耗评估,HMTT集成的功耗检测组件可以获取毫秒级的内存模块功耗。
在非易失性内存领域,HMTT为非易失性内存的数据放置和动态随机存取存储器缓存的预取算法提供了数据支持。
HMTT还可用于系统软件的分析和调试,包括Firmware、OS启动代码、设备驱动程序等。采用HMTT工具,研究人员可以从第一条指令开始分析,无需等待软件环境建立支持调试的子环境。
HMTT也可用于大型程序的分析和优化,对复杂大型程序进行长时间、细粒度的访存特征分析,为系统瓶颈定位、存储特征区域划分、程序设计优化等提供支持。
HMTT在数据安全方面也有重要作用。通过HMTT可以在不影响原有程序的情况下全面监控敏感数据区域何时被访问、何时被修改,从而帮助定位系统中的不安全因素,包括软件难以发现的侧信道攻击等。
实验评测
本文基于Intel E5 2620 V2处理器搭建了一套HMTT3访存踪迹搜集分析平台,选用大数据内存相关测试基准——大内存测试集(Big Memory Bench),对其中的部分应用进行了行缺失率的分析。实验平台参数见表3。
大内存测试集是一种面向大容量内存访问的测试基准,不同于传统的低内存容量占用的测试基准SPEC 2006、PARSEC,也不同于大多只扩展了自身数据规模的大数据测试基准Big Data Bench。我们选择了大内存测试集中的六个应用,其中五个基于Spark,完整的访存踪迹数据约为2TB。
为了展示HMTT的功能,我们选择了行缺失率的统计分析。行缺失率是衡量一个应用访存功能及功耗的重要指标。HMTT可以搜集完整的访存踪迹并进行离线分析,简单地获取行缺失率信息。通过分析行缺失率,我们可以发现某些应用的访存行为具有较高的随机性,导致频繁的打开和关闭行操作,从而增加访存时延和功耗。
结束语
本文提出的软硬件结合的大数据访存踪迹搜集分析工具集可以完整、快速、无失真地获取具有丰富语义信息的大数据应用访存踪迹,为大数据系统访存行为特征分析、非易失性内存的应用以及实时大数据安全监控提供了有效支持。
作者简介
李作骏(1990-),男,中国科学院大学博士生,主要研究方向为计算机系统结构。
潘海洋(1990-),男,中国科学院大学博士生,主要研究方向为计算机系统结构。
陈明宇(1972-),男,博士,中国科学院计算技术研究所研究员,主要研究方向为高性能计算机系统结构、操作系统及并行算法优化。
包云岗(1980-),男,博士,中国科学院计算技术研究所研究员,计算机系统结构国家重点实验室教授,先进计算机系统研究中心主任,中国科学院大学岗位教授。担任中国计算机学会理事、普及工作委员会主任,中国科学院青年创新促进会理事。主要研究方向为计算机系统结构,主持研制多款达到国际先进水平的系统,在国际会议期刊发表40余篇论文,相关技术在华为技术有限公司、阿里巴巴集团、英特尔公司等国内外企业运用,多次受邀担任ASPLOS、ISCA、MICRO、SC等国际会议的程序委员会委员。
《大数据》期刊
《大数据(Big Data Research,BDR)》是由中华人民共和国工业和信息化部主管,人民邮电出版社主办,中国计算机学会大数据专家委员会学术指导,北京信通传媒有限责任公司出版的中文科技核心期刊。