CN102375780B - 一种分布式文件系统中元数据缓存管理的方法 - Google Patents

一种分布式文件系统中元数据缓存管理的方法 Download PDF

Info

Publication number
CN102375780B
CN102375780B CN201110326472.2A CN201110326472A CN102375780B CN 102375780 B CN102375780 B CN 102375780B CN 201110326472 A CN201110326472 A CN 201110326472A CN 102375780 B CN102375780 B CN 102375780B
Authority
CN
China
Prior art keywords
slab
memory
thread
privately owned
buffer memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110326472.2A
Other languages
English (en)
Other versions
CN102375780A (zh
Inventor
杨浩
马照云
马振杰
张东阳
邵宗有
刘新春
苗艳超
王勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WUXI CITY CLOUD COMPUTER CENTER CO Ltd
Original Assignee
WUXI CITY CLOUD COMPUTER CENTER CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by WUXI CITY CLOUD COMPUTER CENTER CO Ltd filed Critical WUXI CITY CLOUD COMPUTER CENTER CO Ltd
Priority to CN201110326472.2A priority Critical patent/CN102375780B/zh
Publication of CN102375780A publication Critical patent/CN102375780A/zh
Application granted granted Critical
Publication of CN102375780B publication Critical patent/CN102375780B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种分布式文件系统中高效的元数据缓存管理方法,该方法通过多种策略来优化元数据缓存的管理,尽可能减少由于软件的使用方式不合理而照成内存访问效率的低下,以及并发导致的CPU闲置,从而使得元数据服务器能够充分地利用内存和CPU等硬件资源,提供尽可能高的服务能力。

Description

一种分布式文件系统中元数据缓存管理的方法
技术领域
本发明涉及分布式文件系统中高效的元数据缓存管理机制,具体来,涉及一种分布式文件系统中高效的元数据缓存管理方法。
背景技术
在分布式文件系统中,元数据服务器是整个系统的中枢,它担负着管理整个文件系统所有管理数据的任务,在客户端元数据操作比较密集的应用中,元数据服务器的服务能力是至关重要的,其吞吐量直接决定了文件系统支持的业务响应的速率。
在现实元数据服务器中,制约其服务能力的因素有很多,但总的来说可以分为以下几类:第一,IO的压力,如磁盘带宽和网络带宽的不足;第二,并发处理能力,主要体现在多任务并发时,由于互斥或同步而消耗不必要的等待时间;第三,是对于CPU一二级快速缓存的污染,如大量的内存拷贝或多核CPU之间的CPU缓存同步。
Slab是Linux操作系统的一种内存分配机制。与传统的内存管理模式相比,slab缓存分配器提供了很多优点。首先,内核通常依赖于对小对象的分配,它们会在系统生命周期内进行无数次分配。slab缓存分配器通过对类似大小的对象进行缓存而提供这种功能,从而避免了常见的碎片问题。slab分配器还支持通用对象的初始化,从而避免了为同一目而对一个对象重复进行初始化。最后,slab分配器还可以支持硬件缓存对齐和着色,这允许不同缓存中的对象占用相同的缓存行,从而提高缓存的利用率并获得更好的性能。
发明内容
本发明旨在公开一种分布式文件系统中高效的元数据缓存管理方法,该方法通过多种策略来优化元数据缓存的管理,尽可能减少由于软件的使用方式不合理而照成内存访问效率的低下,以及并发导致的CPU闲置,从而使得元数据服务器能够充分地利用内存和CPU等硬件资源,提供尽可能高的服务能力。
一种分布式文件系统中元数据缓存管理的方法,采用slab技术管理内存。
优选的,所述内存在申请时包括定长结构和变长结构。
优选的,所述定长结构通过slab技术通过mmap一次性向系统分配内存来管理,分配的内存容纳了需要数量的不同类型的定长结构。
优选的,所述变成结构通过预创建slab来管理,所述slab最小为可容纳的最小变长结构,并以2的阶乘递增,最大为可容纳的最大变长结构。
优选的,所述变长结构在使用时,将请求的内存落在slab集合中大小与其最接近的slab。
优选的,所述slab内部,将大块内存拆分为小单元时,起始地址与CPU的cacheline大小对齐。
优选的,所述每个slab,为每个线程配备一个私有缓存,用于存储该线程操作的内存单元。
优选的,所述线程需要进行内存分配和释放时,先操作私有缓存,如果私有缓存内的内存单元能够满足需求,则不需要对共有的内存块进行操作。
优选的,所述每个slab,根据每个线程内存分配释放的统计量,动态调整私有缓存的大小,使用slab频率高的线程配备的私有缓存相对较大,使用slab频率低的线程配备的私有缓存相对较小。
优选的,所述slab在各个线程的私有缓存之间进行均衡,将释放内存较多的线程私有cache中的内存单元,直接搬移到申请需求较多的线程私有缓存。
具体实施方式
在元数据服务器中,常用的内存结构分为两类:第一类是定长的结构,这类内存结构通常常驻内存,系统会频繁的申请、释放和访问此类内存结构,如索引节点、目录项、消息结构等;第二类是变长结构,该类内存结构通常是在系统运转过程中分配的临时内存单元。
对于服务器模型,通常会引入集中处理的方法,以减少并发带来的性能下降。因此,服务器的内存使用还有一个特性,就是通常分配内存和释放内存的线程是不同的,这就大大增加了内存分配和释放的并发压力,制约了系统的整体性能。
(1)对于定长结构,引入slab技术进行管理,即通过mmap一次性向系统分配大块内存,该大块内存能够容纳若干需要的定长结构,通过自己的管理结构进行管理,这样以来,就减少了向系统申请释放内存的频度,降低了并发性。同时,由于不同类型的定长结构有自己的slab,因此不同线程访问时,只需在各自slab内存进行并发控制,不会影响到其他的slab。
(2)对于变长的内存结构,预创建一批slab,大小以2的阶乘递增。在使用时,将请求落在与slab集合中大小与之最接近的slab即可。这样以来,随机大小的内存分配并发度也被大大降低。
(3)slab内部,将大块内存拆分为小单元时,起始地址与CPU的cacheline大小对齐,减少对于CPU缓存的污染。
(4)单个slab,为了降低并发带来的性能下降,为每个线程配备一个私有缓存,用于存储该线程操作的内存单元。线程需要进行内存分配和释放时,先操作私有缓存,如果私有缓存内的内存单元能够满足需求,则不需要对共有的内存块进行操作。这样以来,同一个slab的各个使用线程基本独立,产生并发访问的几率几乎为0。
(5)对于每个slab,根据个线程内存分配释放的统计量,动态调整私有缓存的大小:使用slab频率高的线程,为其配备的私有缓存相对较大,以减少其访问slab共有内存区的几率;对于使用slab频率低的线程,为其配备的私有缓存相对较小,以减少不必要的浪费。
(6)由于在服务器模型中,经常使用任务集中处理的模式,因此使用slab的线程,可能部分只申请内存,而另一部分只释放内存,从而导致线程操作slab共有内存区的频率较高。因此,在slab各个线程私有缓存之间进行均衡,将释放内存较多的线程私有cache中的内存单元直接搬移到申请需求较多的线程私有缓存,而不是直接归还给slab共有内存区。这样大大降低了slab内部各个线程的并发度,提高了性能。

Claims (1)

1.一种分布式文件系统中元数据缓存管理的方法,其特征在于:
采用slab技术管理内存;
所述每个slab,根据每个线程内存分配释放的统计量,动态调整私有缓存的大小,使用slab频率高的线程配备的私有缓存相对较大,使用slab频率低的线程配备的私有缓存相对较小;
所述slab在各个线程的私有缓存之间进行均衡,将释放内存较多的线程私有cache中的内存单元,直接搬移到申请需求较多的线程私有缓存;
所述内存在申请时包括定长结构和变长结构;
所述定长结构通过slab技术通过mmap一次性向系统分配内存来管理,分配的内存容纳了需要数量的不同类型的定长结构;
所述变成结构通过预创建slab来管理,所述slab最小为可容纳的最小变长结构,并以2的阶乘递增,最大为可容纳的最大变长结构;
所述变长结构在使用时,将请求的内存落在slab集合中大小与其最接近的slab;
所述slab内部,将大块内存拆分为小单元时,起始地址与CPU的cacheline大小对齐;
所述每个slab,为每个线程配备一个私有缓存,用于存储该线程操作的内存单元;
所述线程需要进行内存分配和释放时,先操作私有缓存,如果私有缓存内的内存单元能够满足需求,则不需要对共有的内存块进行操作。
CN201110326472.2A 2011-10-25 2011-10-25 一种分布式文件系统中元数据缓存管理的方法 Active CN102375780B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110326472.2A CN102375780B (zh) 2011-10-25 2011-10-25 一种分布式文件系统中元数据缓存管理的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110326472.2A CN102375780B (zh) 2011-10-25 2011-10-25 一种分布式文件系统中元数据缓存管理的方法

Publications (2)

Publication Number Publication Date
CN102375780A CN102375780A (zh) 2012-03-14
CN102375780B true CN102375780B (zh) 2014-07-30

Family

ID=45794413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110326472.2A Active CN102375780B (zh) 2011-10-25 2011-10-25 一种分布式文件系统中元数据缓存管理的方法

Country Status (1)

Country Link
CN (1) CN102375780B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103914265B (zh) * 2014-04-09 2016-11-23 江苏物联网研究发展中心 集群细粒度内存管理方法
CN104035807B (zh) * 2014-07-02 2017-04-12 电子科技大学 一种云存储系统的元数据缓存替换方法
CN105094992B (zh) * 2015-09-25 2018-11-02 浪潮(北京)电子信息产业有限公司 一种处理文件请求的方法与系统
CN108595259B (zh) * 2017-03-16 2021-08-20 哈尔滨英赛克信息技术有限公司 一种基于全局管理的内存池管理方法
CN112100146B (zh) * 2020-09-21 2021-06-29 重庆紫光华山智安科技有限公司 一种高效的纠删分布式存储写入方法、系统、介质及终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1545041A (zh) * 2003-11-14 2004-11-10 港湾网络有限公司 基于mips64的双cpu微内核
CN101515247A (zh) * 2009-03-30 2009-08-26 福建星网锐捷网络有限公司 一种内存监控的方法和装置
CN101593131A (zh) * 2008-05-28 2009-12-02 国际商业机器公司 基于对象池来实现线程操作的方法和设备
CN101788919A (zh) * 2010-01-29 2010-07-28 中国科学技术大学苏州研究院 片上多核处理器时钟精确并行仿真系统及仿真方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1545041A (zh) * 2003-11-14 2004-11-10 港湾网络有限公司 基于mips64的双cpu微内核
CN101593131A (zh) * 2008-05-28 2009-12-02 国际商业机器公司 基于对象池来实现线程操作的方法和设备
CN101515247A (zh) * 2009-03-30 2009-08-26 福建星网锐捷网络有限公司 一种内存监控的方法和装置
CN101788919A (zh) * 2010-01-29 2010-07-28 中国科学技术大学苏州研究院 片上多核处理器时钟精确并行仿真系统及仿真方法

Also Published As

Publication number Publication date
CN102375780A (zh) 2012-03-14

Similar Documents

Publication Publication Date Title
CN101799773B (zh) 并行计算的内存访问方法
KR102044023B1 (ko) 키 값 기반 데이터 스토리지 시스템 및 이의 운용 방법
CN102375780B (zh) 一种分布式文件系统中元数据缓存管理的方法
US8037251B2 (en) Memory compression implementation using non-volatile memory in a multi-node server system with directly attached processor memory
CN109388590B (zh) 提升多通道dma访问性能的动态缓存块管理方法和装置
US20110246742A1 (en) Memory pooling in segmented memory architecture
US9836516B2 (en) Parallel scanners for log based replication
CN105843748B (zh) 一种对内存中内存页的处理方法及装置
CN103067425A (zh) 虚拟机创建方法、虚拟机管理系统及相关设备
KR102110812B1 (ko) 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법
US7930483B2 (en) Associativity implementation in a system with directly attached processor memory
CN104536724A (zh) 一种多核环境下哈希表并发访问性能优化方法
US9612651B2 (en) Access based resources driven low power control and management for multi-core system on a chip
CN103297499A (zh) 一种基于云平台的调度方法及系统
US10387051B2 (en) Acquisition of IOPS and MBPS limits independently at a scheduler in a scheduler hierarchy
CN104270412A (zh) 一种基于Hadoop分布式文件系统的三级缓存方法
CN103218305A (zh) 存储空间的分配方法
CN107528871B (zh) 存储系统中的数据分析
CN102184141A (zh) 检查点数据的存储方法和装置
WO2021218101A1 (zh) 固态硬盘的缓存管理系统、方法、装置
Chen et al. Resource abstraction and data placement for distributed hybrid memory pool
CN101847128A (zh) 管理tlb的方法和装置
Le et al. Namenode and datanode coupling for a power-proportional hadoop distributed file system
CN110447019B (zh) 存储器分配管理器及由其执行的用于管理存储器分配的方法
Luo et al. JeCache: just-enough data caching with just-in-time prefetching for big data applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant