(计算机系统结构专业论文)操作系统页面缓存优化技术研究.pdf_第1页
(计算机系统结构专业论文)操作系统页面缓存优化技术研究.pdf_第2页
(计算机系统结构专业论文)操作系统页面缓存优化技术研究.pdf_第3页
(计算机系统结构专业论文)操作系统页面缓存优化技术研究.pdf_第4页
(计算机系统结构专业论文)操作系统页面缓存优化技术研究.pdf_第5页
已阅读5页,还剩72页未读 继续免费阅读

(计算机系统结构专业论文)操作系统页面缓存优化技术研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 随着二级存储设备与主存在传输速度上的差距不断扩大,磁箍i o 逐渐成为 影响计算机系统性能的主要因素,甚至是限制系统平均性能的瓶颈。作为操作 系统中磁盘缓存的最主要形式,页面缓存( p a g e c a c h e ) 机制与文件读写执行流 程有非常紧密的联系,直接影响着磁盘i o 性能。页面缓存管理是操作系统虚存 管理子系统的重要组成部分。 本文以改进磁盘i 幻平均性能为目标,以实际系统中出现的一系列i o 问题 为着手点,针对操作系统页面缓存提出相应的优化技术,并在l i n u x 操作系统内 核中进行了原型实现与实验评价。由于磁盘i 0 对服务器系统的影响尤其显著, 本文特别针对网络服务器应用对这些优化技术进行了实验测试与分析。 操作系统中页面缓存有三个基本的管理与优化问题:替换,预读,写回。针 对这三个基本问题,本文进行了如下三个方面的研究工作: 1 改进的页面替换 当系统进行大量的文件读写后,页面缓存空问的过度扩张会导致进程交换现 象发生,急剧降低系统中关键应用程序的执行速度。本文设计并实现了交换行 为的有效控制接口,保证进程映射页面在未超过预定比例的情况下,不会被换 出到磁盘的交换区中。 在观察到文件大小属性对重复访问可能性影响的基础上,本文进一步提出 “抵制大文件的页面l r u 排序”技术来改进页面替换管理,目的是避免大文件 占掘大部分缓存页面而把更有可能被重复访问的小文件换出。简单的模拟实验 和严格的w e bs e r v e r 负载测试都证明陔技术对于系统i o 稳定性具有积极意义。 2 前摄的文件预读 频繁的缓存不命中所造成的磁盘i o 延迟是制约大数据集w 曲服务器性能的 主要因素。本文针对h t t p 连接处理的文件访问特征,提出并实现了“i ,j 摄” 的文件预读策略一在o p e n ( ) 系统调用中启动读操作把文件数据从磁盘读入到 页面缓存中。通过响应延迟与吞吐量两个方面的实验测试,这种激进的预取优 化能够将h t t p 处理响应延迟降低2 0 8 0 ,在并发连接数目不高的情况下使 服务器磁盘i o 的平均吞吐量获得1 5 4 0 的提高。 3 公平的写回控制 本文提出了“公平写回控制”框架,旨在对页面缓存中的“脏”页面提供更 好的写回控制,进而改善写性能。针对并发写操作所引起的脏页滞留现象,本 文在详细分析l i n u x 文件写回调度算法的基础上,设计并实现了c f w ( c o m p l e t e l yf a i rw r i t e b a c k ) 写回调度算法。该算法能够有效解决大文件写回饥 饿或写回缓慢问题,从而消除了脏页滞留现象。针对大规模写的进行对萨常写 操作所造成的影响,本文进一步实现了d w t ( d i s c r j m i n a t i n gw r i t t e rt h r o t t l i n g ) 写抑制机制,以消除l i n u x 写抑制策略的不公平性。 关键词: 页面缓存操作系统虚存管理i o 优化l i n u x 内核 a b s t r a c t w i t hc o n s t a n t l ye x p a n d i n go ft h es p e e dg a pb e t w e e nt h es e c o n d 一1 e v e ls t o r a g e ( c o m m o n l yd i s kd e v i c e s )a n dt h em a i nm e m o 阱 d i s ki o g r e a t l yi m p a c t st h e p e r 士o r m a n c eo tc o m p u t e rs y s t e m s ,a n dm o r e o v e rh a sb e c o m eab o t t l e n e c kt h a tl i m i t s a v e r a g es y s t e mp e r t o m l a n c e a st h em a i nf o r mo fd j s kc a c h e s i nt h e0 s t h e p a g e c a c h em e c h a n i s mc l o s e d l yi n t e r a c t sw i t hb u 们、e r e d 蜀】er e a d w r i t eo p e r a t i o n s , a n dt h u sp l a y sa ni m p o i r t a n tr o l ei ni m p r o v i n gd i s ki 0 p e r f o n n a n c e t h e r e f o r e t h e p a g e _ c a c h ei so n eo fk e yc o m p o n e n t so ft h ev i r t u a lm e m o r l rs u b s v s t e m w i t ht h eg o a lo fi m p r o v i n ga v e r a g ed i s ki o p e r f ;睁r i n a n c ea n dt h et a r 2 e to fa s e r i e so fi oi s s u e se m e 略e di np r a c t i c a ls y s t e m s ,t h i st h e s i sp r e s e n t sc o 仃e s p o n d i n g o p t l m l z a t l o nt e c l l n l q u e s t o o p t i m i z et h eo sp a g e c a c h e m a n a g e m e n t t h e o p t i m l z a t i o nt e c h i n i q u e sp r o p o s e di si m p l e m e n t e da n de v a l u a t e di nt h el i n u xk e m e j : j np a r t l c u l a r t h e ya r ee x p e r i m e n t e db yn j n n i n gi n t e m e ts e r v e ra p p l i c a t i o n sw h i c h a r e m o r es e n s i t i v et od i s ki op e r f b 肿a n c e t h e r ea r et h r e eb a s i ci s s u e sf o rt h e o sp a g e c a c h e m a n a g e m e n ta n d o p t i m i z a t i o n ,w h j c ha r er e p l a c e m e n t ,r e a d a h e a da n dw r i t e b a c k f o c u s i n go nt h et h r e e f h n d a m e n t a li s s u e si nc a c h i n gm a n g e m e n t ,t h i st h e s i sc a i t i e st h r o u g hr e s e a r c hi nt h e f o l l o w i n gr e s p e c t s : 1 0 p t i m i z e dp a g er e p l a c e m e n t a r e rm a n yi i l er e a d w r i t e o p e r a t i o n sa r ep e r f o n l l e d ,t h ep a g e c a c h es p a c e e x p a n d ss o1 a 唱et h a ts w a p p i n ge v e n t u a l l yo c c u r s jw h i c hs l o w sd o w nt h es d e e do f 1 n l p o r t a n ta p p l i c a t i o n sj nt h es y s t e m t h et h e s i sp r o v i d e sa n di m p l e m e n t sab e t t e r i n t e r t a c et ot u n et h ep r o c e s ss 、 ,a p b e h a v i o r :“e n s u r e st h a tp r o c e s sp a g e sw i l ln e v e r b es w a p p e dt ot h es w a pa r e ao nt h ed i s ki ft h ep r e d e 行n e dr a t i oi sn o te x c e e d e d 。 t h i st h e s i so b s e r v e st h a tt h e 西】es i z ep r o p e n yh a sa nj m p a c to nt h er e a c c e s s i n g p r o b a b i i i t y ;a n df u n h e 咖o r ei tp r o p o s e st h e 爿 f f n 馏p 一厅把尺us c h e m ei no r d e rt o m 1 l m l z et h ec h a n c et h a tav e r yl a r g en l eg r a b st h ep a g e c a c h ea n dr e p l a c e so t h e r s n l a 】ln l ep a g e s b o t hs y n t h e t i cb e n c h m a r k sa n dm o r ep r a c t i c a lw e b s e r v e rt e s t i n g i i 墼 8 h o wt h a tt h i ss c h e m ej ss i g n i n c a n tf o rs y s t e m i os t a b i i i t y 2 p i o a c t j v er e a d a h e a d d i s kl ol a t e n c yc a u s e db yf r e q u e n tc a c h em i s s e sj s 1 em a i nf a c t o rc h a t i m p a c t s t h ep e r f o m a n c eo fl a r g e d a t a s e tw e b s e r v e 琏e x p l o i t i n g 出en l ea c c e s s ;n 砭f e a t u 陀so f i i t t pc o n n e c “o n h a n d i i n g , t h i st h e s i sp r o p o s e sa n d i m p l e m e n t sa “口r o a c t i v e , r e a d a n c a dp o j l c y ,1 c - 册q 兜行陀蒯砌f 趟w h i c h b o o s t sw e b s e f 、,e r 口e 而咖a n c e t n o u g hp r e d i c t i v e6 1 ep r e f e t c h i n g t h j st e c h n i q u eh a sb e e n e v a 】u a t e db vt w o w e b s e r v e 。s , l nb 0 1 【1 1 r e s p o l l s el a t e n c ya n do v e r a l l t h m u 曲p u t , a n dp d u c e s 2 0 8 0 a 1 1 dj 5 4 0 s p e e d u p s ,陀s p e c t i v e j y 3 f a i r j j t e b a c kc o n ”o l 仆1 st h e s l 8p r e s e n t st h e “f a i rw r “e b a c kc o n l l 。o j f h r n e w o r k ,a j m j n gt op r o v i d e b e t t e rc o n t 丁o it o rw n t i n go u tt h e d i r t yp a g e si nt h ep a g e c a c h es oa st oi m p r o v ew r i t e p e r t o m l a nc e i tc o n s l s t so ft h eo 叩,p ,兽咖忍一脚i 阳6 臼幽( c f w ) 忻i t e s c h e d u i e a l g o r i t ,w h i c he 怖c i e n t l ys o l v e st h ei s s u eo fl a r g c f 1 ew m o u ts t a a t i o n o r 8 l o w n e 5 s ,a n dt h ed 如c r f m f 玎盯f 吆附i 把n r o f ,i 增( d w t ) p o l i c y ,w h i c h p r o t e c t s n o n n a l 州t ep r o c 号s s e sa g a i n s tt h eb a c k g l o b n dm a s s i v e w r i t eo 口e r a t i o n k e y w o r d s : ? ? g e - ? c h e ;,o p e r a t i n gs y s t e m s ;v i n u a lm e m o 掣m a n a g e m e n l :i oo p t i m i z a f i o n ; l 如u xk e r 力e l 。 1 1t 插图目录 插图目录 图2 1 文件读写的管理层次6 图2 2a d d r e s ss p a c e 对象主耍亨段8 图2 3r a d i xt r e e 举例一9 图2 4b u f f e rp a g e 与b u f f e r h e a d 关系匀:意图1 0 图3 1 内存资源消费者1 6 图3 2 大文件拷贝前后的内存使用: 犬况17 图3 3 交换避免控制机制实现2 1 图3 4 实验3 3 测试结果:2 3 图3 5a i ,f l r u 内核调用路径2 4 图3 6l r uc a h c ea d dt a i l 实现2 6 图3 7a d dt op a g el r ut a i l 实现与调用2 7 图3 8a l f l r u 向w e b s e r v e i 负载沏0 试2 9 罔4 一 t t p 响应流程3 3 图4 20 2 r a 内核实i 见3 5 图4 3 响应时l 日j 对比图3 7 图4 4p o t h r e a d 与n p t l 吞l j i 量埘比3 8 图4 50 2 r a 对p o t h e e n 和t h i t p d 吞吐量的影响3 9 图5 一l 文件写回执行路径4 5 图5 2s y n c s b i n o d e s ( ) 控韦0 逻辑,4 6 图5 3b u f f e r e d w 1 j t e 部分执行路径4 7 图5 4b a 】a n c c d jj 1 y p a g e s ( ) 3 ;上l 1 8 5 5si o 舣端队夕0 的爻现5 2 图5 6c f w 的二次启发式拧制5 3 匿l5 7d w t 算法拙i j 尘5 5 图5 8d w t 有效件测试结果5 6 第1 章结论 第1 章绪论 1 1 磁盘i ,o 与操作系统页面缓存 磁盘是用来支持文件访问与虚存分页的最普遍的二线存储设备。磁盘容量的 增长速度能够与快速发展的数捌存储需求4 | 匹配,但足磁盘性能的提高远远滞 后于c p u 和内存,因而成为现代计算机系统的个1 i 耍瓶颈。磁盘i o 对舀i 线 服务器系统的影响尤其显著:槲比以交互式任务为主的桌面系统,现代网络服 务器尤其大数据集的w e b 服务器,是磁盘i o 非常密集的系统。 磁盘性能受限于它的机械操作,包括机械臂移动与盘片旋转,因为只有通过 这两个机械操作,磁头才能到达数据传输的正确位置。磁盘的这种属性决定了 它最突出的性能特点:擅长顺序块读写,不善于随机i o ,i o 延迟非常大。 为了进行多层次的管理与优化以提高磁瑶访i 、口j 性能,现代操作系统的磁盘 i o 管理由多个内核组件配合完成:磁盘缓存,具体文件系统,i o 调度器,与 磁盘驱动程序。磁盘缓存机制利用数掘访问的时问局部性,把磁盘数据缓存在 主存中。磁盘缓存可以有效的减少磁龠访问次数和府用秆序的i o 等待时阳j 是 操作系统改进磁盘i o 。盹能的重要优化f 段之。 对于l i n u x 、b s d 等现代操作系统来说,磁盘缓存的形式包括页面缓存( p a g e c a c h e ) ,文件系统索引结点缓存( i n o d ec a c h e ) 以及文件系统目录项缓存( d e n t r v c a c h e ) 。其中页面缓存以页面为单位缓存文件数掘以及部分进程地址空问的数 据,是最主要的磁盘缓存形式。页面缓仔管理与文件改写路径紧密联系在起, 慰搽作系统虚存。,系统的重要组成部分【b o v e t 0 6 s i l v e r s 0 0 】。 1 2 本文工作 1 2 1 研究目标 从寄存器、l 1 l 2 高速缓存、i 存、i ! 凡j 存,剑磁船,) j f :盛:廊带存储网络,计 算机的各级存储器坝f ,f 细成了一个金j 刊备绀1 = ;:j 。越足底j z 仃储容量越犬,然而 访问速度也越慢,具体表现为更小的带宽和更大的延迟。缓存( c a c h i n g ) 【c a c h e 】, 作为优化存储访问性能的基本技术,被应用到各级存储系统中,因而很自然的 彤成一个会字塔形的逐层缓存结构【吴0 7 】。 各个存储层次的缓存技术都要面对三个基本的缓存管理和优化问题: a 回收( r e c i a i m i n g ) :缓存资源足有限的,因此要回收缓存空【日j ,保证 能够从慢速存储中加载新数掘。回收也常被称为替换( r e d l a c e m e l l t ) 。 b 预取( p r e f e t c h j n g ) :从慢速存储中提i ,j j 加载数掘到缓存。预取能够有 效地降低访问延迟。预取也常被称为预读( r e a d a l l e a d ) 。 c 写回( w r i t e b a c k ) :修改后的“脏”数据在缓存中停留一段时问再保 存到慢速存储。这种推迟写( d e f 、e r r e dw r i i i n 2 ) 技术可以降低慢速存 储的访问频率。 页面缓存( p a g e c a c h e ) 是操作系统中磁嚣缓存的最主要形式,与文件读写 执行流程有非常紧密的联系。页丽f 缓存的替换、预读、与写回控制则直接影n 向 着系统的i 0 性能。 本文以改善磁盘i o 平均性能为目标,幽绕这三个基本问题,对操作系统页 面缓存的叫收、预耿、与写回管理分别做出优化尝试。以改善i o 平均性能为目 卡j i 意味蓿:一一方面,提高磁盘i o 峰值性能吼总夼f | f 苗:另方面,改进系统i o 的稳定性,使得系统性能存各种i 0 请求模式下部表现得十分稳j 之。 1 2 2 实验平台与研究方法 本论文选择l i n u x 内核作为实验平台来实现和评价本文所提出的优化技术。 l i n l l x 是一个成熟、稳定的操作系统内核。旧内外的等私存线网站如b a i d u ,g o o 笆1 e 的服务器普遍部署的足l i m 。存:2 0 0 7 年1 1 月1 2f 公以j 1 勺个球7 r ( ) p 5 0 0 计算 机中,有3 8 1 台计算机部署的操作系统是l j n l i xl t 0 p 5 0 0 】。更重要的是,l i n l i x ,f :放源码,有一个活跃的开发群体。因此,l h l x 是进行操作系统研究最好的实 验工具。 本论文采用了以实验为c l 心的研究几;:,f 1 j | l c a t p r o c m e m i n f 0 m e m t o t a i :2 0 3 1 9 7 2k b m e m f r e e :113 6 0 2 4k b c a c h e d :2 4 3 9 7 r 6k b s w a p c a c h e d : ok b s w a d 。r o t a i2 10 4 4 7 2k b s w a d f r e e2 10 4 4 7 2k b a n o n p a q e s : 3 12 6 6 4k b m a p p e d :1 8 1 5 8 0k b 一 d di 仁d e v z e r oo f = l m p t m p xb s = 4 kc o u n i = 4 0 0 0 0 0 一 c a t ,p r o c m e m i n f o m e m t o i a i :2 0 3 19 7 2k b m e m f r e e :5 5 4 3 2k b c a c h e d : 1 2 5 9 1 18k b s w a p c a c h e d :9 0 8 8 4k bj ;f 交换发生 s w a p t 0 t a l 2 10 4 4 7 2k b s w a p f r e e 2 0 0 4 5 8 8k b a n o n p a a e s :2 9 3 5 8 3k b m a p p e d : 14 2 8 3 2k b 图3 - 2 大文件拷贝前后的内存使用状况 实际上,关键应用被换出所造成的系统稳定性影响要比多缓存些文件页面而 带来的性能提升要大的多。但是,l i n u x 至今没有明确的控制s w a p p i n g 行为的系 统接口。 3 1 - 2 - 2 错误的页面替换 对大文件的访问会导致页面缓存命中率急剧降低。比如说,当后台的管理员 通过w g e t 拷贝一个j 仃台w 曲服务器的同志文件f 通常有几百兆到) 时,陔服务 器会出现响应延迟增加、吞i l i 量卜降。可以通过如下实验束演示该问题。 实验3 2 :大文件读对页面缓存的冲击 第3 章改避的页面替抉 实验配置: 2 gr a mji n t e lc o r e 2d u oc p u ,l i n u x 一2 6 ,21 内核 实验流程: 1 创建】o o 个5 m 的文件a 1 ,a 2 ,a 】o o ,这百个文件都被读入页面缓 存中 2 ,连续读这】0 0 个文件a 1 ,a 2 ,a 】o o ,查看平均读操作时j b j :o 4 l s 3 然后连续拷贝2 个8 0 0 m 的文件b l 和b 2 4 再读文件a i ,a 2 + a 】0 0 ,查看平均读时叫:o 5 6 s 步骤3 在读文件b 2 时发生缓存页面替换。比较步骤1 与步骤3 中读操作时 | 、日j ,不难看出,步骤3 中被替换出页面缓存是那一系列小文件aj ,a 2 ,a 】o o 的页面。两个大文件强占了页面缓存,迫使那些会重复访问的小文件页面被换 m 。 3 2 问题定位 3 2 1 进程交换控制接口 映射到用户进程地址空问的内存页面称为进程页面( p r o c e s s p a g e s ) ,又称映 射页面( m a p p e dp a g e s ) 。映射页面又分成两类:匿名负面( a n o np a g e s ) ,主要 是进程的用户态堆栈;执行了内存映射m m a p ( ) 的文件页衙( f 】e 一几1 a p p e dp a g e s ) 。 如果个进程页面彼回收,那么它的内容要先写入到磁盘的对换空间( s w a p a r e a ) ,这种现象称为交换( s w a p ) 。 l j n u x 向用户提供了控制交换行为的系统参数p r o c s y s ,v m s w a p p i n e s s 。交换 l - j 1 能性是这样计算的: s w a pr j i e n d e n c y = m 8 p p e d j a t o f 2 _ d j s t f e s s v m s w a p p i n e s s 通过减小佃r o c s y s v m s w a p p i n e s s 可以降低换出的可能性,但是这并不能明 确地保证进程不会被换出,因为只要d i s t r e s s 值足够大,v ms w a p p i n e s s 就不会 起任何作用。把p r o c s y s v m s w a 印i n e s s 设成0 能够最低限度地保证交换不发,i 换出;但是这种与法常常会引起系统稳定性问题:当f j 存jj i 力很大时,o o mk “ 讥制会杀死迸 罕m a c b a i n e r e v e l f l 。 1 8 第3 章改进的页而替换 根据上面的分析,应该为系统管理员提供更加明确的控制接口,来控制交换 发生的条件。实际上,用户所希望的是一种类似“如果进程页面不超过2 0 , 那么不要交换”的控制语义。 3 2 2 页面l r u 排序 现代操作系统普遍采用近似的l r u 作为虚存系统的页面替换算法。l i n u x 内核在每个内存区中维护了两个链表,a c t j v el i s t 与i n a c t i v ej i s t ,形成一个逻辑 上的l r u 栈,页面缓存页面根据访问时间顺序压入到l r u 栈中。 以实验3 2 为例,按照l i m i x 内核的页面l r u 管理策略,l r u 栈中页而序 列的变化情况是这样的: 1 对小文件a 1 ,a 2 ,a 1 0 0 读,这些文件页面都放到p a g e c a c h e 中。 l r u 队歹0 专f a i l 【p a g e s ( a 1 ) ,p a g e s ( a 2 ) ,p a g e s ( a 1 0 0 ) 】h e a d 2 读大文件b 1 到p a g e c a c h e ,因为此时p a g e c a c l l e 有足够空间。 l r u 队歹0 专l a i l 【p a g e s ( a 1 ) ,p a g e s ( a 2 ) ,p a g e s ( a 10 0 ) ,p a g e s ( b 1 ) 】h e a d 3 对大文件b 2 读,页面缓存空间不足,需要管换页面。在l r u 栈底的页 面将被替换。 l r u 队歹u l a i l 【p a g e s ( b 1 ) ,p a g e s ( b 2 ) 】h e a d 4 又读文件a 1 ,a 2 ,a 1 0 0 ,替换出l r u 栈底的一些页面,把a 1 ,a 2 a 10 0 页面放到p a g e c a c h e 中。 由此可以看到,页面l r u 排序只考虑时l 日j 而没有考虑到重复访问的可能性。 文件的大小和访问模式之间有一种联系:小文件更有叮能被重复访问,大文件 通常足一次性的顺序读写。而且,大文件的访问模式通常是大块的读、连续地 读( 如拷贝数扼,观看电影等) ,这意味这即使第一次读在缓存中没有命中,页 面缓存的预读机制能够补偿大文件的读性能损失。 因此,小文件的页面应该被缓存较长时i h j ,大文件的页面应当更先被蟹换出 去。当前的l i n u x 页面缓存的页面l r u 管理仅仪针对贝面的访问时l e 1 j 做l r u 排 序,没有考虑到文件的大小属性对重复访i 、口j 可能性的影n 向。针对这个问题,本 章所做的优化工作就是在页面l r u 管理中加入这样的考虑,尽量把大文件页面 放到l r u 栈的尾部,以避免大文件内容占据页面缓存而换出很可能被重复访问 的小文件页面。 第3 章改进的页面替换 3 3 明确的交换避免控制 3 3 1 用户接口 本文提出“明确的交换避免控制”( 简记为s w a pe v a d e ) 来解决不必要的迸 ,f 至换出问题。s w a pe v a d e 优化通过p r o c 文件系统向系统管理员提供接口。在 p r o c s y s v m 中增加个变量:s w a pe v a d er a t i o ,缺省为0 。用户可以通过为这 个变量赋值来为m a p p e dp a g e s 所占比重设一个阈值,当进程页面所占比例低于 该闽值时,保证换出不会发生。 确切地,该系统控制变量的语义定义如下: 如果进程页面( p r o c e s sp a g e s ) 比例小于s w a pe v a d er a t i o ,则进程页【面不会 被换出;否则按照v as w a p p i n e s s 所计算的激进程度来考虑换出进程页面。从限 制页面缓存的角度来看,该参数意味着尽量把页面缓存所占系统内存比例控制 在( 1 一s w a pa v o i dr a “o 1 0 0 ) 之内,如果p a g e c a c h e 比例超过这个值则只回 收缓存页面。 3 3 2 内核实现 3 3 2 1 接口实现 在i n c l u d e l i n u x s v s c t l m 与k e m e l s y s c t l c 中添加p r o c 控制接r 的声明与定义, 处理函数即p r o ch a n d l e r 设为p r o cd o i n t v e cm i n m a x 。 全局变量v ms w a pe v a d er a t i o 定义在v m s c a n c ,声明在s w a p h 。该变量记 录进程映射页面( m a p p e d _ p a g e s ) 所占比重的一个阂值,只要当前m a p p e d - p a g e s 所占叮利用主存页面的比重不超过这个阈值,保证交换不会发生。 3 3 2 。2 调整页面替换策略 为了实现“明确的交换避免控制”,就是要保证在m a p p e d p a g e s 比重彳i 超过 v n ls w a de v a d er a t i o 时仅替换页面缓存页而。 贝血回收操作有两个启动时机:分配页而操作进行直接回收,与k s w a p d 线 程执行周期性的回收。s h r i n kz o n e ( ) 是l i n u x 页面回收算法实现叶1 最核心的函数, 它实现对一个内存区( z o n e ) 的页面回收操作。周期性页面凹收( k s w a p d ) 和直 2 ( 第3 覃改进的页面替换 接回收( t r y - t o j r e e - p a g e s ) 都调用该函数。控制结构体s c a nc o n t r o l 用来控制 l r u 链表的扫描。 交换避免控制的实现涉及三处内核改动,如图3 3 所示。 1 在该结构体中增加个s w a pe v a d er a t i o 域; 2 在页面回收的主要入口处如t r y - i o f r e e a g e s ( ) 和b a l a n c e _ p g d a t ( ) ,为 s c a n c o n t r o j s w a p a v o i d r a t i o 赋值为v m s w a p e v a d e r a t i o ; 3 在s h r i n k z o n e ( ) 函数中加入对a n n o np a g e s + 6 l e m a p p e dp a g e s 比例的判 断,如果低于s c a n c o n t r 0 1 s w a p a v o i d r a t i o ,则s c a n c o n t r 0 1 m a y s w a p 设为0 。 这样在选择被替换的页面时,进程映射页面不会被考虑。 s c r u c fs c a n - c o n i r o i u n s i g n e dl o n gn l s c a n n e d : g f p fg f p m a s k : i n lm a y s w a p :此次回收是否可以进行交换 i n fs w a p c f u s l e l m a x : i n ls w a p p i n e s s :对应v m s w a p p in e s s + + i n ls w a p e v a d e r a l i 0 对应v m s w a p p in g e v a ( j e r a ti ( ) 。 i n la l i u n r e c l a i m a b i e : ) s l a t i cu n s i g n e dl o n gs h r i n k z o n e ( ) ,i fp r o c e s sm e m o r yi sb e i o ws w a p e v a d e r a l j ol h e nr e c i a i mp a g e c a c h eo n i y + i f ( s c 一 m a y s w a p ) l o n gm a p p e d r a c i o = ( ( g i o b a i p a g e s l a f e ( n r f 【l e m a p p e d ) + g i o b a i p a g e s s l a l e ( n r a n o n f a g e s ) ) 。1o o ) v m l o l a l p a g e s i f ( m a p p e d r a “o s w a p e v a d e r a l i o ) s c 一 m a y s w a p = o : 图3 - 3 :交换避免控制机制实现 + + + + + + 第3 章改进的页面替换 图3 3 中用“+ ”标记的行表示对内核函数的修改( 实际上,这是内核补丁 的标准格式) 。可以看到,交换避免控制的内核实现是非常简荦的。它并没有修 改页面替换算法本身。 3 3 3 实验验证 设计如下实验来验证“明确的交换避免控制”管理接口的有效性。 实验3 。3 :交换避免控制的有效性测试 实验配置: 2 gr a m ,i n t e lc o r e 2d u oc p u ,打上s w a l e v a d e 补丁的l i n u x 一2 6 2 1 内核 实验流程: 2 , j 4 启动大量的应用程序运行,如n r e f o x ,e v 0 1 u l i o n ,o p e n o 确c e 等待, 使得进程映射页面数( m a p p e d + a n o n p a g e s ) 约为5 0 0 m ,超过实验 5 一l 中的值。 查看系统内存使用情况。 设定p r o c s y s v m s w a pe v a d er a t i o 为4 0 。 在后台拷贝一个1 g 的大文件,同时连续编译2 6 2 1 _ 与2 6 2 5 r c 9 两个 l i n l l x 内核版本一这是更加实际的应用,两个内核版本编泽后的大 小分别为2 8 3 5 m 和3 2 0 m 。 全部操作都完成后,再观察物理内存的使用情况。 实验结果:图3 4 是实验结果的示意图。在该实验中,交换没有发生。 一 c a t 抽r o d m e m i n f o m e m t o t a i :2 0 3 19 7 2k b m e m f r e e :1 0 1 0 8 2 3k b c a c h e d :2 12 4 8 8k b s w a i ) c a c h e d :0k b s w a p t 0 t a i 2 10 4 4 7 2k b s w a p f r e e 2 10 4 4 7 2k b a n o n p a g e s : 3 5 0 8 9 5k b m a p p e d : 18 9 5 7 3k b 一 s u - c “e c h o4 0 ,p r o c ,s y s ,v m s w a pe v a d er a t i o ” 一 d di f = d e v z e r oo f = i m p t m p x b s = 1mc o u n l = 10 0 0 一 撑c o m p i l et h et w ok e r n e lv e r s i o n s 2 2 第3 章改进的页面替换 一 c a t p r o c m e m i n f 0 m e m t 0 t a i :2 0 3 19 7 2k b m e m f r e e :5 6 9 9 2k b c a c h e d : 12 9 8 8 8 8k b s w a p c a c h e d : ok b 撑s w a p p i n gn e v e rh a p p e n e d s w a p t o t a i 2 10 4 4 7 2k b s w a p f r e e2 10 4 4 7 2k b a n o n p a a e s :3 5 0 9 8 3k b m a p p e d : 1 9 0 0 3 2k b 图3 - 4 实验3 3 测试结果 实验3 3 与实验3 一l 的对比充分证明了s w a p h a v o 诏一r a t i o 机制的有效性,如 表3 1 所示。在实验3 3 中,进程页面大小( m a p p e d + a n o n p a g e s ) 超过了实验 实验3 1 ,但由于设定s w a p - a v o d 一豫t i o 为4 0 后,交换没有发生。 表3 1 :实验3 3 与3 。1 数据对比 3 4 抵制大文件的页面l r u 3 4 1 设计思路 针对第一节所述的“错误的页面l r u 顺序”问题,本章提出对l i n u x 页面 l r u 管理的一个优化技术:抵制大文件的页而l r u 排序( a n t i l a r o e f i l el r u ) , 记作a l f l r u 。 内核在把一个文件从磁盘读入缓存的时候,每读入一个页西i 都把页面描述符 放到i n a c t i v el r u 链表的头部,期望它能够尽快被苇新访问而不是被替换出去, 因为当页面回收启动时,i n a c t i v e 链表尾部的贞面会被先被替换。 a l f l r u 的基本思想是在文件读的执行路径中对文件大小进行判别,如果 被读的文件很大,就把初次被访问的文件页咖放到i n a c t i v e 链表的尾部。这样当 系统窄闲页面不足而需要替换页面时,这些大文件的页面会被错换出去。 目i ,ja l f l r u 仅针对渎操作,没囱考虑i ;操作。主要原i 列赴针对读操作的 2 : 第3 章改进的页面替换 实现比较简单一读的过程中文件大小不变,而写操作会改变文件大小。另外, 大文件的访问模式一般是读,而且多为一次顺序读。 经验性地,把判断大文件的标准设为超过内存总量的1 8 。下一步工作会提 供一个p r o c 管理接口,用户可以根据系统的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论