您当前的位置:首页>论文资料>Linux内核分析:页回收导致的cpu load瞬间飙高的问题分析与思考

Linux内核分析:页回收导致的cpu load瞬间飙高的问题分析与思考

资料类别:论文资料

文档格式:PDF电子版

文件大小:2.17 MB

资料语言:中文

更新时间:2024-12-20 08:20:59



推荐标签:

内容简介

Linux内核分析:页回收导致的cpu load瞬间飙高的问题分析与思考 学术论坛
Linux内核分析:页回收导
教事投本开写流用
致的 cpu load 瞬间飙高的问题分析与思考
陈李飞
(苏州高等职业技术学校江苏苏州215009)
摘要:本文主要讨论在Linux系统内核在页回收时出现cpuload瞬间鼠高的问题,主要表现为Linx系统响应慢,我们从内核的角度分析了乎致该问题的几种可能情况。我付可以借助提高watemmarklow可以尽早的唤醒kswapd,然后kswapd来做background reclaim。Linux内核提供了各种各样的机制,我付根据具体的使用场景来选择使用合适的策略。从而实现系统性能的提升。
关键词:linux内核分析页四收中图分类号:TP31
文献标识码:A
文章编号:1007-9416(2016)12-0252-01
Abstract:This article main discuxsion in Linux kernel CPU load instantly soared during pp recycling problems, main show is Linux system response is slow, we analyzed the catse ofthe problem from the Angle of the kemel several posible situation. We can help improve the watemark low can awaken kswapd as soon as poxsible, then kswapd to do background reclaim. The Linux kemel provides a variety of mechanisms, we according to the specific usage scenarios to choose to use the right strategy. So as to realize the system performance improvement.
Key Words:Linux;kernel analysis;page recovery
1前言
搜索团队的服务器前段时闻额警出现CPU1oad很高(比如load average达到80多)的情况,希望能借助这个机会给大家介绍一下在 Linux系统出现间题时我们能够借助哪些工具去协助分析,以及介绍一下Linux在内存管理方面的一些机制以及我们的使用策略。 2Linux系统出现常见问题的分析
在Linux系统里面有很多的间题定位工具,可以协助我们来分析间题,于是我们就针对目前搜索服务器的现象,思考可以借助邮些工具来找到问题原因。
Linux系统响应慢,从内核的角度看,大致可能有以下几种情
况:
(1)线程在内核态执行的时闻过长,这个时间超出了它被调度算法给分配的执行时间,它在内核态长时间的占用CPU,而且也不返回用户态,这种现象有个术语,叫做softlockup。
通过一个现象来简单说下内核态和用户态。我们可能遇到这个现象,执行完一个命令,CTRL+C怎么都杀不死它,而且敲键盘也反应,这可能就是因为此时这个进程正运行在内核态,CRTL+C是给进程发signal的方式通知进程,而进程只有在从内核态返回用户态的时候才会去检查有没有信号,所以如果它处在内核态的话显然是无法被杀死的。这种现象就给我们系统很忙的感觉。
(2)CPUload值高,说明处于Running状态和D状态的线程太多。线程等待资源而去睡眠,就会进人D状态(即Disk sleep,深度睡眠),进人D状态的线程是不能够被打断的,他们会一直睡眠直到等待的资源被释放时主动去唤醒他们。(大致的原理是,这些线程在等待什么资源,比如某个信号量,它就会被加入到这个信号量的等待队列里,然后其它的线程释放这个信号量的时候会去检查该信号量的等待队列,然后把队列里线程给唤醒。)
(3)在内核态,除了进程上下文外,还有中断上下文。中断也可能有异常,比如长时间被关中断,中断长时闻被关闭,这个现象叫做 hardlockup
针对hardlockup,内核也有监测机制,是NMIwatchdog。可以通过/proc/interrupts来看系统是否使能了NMIwatchdog。如果值不为0,说明系统使能了NMIwatchdog。然后我们通过sysctl将 kernel.nmi_watchdog设置为1,即,在触发了NMIwatchdog的时
候主动让内核去panic。从而监测出hardlockup这种故障。 3解决问题
为了避免directreclaim,我们得保证在进程申请内存时有足
够可用的freepages,从前面的背景知识我们可以看出,提高water marklow可以尽早的唤醒kswapd,然后kswapd来做background reclaim为此,内核专门提供了一个sysctl接口给用户来使用:vm, extra_free_kbytes.
于是我们增大这个值(比如增大到5G,hohoho),确实也解决了间题。增大该值来提高low水位,这样在申请内存的时候,如果free的内存低于了该水位,就会唤醒kswapd去做页回收,同时又由于还有足够的free内存可用所以进程能够正常申请而不触发直接回收。 4总结和思考:机制与策略
从前面我们讨论的这个问题也可以看出,Linux内核提供了各种各样的机制,然后我们根据具体的使用场景来选择使用的策略。由于搜索服务器存在很多批量文件操作,所以对pagecache的使用很频繁,所以我们才选择了尽早的能够触发backgroundreclaim这个策略;而如果你的文件操作不颊繁,显然就没有必要去尽早的唤醒后台回收线程。另外一个,作为一个文件服务器,它对pagecache的需求是很大的,越多的内存作为pagecache,系统的整体性能就会越好,所以我们就没有必要为了数据的局部性而预留DMA内存,两相比较背定是pagecache对性能的提升大于数据的局部性对性能的提升;
而如果你的文件操作不多的话,那还是打开zone_reclaim的。 5结语
通过以上论述可以使我们更加熟悉与了解Linux的内核机制,可以和现场好多就地控制系统性能的提升,方便文件的操作,从而
使此L证ux系统的性能充分发挥,服务实际需要,参考文献
[1]赖竭.Linux内核分析及实时性改造[D].电子科技大学,2007.[2]张荣亮.LinuX操作系统内核分析与研究[D].江西师范大学,2007 技术分会、中国核学会核电子学与核探测技术分会,第十届全国核电子学与核探测技术学术年会论文集[C].中国电子学会
[3] IEC 618505 communication requirements for functionsand device mode ls[S].
[4JCLABCooperativeComputing & . CommunicationLaboratory.*Rea1TimeL / nuxi,universityof Paderhorm Bv Martin Eikermanm 2001.
[5]Krishna CM,Kang G s.实时系统.北京:清华大学出版社,2001.
收稿日期:20161207
作者简介:陈飞(1982一),女,江苏泰州人,硕士,讲师,研究方向:网络操作系统。方方数据
上一章:LCD与DLP投影机图像显示效果及性能比较 下一章:开发基于ERP的人力资源管理系统的必要性分析

相关文章

电源问题导致单片机死机的原因分析与改进 轴承与轴材料热膨胀系数不匹配导致的磨损问题分析 油止回阀问题导致的设备事故分析 页岩气开发的若干问题的分析与思考 LNG轻烃回收装置投产问题分析与处理 给水泵电机轴承温度高的分析与处理 平地机液压系统油温偏高的试验分析与改进 HT-L航天炉粗渣与滤饼中残炭含量高的原因分析