CN110895515A - 内存缓存管理方法、多媒体服务器及计算机存储介质 - Google Patents
内存缓存管理方法、多媒体服务器及计算机存储介质 Download PDFInfo
- Publication number
- CN110895515A CN110895515A CN201811062577.XA CN201811062577A CN110895515A CN 110895515 A CN110895515 A CN 110895515A CN 201811062577 A CN201811062577 A CN 201811062577A CN 110895515 A CN110895515 A CN 110895515A
- Authority
- CN
- China
- Prior art keywords
- memory
- application request
- memory application
- target page
- request
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 319
- 238000007726 management method Methods 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000004422 calculation algorithm Methods 0.000 claims description 32
- 238000011084 recovery Methods 0.000 claims description 31
- 238000004064 recycling Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开一种内存缓存管理方法、多媒体服务器及计算机存储介质,该方法包括:接收内存申请请求;根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面;确定获取到所述目标页面时,使用所述目标页面存放与所述内存申请请求对应的数据,并将所述目标页面插入所述当前访问位置之后。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种内存缓存管理方法、多媒体服务器及计算机存储介质。
背景技术
目前播放音视频文件时,通常是将音视频文件从磁盘读入内存时,读完之后,这些内存并不会立即释放。当出现缓存未命中的情况时,则需要将旧的缓存换出,然后将换出的这些内存用于新的文件读写。
然而,内存容量的增长往往远远小于硬盘容量增长,这样就导致缓存置换一直在发生,视频的读写对时延要求很高,内存不足的时候,很多时候就需要触发同步缓存回收来释放内存,这种同步等待,对于时延要求高的场景是致命的;对于目前各操作系统的实现,缓存回收是统一的动作,不管是具体采用最不经常使用(Least Frequently Used,LFU)算法还是最近最少使用(Least Recently Used,LRU)算法来管理,反正都是统一的管理思路,导致内存不足触发缓存回收而影响用户体验的问题在多媒体服务器中特别严重。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种能够减少缓存回收消耗、减小文件读取时延的内存缓存管理方法、多媒体服务器及计算机存储介质。
为达到上述目的,本发明实施例的技术方案是这样实现的:
一种内存缓存管理方法,包括:接收内存申请请求;根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面;确定获取到所述目标页面时,使用所述目标页面存放与所述内存申请请求对应的数据,并将所述目标页面插入所述当前访问位置之后。
其中,所述根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面之后,还包括:确定未获取到所述目标页面时,通过操作系统OS根据设置的内存回收算法获取与所述内存申请请求对应的缓存。
其中,所述接收内存申请请求,包括:接收文件预读请求,所述文件预读请求携带有需要下发至硬盘的内存块的大小信息;或,接收文件读取请求,所述文件读取请求携带有设置的页面大小信息。
其中,所述使用所述目标页面存放与所述内存申请请求对应的数据之后,还包括:更新所述目标页面的引用计数。
其中,所述根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面之前,还包括:判断所述内存申请请求是否为针对音视频文件的内存申请请求,以及确定所述音视频文件的当前热度值是否小于设置热度范围;所述根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面,包括:相应于所述内存申请请求为针对音视频文件的内存申请请求,且确定所述音视频文件的当前热度值小于设置热度范围时,根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面。
其中,所述判断所述内存申请请求是否为针对音视频文件的内存申请请求之后,还包括:相应于所述内存申请请求为针对音视频文件的内存申请请求,且确定所述音视频文件的当前热度值满足设置热度范围时,通过OS根据设置的内存回收算法获取与所述内存申请请求对应的缓存。
其中,所述判断所述内存申请请求是否为针对音视频文件的内存申请请求之后,还包括:确定所述内存申请请求为针对非音视频文件的内存申请请求时,通过OS根据设置的内存回收算法获取与所述内存申请请求对应的缓存。
其中,所述确定所述内存申请请求为针对音视频文件的内存申请请求时,根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面,包括:确定所述内存申请请求为针对第一清晰度的音视频文件的内存申请请求时,根据所述内存申请请求获取距离当前访问位置之前的第一设置大小的目标页面;确定所述内存申请请求为针对第二清晰度的音视频文件的内存申请请求时,根据所述内存申请请求获取距离当前访问位置之前的第二设置大小的目标页面,所述第一清晰度高于所述第二清晰度,所述第一设置大小大于所述第二设置大小。
一种多媒体服务器,所述多媒体服务器包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中所述处理器用于运行所述计算机程序时,执行本申请任一实施例所述内存缓存管理方法。
一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现本申请任一实施例所述的内存缓存管理方法。
上述实施例所提供的内存缓存管理方法,通过接收内存申请请求,根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面,确定获取到所述目标页面时,使用所述目标页面存放与所述内存申请请求对应的数据,并将所述目标页面插入所述当前访问位置之后,如此,当确定需要申请内存时,可以将当前访问位置之前的设置大小的目标页面直接置换,相对于已知的通过操作系统采用统一的缓存回收算法对旧的缓存页面进行回收释放来获取缓存的方式而言,通过采用直接置换的目标页面存放新的文件数据,无需系统调用即可实现缓存循环使用,极大地减少缓存换出对操作系统的消耗,也减小了时延导致用户体验不佳的问题。
附图说明
图1为本发明一实施例中内存缓存管理方法的运行系统的架构图;
图2为本发明一实施例中内存缓存管理方法的流程图;
图3为本发明另一实施例中内存缓存管理方法的流程图;
图4为本发明又一实施例中内存缓存管理方法的流程图;
图5为本发明一具体示例中内存缓存管理方法的流程图;
图6为本发明一实施例中客户端与OS交互的时序图;
图7为本发明一实施例中多媒体服务器的结构示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明技术方案做进一步的详细阐述。除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的,名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)页面(Page),在内存管理中,一般会将内存切割成一定的单位,简称page。
2)页面缓存,在操作系统中,文件读写一般是先读写内存中的缓存,然后通过一定的机制和硬盘进行同步,因为内存读写效率高于硬盘,所以保证读写性能。那么用来缓存的内存,一般叫页面缓存,由于内存一般使用page为单位来管理,比如linux中就叫pagecache。
3)预读,当文件读取的时候,一般使用预读的方式来保证给硬盘提交的介质块是大块,预读就是提前读取硬盘数据放到页面缓存中,接下来读取就会命中缓存。
4)零拷贝(sendfile),通过网络发送文件的时候,不再经历内核态到用户态的拷贝,而是直接从内核态发送到网卡,然后网卡发送到对端设备。
5)缓存回收,操作系统进行页面缓存的时候,对于以文件读取为主的服务器,随着缓存增长,由于内存空间的限制,都存在缓存回收的机制。
6)最近最少使用(Least Recently Used,LRU)、最不经常使用(Least FrequentlyUsed,LFU),均是指内存回收算法,用于缓存管理和回收,是从page的视角去管理和老化缓存的链表方式。
7)One shot模式,从统计来看,大多数访问文件的时候,是使用的顺序播放的方式,而根据视频播放的特点,会存在一个长尾效应,也就是指,少部分热门视频占用缓存少,但服务人数多,但是大多数文件访问在一段时间只是一次,服务人数少,而缓存占用多,这种就是one shot模式。
8)Radix树,一种数据结构,目前被大量使用在管理某个文件的缓存,也就是从单个文件的视角去管理缓存的方式。
如图1所示,在一个实施例中,提供一种采用本发明实施例所提供的内存缓存管理方法的应用场景的架构图,该架构包括客户端100和多媒体服务器200,客户端100通过网络连接到多媒体服务器200上,客户端100发送文件播放指令,多媒体服务器200接收到文件播放指令后,将相应文件的切片文件读入内存,根据客户端100的访问请求命中内存缓存的数据发送到网卡,由网卡根据指定的网络传输协议发送给客户端设备。本发明实施例中,将该种类型的业务统称为读盘与发包结合的模型。本发明实施例所提供的内存缓存管理方法可以适用于该读盘与发包结合的模型,其中,多媒体服务器200将切片文件读入内存,当确定内存不足时,通过文件缓存管理结构radix树,获取当前访问位置之前的页面给之后的访问来使用,然后通过预读,使用这部分内存页面存放从硬盘读取的数据。由于当前访问位置之前的页面是已经访问过的缓存,很大可能不会在短时间内再访问,多媒体服务器200基于当前访问位置之前的位置获取短时间内不会再访问的内存页面直接进行循环使用,可以保证播放完一个几个G的大文件也只是占用2-5M这样极少部分内存,在大带宽大流量的媒体服务器中,极大地减少缓存换出对操作系统的消耗。
在一个实施例中,多媒体服务器200是指支持RTSP点播业务场景中的CDN服务器,在互联网IPTV电视业务上,需要支持RTSP点播业务,基本业务模型就是把存储在CDN服务器上的片源,读取出来,打包成RTP包承载在UDP或TCP上,从CDN服务器设备的网口发包出去,该RTSP点播业务是典型的读盘与发包结合的模型,通过采用本发明实施例提供的内存缓存管理方法,通过基于当前访问位置之前获取短时间内不会再访问的内存页面直接进行循环使用,应用到Linux系统的sendfile发包机制,极大地提高了CDN服务器的整体性能。
在另一个实施例中,多媒体服务器200是指支持HLS点播业务场景中的CDN服务器,互联网OTT业务上,支持HLS点播业务,把存储在CDN上的多媒体文件片源按照HLS分片格式要求,读取出来按照HTTP下载的方式,承载在TCP上发送给请求的终端,从而该HLS点播业务也是典型的读盘与发包结合的模型,通过采用本发明实施例提供的内存缓存管理方法,通过基于当前访问位置之前获取短时间内不会再访问的内存页面直接进行循环使用,应用到Linux系统的sendfile发包机制,极大地提高了CDN服务器的整体性能。
在又一个实施例中,多媒体服务器200是指支持DASH点播业务场景中的CDN服务器,互联网OTT业务上,支持DASH点播业务,把存储在CDN上的多媒体文件片源按照DASH分片格式要求,读取出来支持HTTP下载,承载在TCP上发送给请求的终端,从而该DASH点播业务也是典型的读盘与发包结合的模型,通过采用本发明实施例提供的内存缓存管理方法,通过基于当前访问位置之前获取短时间内不会再访问的内存页面直接进行循环使用,应用到Linux系统的sendfile发包机制,极大地提高了CDN服务器的整体性能。
在再一个实施例中,多媒体服务器200是指支持HPD点播业务场景中的CDN服务器,互联网OTT业务上,支持HPD大文件下载点播业务,把存储在CDN上的多媒体文件片源,读取出来支持HTTP下载,承载在TCP上发送给请求的终端,承载在TCP上发送给请求的终端,从而该HPD点播业务也是典型的读盘与发包结合的模型,通过采用本发明实施例提供的内存缓存管理方法,通过基于当前访问位置之前获取短时间内不会再访问的内存页面直接进行循环使用,应用到Linux系统的sendfile发包机制,极大地提高了CDN服务器的整体性能。
请参阅图2,为本发明一实施例提供的内存缓存管理方法的流程图,该内存缓存管理方法包括如下步骤:
步骤101,接收内存申请请求;
步骤103,根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面;
步骤105,确定获取到所述目标页面时,使用所述目标页面存放与所述内存申请请求对应的数据,并将所述目标页面插入所述当前访问位置之后。
这里,多媒体服务器接收内存申请请求可以是,多媒体服务器基于客户端发送的多媒体文件的播放指令,根据该多媒体文件的播放指令从硬盘读取相应的切片文件至内存中,当确定内存不足时,则接收到内存申请请求。在具体应用时,多媒体服务器接收内存申请请求还可以是,多媒体服务器设置文件访问热度的接口,多媒体服务器基于客户端发送的多媒体文件的播放指令,根据该多媒体文件的播放指令从硬盘读取相应的切片文件至内存中,当调用该文件访问热度的接口预测相应的多媒体文件的当前热度为非热点文件时,则确定接收到内存申请请求。
多媒体服务器根据内存申请请求获取当前访问位置之前的设置大小的目标页面可以是,在当前访问文件的偏移位置时,通过该文件缓存管理结构,比如说Linux使用的radix树中的页面确定在该对应页面之前的目标页面进行获取。多媒体服务器确定获取到所述目标页面时,使用这部分目标页面存放从硬盘中读取的与所述内存申请请求对应的切片数据,并将目标页面插入当前访问位置之后。当目标页面的数据是新的之后,就可以发起输入输出(IO)直接读取了。如此,相当于直接获取当前访问位置之前的目标页面进行置换,通过修改目标页面相关的一些位置参数等就可以插入到对应文件的缓存中,采用直接置换内存,避免了对radix树中链表的操作,减少了对cpu的消耗。
本发明上述实施例中,多媒体服务器确定需要申请内存时,可以将当前访问位置之前的设置大小的目标页面直接回收,而不是使用操作系统根据统一的缓存回收方式获取需要的内存,通过采用直接回收的目标页面存放数据,相当于实现对页面缓存的循环使用,相对于已知的通过操作系统采用统一的缓存回收算法对旧的缓存页面进行回收释放来获取缓存的方式而言,通过采用直接置换的目标页面存放新的文件数据,无需系统调用即可实现缓存循环使用,极大地减少缓存页面换出对操作系统的消耗,也减小了时延导致用户体验不佳的问题。
请参阅图3,在一个实施例中,本发明实施例所提供的内存缓存管理方法中,所述根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面之后,还包括:
步骤107,确定未获取到所述目标页面时,通过操作系统OS根据设置的内存回收算法获取与所述内存申请请求对应的缓存。
这里,设置的内存回收算法是指用于从页面的视角管理老化的缓存的链表方式,对缓存管理和回收的LRU或LFU算法。OS根据设置的内存回收算法获取与所述内存申请请求对应的缓存是指,操作系统在将文件从磁盘读入内存的过程中,当出现缓存为命中的请求时,采用统一的LRU或LFU算法从旧的缓存换出,然后将换出的这些内存用于新的文件的读写。
本发明上述实施例中,当采用直接回收方式申请内存失败,不能获取到目标页面时,则可以通过OS从对应的CPU的高速缓存中获取内存,同时确保内存获取的高效和成功率。
在一个实施例中,步骤101,接收内存申请请求,包括:
接收文件预读请求,所述文件预读请求携带有需要下发至硬盘的内存块的大小信息;或,接收文件读取请求,所述文件读取请求携带有设置的页面大小信息。
读取文件时,申请内存的入口主要包括两个,一个预读接口,通过预读能够提高下发给硬盘的块大小,保证IO的性能;另一个是普通的读取接口,普通的读取可以按照页面大小申请,比如Linux默认是4k。
本发明上述实施例中,无论是通过预读接口或者是普通的读取接口,均可以通过直接回收获取当前访问位置之间的目标页面进行置换。相对于目前已知的使用统一内存回收算法来计算需要换出的内存而言,如使用LRU算法来计算需要换出的内存,需要遍历LRU链表来释放,而为了加速遍历,又将LRU链表拆分为actice链表和inactive链接,从而对于内存几十到几百G的媒体服务器而言,链表就会比较长,遍历获取的时候,性能消耗非常大,当内存不足时,触发内存回收算法申请内存的时间不可控。本发明实施例针对以预读方式申请大块内存或以普通读取方式申请小块内存,均可以配置基于当前访问位置之前获取设置大小的目标页面进行直接置换的内存申请模式,从该文件之前的缓存中进行换出,换出的时候无需修改目标页面在链表的位置,而通过修改页面的位置参数将存放新的数据的目标页面插入该文件对应的缓存中,可以避免对链表操作,减少对系统消耗;换出的时候可以进行批量的缓存,且再次进行内存申请时还可以再从换出的内存中申请,从而实现直接对内存的循环使用,播放完一个几个G的大文件可以只占用2-5M这样极少部分内存,从而极大地减少缓存换出时的消耗,且申请内存的时间更可控。
在一个实施例中,该内存缓存管理方法中,所述使用所述目标页面存放与所述内存申请请求对应的数据之后,还包括:
更新所述目标页面的引用计数。
本发明实施例中,系统的缓存回收机制并没有变化,也就是说,OS根据设置的内存回收算法来释放缓存的机制并没有改变,在采用基于当前访问位置之前获取设置大小的目标页面进行直接置换的内存申请模式时,使用置换出的目标页面存放新的数据之后,通过更新所述目标页面的引用计数,可以避免将radix树中目标页面重复利用时被系统的缓存回收机制回收。这里,更新目标页面的引用计数可以是将对应的目标页面的引用计数增加,可以避免加锁而降低性能,等发起IO读取到目标页面后,再减少引用计数,此时页面指向文件的位置已经是最新的。这里,在更新所述目标页面的引用计数之后,还可以包括更新其它相关管理缓存页面的数据如页面标识等。
在一个实施例中,请参阅图4,该内存缓存管理方法中,所述根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面之前,还包括:
步骤102,判断所述内存申请请求是否为针对音视频文件的内存申请请求,以及确定所述音视频文件的当前热度值是否小于设置热度范围;
所述根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面,包括:
步骤1051,相应于所述内存申请请求为针对音视频文件的内存申请请求,且确定所述音视频文件的当前热度值小于设置热度范围时,根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面。
进一步的,所述判断所述内存申请请求是否为针对音视频文件的内存申请请求之后,还包括:
步骤1052,相应于所述内存申请请求为针对音视频文件的内存申请请求,且确定所述音视频文件的当前热度值满足设置热度范围时,通过OS根据设置的内存回收算法获取与所述内存申请请求对应的缓存。
这里,媒体服务器可以是根据内存申请请求对应的读取文件是否为音视频文件以及音视频文件的当前热度,选择采用基于当前访问位置之前获取设置大小的目标页面进行直接置换的内存申请模式或者采用通过OS根据设置的内存回收算法获取缓存的内存回收模式。多媒体服务器可以设置文件访问热度的接口,对于可以预测热度的文件,比如,根据点播记录和电子节目菜单(Electronic Program Guide,EPG)首页显示,确定热点的电视剧、电影,球赛等,将预测的热度计算以及对应的时间属性放在切片文件中,将当前热度值满足设置热度范围的音视频文件,则适用采用通过OS根据设置的内存回收算法获取缓存的内存回收模式来获取内存;反之,则适用采用基于当前访问位置之前获取设置大小的目标页面进行直接置换的内存申请模式来获取内存。针对热度值满足设置热度范围的音视频文件,由于热度值高的音视频文件在相应时间段内访问人数多,采用通过OS根据设置的内存回收算法获取缓存的内存回收模式,可以使得访问次数多的文件的缓存尽量在内存中,减少对缓存的置换。这里,确定所述音视频文件的当前热度值满足设置的热度范围可以是,根据所述音视频文件相应的切换文件中携带的热度值的相关信息,确定所述音视频文件的当前热度值是否满足设置的热度范围。
需要说明的是,文件的热度都是一定时间范围内的,比如,针对新出的电视剧中的一集,在超过一定时间段之后就会变得几乎无人访问,这里,通过文件访问热度的接口,基于设置的热度值计算规则计算和实时更新相应文件对应的切片文件的热度值,并将热度值和对应的时间属性保存在切换文件中。针对突发的热点文件,随着访问次数的快速增长,也可以从采用设置的内存回收算法获取缓存的内存回收模式来获取内存的方式,切换至采用基于当前访问位置之前获取设置大小的目标页面进行直接置换的内存申请模式来获取内存的方式,保证缓存尽量在内存中。
在一个实施例中,该内存缓存管理方法中,所述确定所述内存申请请求为针对音视频文件的内存申请请求时,根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面,包括:
确定所述内存申请请求为针对第一清晰度的音视频文件的内存申请请求时,根据所述内存申请请求获取距离当前访问位置之前的第一设置大小的目标页面;
确定所述内存申请请求为针对第二清晰度的音视频文件的内存申请请求时,根据所述内存申请请求获取距离当前访问位置之前的第二设置大小的目标页面,所述第一清晰度高于所述第二清晰度,所述第一设置大小大于所述第二设置大小。
这里,当要申请内存时,可以根据用户态传入的缓存查找位置来查找可以利用的缓存,比如当前访问位置的前几M。针对不同清晰度的音视频文件的播放请求,从硬盘读取数据到内存再发包的数据包的发送效率不同,也即,一定时间内需要发送的页面的数量差异也是很大的。本发明实施例中,针对客户端对不同清晰度的音视频文件的播放请求,基于当前访问位置之前获取设置大小的目标页面进行直接置换的内存申请模式来获取内存时,对设置大小的目标页面的申请位置相应不同,也即,可以根据音视频文件的码率来调整需要回收的位置。以第一清晰度为高清为例,一定时间内发送的页面数量多,比如20M/s的速率发送,那么就需要离当前访问位置之前相对更远一点的地方申请目标页面,比如当前访问位置之前20M的位置,以避免距离较近时可能缓存的页面还没有被网卡释放掉,以第二清晰度为标清为例,一定时间内发送的页面数量相对较少,因此可以离当前访问位置之前相对近一些的地方申请目标页面,比如当前访问位置之前2M的位置,肯定是被网卡发送过了,大概率可以使用该页面。需要说明的是,这里,针对第一清晰度的音视频文件的内存申请请求以及针对第二清晰度的音视频文件的内存申请请求可以是指,针对不同清晰度的不同的音视频文件的内存申请请求,或者是针对同一音视频文件的不同清晰度的文件区段的内存申请请求。第一清晰度和第二清晰度的音视频文件分别对应音视频文件的不同码率,以第一清晰度为高清、第二清晰度为标清为例,其分别对应不同清晰度范围,而并非指一个具体的清晰度值。
为了能够对本发明实施例提供的内存缓存管理方法的实现原理的进一步理解,下面具体以Linux系统的媒体服务器为例,对内存缓存管理方法的流程进行说明,请参阅图5,其中,Linux系统使用radix树来管理单个文件视图的缓存页,缓存页的指针page*会存放在radix的节点中,每个文件都有一个单独的inode,inode通过address_space来找到对应的缓存radix树,当用户要求从缓存中获取页面的时候,从radix树中获取,该内存缓存管理方法包括如下步骤:
步骤S11,获取文件读取请求,当确定内存不足时,接收到内存申请请求;
步骤S12,确定当前请求文件是否为热点文件;若否,则执行步骤S13~S15,若是,则执行步骤S16;
步骤S13,设置内存申请模式为替换模式,在替换模式下,根据内存申请请求,获取当前访问位置之前的设置大小的目标页面;其中,该替换模式是指采用基于当前访问位置之前获取设置大小的目标页面进行直接置换的内存申请模式来获取内存方式的简称;
步骤S14,判断是否获取到所述目标页面;
步骤S15,确定获取到所述目标页面时,使用所述目标页面存放与所述内存申请请求对应的数据,并将所述目标页面插入所述当前访问位置之后,将所述目标页面的引用计数增加;确定未获取到所述目标页面时,则执行步骤S16;
步骤S16,设置内存申请模式为回收模式,在回收模式下,通过操作系统OS根据设置的内存回收算法获取与所述内存申请请求对应的缓存;其中,该回收模式是指采用设置的内存回收算法获取缓存的内存回收模式的简称。
步骤S17,通过替换模式或回收模式获取的缓存进行预读,向客户端返回文件读取结果。
其中,该内存缓存管理方法可以通过设置的接口调用来配置os在申请内存的行为实现,如一个/proc或者/sys接口。同时,针对每个文件,由于内存查找位置的不同,可以提供一个设置查找位置的接口给用户态使用,也可以使用默认的查找范围。通过接口调用的方式,可以增加该内存缓存管理方法的适应范围,针对开源的unix或者其它类unix的os、包括闭源的os如Windows都可以实现类似的接口来实现相应的功能,既可以实现在os中,作为内核特性,也可以作为一个内核模块,加载到内核中。
请结合参阅图6,为客户端与多媒体服务器的操作系统OS之间进行交互的时序图,OS基于客户端的文件读取请求,返回文件句柄,客户端根据该文件句柄通过设置的文件访问热度的接口查询文件的热度,OS根据文件的热度设置内存模式,当文件热度小于设置热度范围时,设置内存模式为采用基于当前访问位置之前获取设置大小的目标页面进行直接置换的内存申请模式,OS接收客户端读取或发送文件的请求,直接通过当前访问位置之前获取目标页面进行置换和循环使用,并向客户端返回读取或发送结果。当文件热度值大于设置热度范围或未获取到目标页面时,则设置内存模式为采用设置的内存回收算法获取缓存的内存回收模式,OS通过LRU或LFU算法释放缓存,将旧的缓存换出用于新的文件读写。
以该内存缓存管理方法应用于CDN服务器支持RTSP点播业务为例,采用该内存缓存管理方法针对客户端发出的文件播放请求进行读盘和发包时,CDN服务器的性能对比数据如下表格一和表格二所示:
表格一
表格二
对比上述表格一和表格二可知,表格一表示加载了本发明实施例所提供的内存缓存管理方法,在93G性能流量下,CPU系统占用只在25%左右,idle在45%以上,并且比较稳定;表格二表示没有加载本发明实施例所提供的内存缓存管理方法,同样在93G性能流量下,CPU系统占用只在57%-61%左右,idle在15%以下,并且经常波动到10%以下。
在一个实施例中,提供一种内存缓存管理装置,该内存缓存管理装置例如可以是设置内存模式的接口,其用于接收内存申请请求;根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面;确定获取到所述目标页面时,使用所述目标页面存放与所述内存申请请求对应的数据,并将所述目标页面插入所述当前访问位置之后。
其中,所述内存缓存管理装置,还用于确定未获取到所述目标页面时,通过操作系统OS根据设置的内存回收算法获取与所述内存申请请求对应的缓存。
其中,所述内存缓存管理装置,用于接收内存申请请求,可以包括:接收文件预读请求,所述文件预读请求携带有需要下发至硬盘的内存块的大小信息;或,接收文件读取请求,所述文件读取请求携带有设置的页面大小信息。
其中,所述内存缓存管理装置,还用于在所述使用所述目标页面存放与所述内存申请请求对应的数据之后,更新所述目标页面的引用计数。
其中,所述内存缓存管理装置,还用于在所述根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面之前,判断所述内存申请请求是否为针对音视频文件的内存申请请求,以及确定所述音视频文件的当前热度值是否小于设置热度范围;所述根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面,包括:相应于所述内存申请请求为针对音视频文件的内存申请请求,且确定所述音视频文件的当前热度值小于设置热度范围时,根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面。
其中,所述内存缓存管理装置,还用于在所述判断所述内存申请请求是否为针对音视频文件的内存申请请求之后,相应于所述内存申请请求为针对音视频文件的内存申请请求,且确定所述音视频文件的当前热度值满足设置热度范围时,通过OS根据设置的内存回收算法获取与所述内存申请请求对应的缓存。
其中,所述内存缓存管理装置,还用于在所述判断所述内存申请请求是否为针对音视频文件的内存申请请求之后,确定所述内存申请请求为针对非音视频文件的内存申请请求时,通过OS根据设置的内存回收算法获取与所述内存申请请求对应的缓存。
其中,所述内存缓存管理装置,用于根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面,可以包括:确定所述内存申请请求为针对第一清晰度的音视频文件的内存申请请求时,根据所述内存申请请求获取距离当前访问位置之前的第一设置大小的目标页面;确定所述内存申请请求为针对第二清晰度的音视频文件的内存申请请求时,根据所述内存申请请求获取距离当前访问位置之前的第二设置大小的目标页面,所述第一清晰度高于所述第二清晰度,所述第一设置大小大于所述第二设置大小。
需要说明的是:上述实施例提供的内存缓存管理装置与内存缓存管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例还提供了一种多媒体服务器,请参阅图7,该多媒体服务器包括处理器201以及用于存储能够在处理器201上运行的计算机程序的存储介质202,其中,所述处理器201用于运行所述计算机程序时,执行本申请任一实施例所提供的内存缓存管理方法的步骤。这里,处理器201和存储介质202并非指代对应的数量为一个,而是可以为一个或者多个。其中,该多媒体服务器还包括内存203、网络接口204以及将处理器201、内存203、网络接口204及存储介质202连接的系统总线205。存储介质202中存储有操作系统和用于实现本发明实施例所提供的内存缓存管理方法的内存缓存管理装置,该处理器201用于提高计算和控制能力,支撑整个多媒体服务器的运行。该内存203用于为存储介质202中的内存缓存管理方法的运行提供环境,网络接口204用于与客户端进行网络通信,接收或发送数据,例如,接收客户端发送的文件读取请求、向客户端返回文件读取结果等。
本发明实施例还提供了一种计算机存储介质,例如包括存储有计算机程序的存储器,该计算机程序可以由处理器执行,以完成本申请任一实施例所提供的内存缓存管理方法的步骤。该计算机存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以所述权利要求的保护范围以准。
Claims (10)
1.一种内存缓存管理方法,其特征在于,包括:
接收内存申请请求;
根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面;
确定获取到所述目标页面时,使用所述目标页面存放与所述内存申请请求对应的数据,并将所述目标页面插入所述当前访问位置之后。
2.如权利要求1所述内存缓存管理方法,其特征在于,所述根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面之后,还包括:
确定未获取到所述目标页面时,通过操作系统OS根据设置的内存回收算法获取与所述内存申请请求对应的缓存。
3.如权利要求1所述的内存缓存管理方法,其特征在于,所述接收内存申请请求,包括:
接收文件预读请求,所述文件预读请求携带有需要下发至硬盘的内存块的大小信息;或,
接收文件读取请求,所述文件读取请求携带有设置的页面大小信息。
4.如权利要求1所述的内存缓存管理方法,其特征在于,所述使用所述目标页面存放与所述内存申请请求对应的数据之后,还包括:
更新所述目标页面的引用计数。
5.如权利要求1所述内存缓存管理方法,其特征在于,所述根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面之前,还包括:
判断所述内存申请请求是否为针对音视频文件的内存申请请求,以及确定所述音视频文件的当前热度值是否小于设置热度范围;
所述根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面,包括:
相应于所述内存申请请求为针对音视频文件的内存申请请求,且确定所述音视频文件的当前热度值小于设置热度范围时,根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面。
6.如权利要求5所述的内存缓存管理方法,其特征在于,所述判断所述内存申请请求是否为针对音视频文件的内存申请请求之后,还包括:
相应于所述内存申请请求为针对音视频文件的内存申请请求,且确定所述音视频文件的当前热度值满足设置热度范围时,通过OS根据设置的内存回收算法获取与所述内存申请请求对应的缓存。
7.如权利要求5所述的内存缓存管理方法,其特征在于,所述判断所述内存申请请求是否为针对音视频文件的内存申请请求之后,还包括:
确定所述内存申请请求为针对非音视频文件的内存申请请求时,通过OS根据设置的内存回收算法获取与所述内存申请请求对应的缓存。
8.如权利要求5所述的内存缓存管理方法,其特征在于,所述确定所述内存申请请求为针对音视频文件的内存申请请求时,根据所述内存申请请求获取当前访问位置之前的设置大小的目标页面,包括:
确定所述内存申请请求为针对第一清晰度的音视频文件的内存申请请求时,根据所述内存申请请求获取距离当前访问位置之前的第一设置大小的目标页面;
确定所述内存申请请求为针对第二清晰度的音视频文件的内存申请请求时,根据所述内存申请请求获取距离当前访问位置之前的第二设置大小的目标页面,所述第一清晰度高于所述第二清晰度,所述第一设置大小大于所述第二设置大小。
9.一种多媒体服务器,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行权利要求1至8中任一项所述内存缓存管理方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8中任一项所述的内存缓存管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811062577.XA CN110895515B (zh) | 2018-09-12 | 2018-09-12 | 内存缓存管理方法、多媒体服务器及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811062577.XA CN110895515B (zh) | 2018-09-12 | 2018-09-12 | 内存缓存管理方法、多媒体服务器及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110895515A true CN110895515A (zh) | 2020-03-20 |
CN110895515B CN110895515B (zh) | 2024-11-05 |
Family
ID=69784974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811062577.XA Active CN110895515B (zh) | 2018-09-12 | 2018-09-12 | 内存缓存管理方法、多媒体服务器及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110895515B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112069433A (zh) * | 2020-09-10 | 2020-12-11 | Oppo(重庆)智能科技有限公司 | 文件页面处理方法、装置、终端设备以及存储介质 |
CN112131009A (zh) * | 2020-09-30 | 2020-12-25 | Oppo广东移动通信有限公司 | 一种内存调度方法、装置及计算机可读存储介质 |
CN113849125A (zh) * | 2021-08-30 | 2021-12-28 | 北京东方网信科技股份有限公司 | 一种cdn服务器磁盘读取的方法、装置及系统 |
CN114296733A (zh) * | 2021-12-06 | 2022-04-08 | 北京达佳互联信息技术有限公司 | 内存处理方法、装置、电子设备及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5381539A (en) * | 1992-06-04 | 1995-01-10 | Emc Corporation | System and method for dynamically controlling cache management |
US6772199B1 (en) * | 2000-09-14 | 2004-08-03 | International Business Machines Corporation | Method and system for enhanced cache efficiency utilizing selective replacement exemption |
CN1798097A (zh) * | 2004-12-24 | 2006-07-05 | 腾讯科技(深圳)有限公司 | 一种缓存流媒体数据的方法 |
CN1947424A (zh) * | 2004-04-22 | 2007-04-11 | 皇家飞利浦电子股份有限公司 | 提供并行访问多维数据值阵列的数据处理设备 |
CN101127989A (zh) * | 2007-09-11 | 2008-02-20 | 中兴通讯股份有限公司 | 一种支持手机超文本传输流媒体业务的方法 |
CN104111900A (zh) * | 2013-04-22 | 2014-10-22 | 中国移动通信集团公司 | 一种缓存中数据替换方法及装置 |
CN104391653A (zh) * | 2014-10-31 | 2015-03-04 | 山东超越数控电子有限公司 | 一种基于数据块的高速缓存设计方法 |
CN105068941A (zh) * | 2015-07-31 | 2015-11-18 | 浪潮电子信息产业股份有限公司 | 一种缓存页面替换方法及装置 |
CN108021514A (zh) * | 2016-10-28 | 2018-05-11 | 华为技术有限公司 | 一种缓存替换的方法和设备 |
CN108399047A (zh) * | 2017-02-06 | 2018-08-14 | 中兴通讯股份有限公司 | 一种闪存文件系统及其数据管理方法 |
-
2018
- 2018-09-12 CN CN201811062577.XA patent/CN110895515B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5381539A (en) * | 1992-06-04 | 1995-01-10 | Emc Corporation | System and method for dynamically controlling cache management |
US6772199B1 (en) * | 2000-09-14 | 2004-08-03 | International Business Machines Corporation | Method and system for enhanced cache efficiency utilizing selective replacement exemption |
CN1947424A (zh) * | 2004-04-22 | 2007-04-11 | 皇家飞利浦电子股份有限公司 | 提供并行访问多维数据值阵列的数据处理设备 |
CN1798097A (zh) * | 2004-12-24 | 2006-07-05 | 腾讯科技(深圳)有限公司 | 一种缓存流媒体数据的方法 |
CN101127989A (zh) * | 2007-09-11 | 2008-02-20 | 中兴通讯股份有限公司 | 一种支持手机超文本传输流媒体业务的方法 |
CN104111900A (zh) * | 2013-04-22 | 2014-10-22 | 中国移动通信集团公司 | 一种缓存中数据替换方法及装置 |
CN104391653A (zh) * | 2014-10-31 | 2015-03-04 | 山东超越数控电子有限公司 | 一种基于数据块的高速缓存设计方法 |
CN105068941A (zh) * | 2015-07-31 | 2015-11-18 | 浪潮电子信息产业股份有限公司 | 一种缓存页面替换方法及装置 |
CN108021514A (zh) * | 2016-10-28 | 2018-05-11 | 华为技术有限公司 | 一种缓存替换的方法和设备 |
CN108399047A (zh) * | 2017-02-06 | 2018-08-14 | 中兴通讯股份有限公司 | 一种闪存文件系统及其数据管理方法 |
Non-Patent Citations (3)
Title |
---|
WONG, PETRIE AND FENG ,等: "TLB misses: The Missing Issue of Adaptive Radix Tree?", ASSOCIATION FOR COMPUTING MACHINERY, 31 May 2015 (2015-05-31) * |
孙冰勇: "浪潮双控制器存储服务器缓存模块设计与实现", 中国优秀硕士学位论文全文数据库-信息科技辑, vol. 2017, no. 1, 15 January 2017 (2017-01-15), pages 15 - 28 * |
孙冰勇: "浪潮双控制器存储服务器缓存模块设计与实现", 中国优秀硕士学位论文全文数据库——信息科技辑, vol. 2017, no. 1, 15 January 2017 (2017-01-15), pages 15 - 28 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112069433A (zh) * | 2020-09-10 | 2020-12-11 | Oppo(重庆)智能科技有限公司 | 文件页面处理方法、装置、终端设备以及存储介质 |
CN112131009A (zh) * | 2020-09-30 | 2020-12-25 | Oppo广东移动通信有限公司 | 一种内存调度方法、装置及计算机可读存储介质 |
CN112131009B (zh) * | 2020-09-30 | 2024-04-02 | Oppo广东移动通信有限公司 | 一种内存调度方法、装置及计算机可读存储介质 |
CN113849125A (zh) * | 2021-08-30 | 2021-12-28 | 北京东方网信科技股份有限公司 | 一种cdn服务器磁盘读取的方法、装置及系统 |
CN113849125B (zh) * | 2021-08-30 | 2024-01-09 | 北京东方网信科技股份有限公司 | 一种cdn服务器磁盘读取的方法、装置及系统 |
CN114296733A (zh) * | 2021-12-06 | 2022-04-08 | 北京达佳互联信息技术有限公司 | 内存处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110895515B (zh) | 2024-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5592489B2 (ja) | キャッシング情報のシステム及び方法 | |
CN110895515B (zh) | 内存缓存管理方法、多媒体服务器及计算机存储介质 | |
JP3880581B2 (ja) | キャッシュのロックを使用するストリーミング・データ | |
US8311964B1 (en) | Progressive sampling for deduplication indexing | |
CN107197359B (zh) | 视频文件缓存方法及装置 | |
US10432723B2 (en) | Storage server and storage system | |
US20170149860A1 (en) | Partial prefetching of indexed content | |
JP2009026141A (ja) | キャッシュ方法及びキャッシュ装置 | |
WO2010115325A1 (zh) | 分布式文件系统中业务内容处理、更新方法与装置 | |
KR102402780B1 (ko) | 메모리 관리 방법 및 장치 | |
WO2016164282A1 (en) | Collaboration data proxy system in cloud computing platforms | |
US20240323458A1 (en) | Video playback method and apparatus, device, and readable storage medium | |
US7644108B1 (en) | Network acceleration device cache supporting multiple historical versions of content | |
US20200019514A1 (en) | Client-side caching for deduplication data protection and storage systems | |
US7249219B1 (en) | Method and apparatus to improve buffer cache hit rate | |
US9928174B1 (en) | Consistent caching | |
US11593268B2 (en) | Method, electronic device and computer program product for managing cache | |
US10831369B2 (en) | System and method for synchronizing caches after reboot | |
WO2016090985A1 (zh) | 缓存的读取、读取处理方法及装置 | |
KR20070035911A (ko) | 부분 캐싱 방법 및 이를 이용한 적응형 콘텐츠 전송 방법 | |
US10705978B2 (en) | Asynchronous tracking for high-frequency and high-volume storage | |
US10341454B2 (en) | Video and media content delivery network storage in elastic clouds | |
US10686906B2 (en) | Methods for managing multi-level flash storage and devices thereof | |
JP6529577B2 (ja) | 情報指向ネットワーキング(icn)ルータ | |
US20200272568A1 (en) | Adaptive retrieval of objects from remote storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20241010 Address after: 210012 No. 68, Bauhinia Road, Ningnan street, Yuhuatai District, Nanjing, Jiangsu Applicant after: Nanjing Zhongxing New Software Co.,Ltd. Country or region after: China Address before: 518057 Ministry of justice, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong Applicant before: ZTE Corp. Country or region before: China |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TG01 | Patent term adjustment | ||
TG01 | Patent term adjustment |