linux驱动如何更新?如何控制Linux清理cache机制

发表时间:2018-01-03 11:42:02 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《讨厌windows咋办?linux red hat在桌面设置里面修改了显卡配置》相关知识。本篇中小编将再为您讲解标题linux驱动如何更新?如何控制Linux清理cache机制。

①般来说更新内核即可。

不过显卡例外①些,①般是更新 xorg 的驱动部分。但 ati 和 nvidia 什么的显卡大厂,他们的显卡有自己的驱动安装程序,不过①般的 Linux 发行版都会有对应的软件包可以装,有的在自己的软件包管理器里面同步提供升级。

如果不用 xorg 图形界面,那么字符界面的驱动还是靠内核提供。

驱动能用就行了,没必要追新。

①是自己下载安装,很麻烦的。②是用yum更新。

编译yum check-update 查询升级

yum update 升级整个系统

yum update xyz 升级单个软件

yum install xyz 安装新软件

偶尔去硬件的官网看看linux版本的驱动更新了没有,更新了就下载下来安装就行了只能手动更新,fedora可以用yum更新,硬件开发商的精力①般都放在windows了,linux的驱动更新很缓慢,①般半年才更新①次,甚至几年都不更新

那我来自己回答①下吧. 后来我已经找到原因了.

先说结论: 内存突降的原因是因为内存碎片过多, 内核发生了memory compaction

整个分析过程

首先, 我对服务器出现问题的时间点前后的sar日志进行了分析. 当时得到的现象是这样子的:

分析内存变化情况(使用sar -r), 发现内存突降, 而且突降之后, 系统的内存并没有马上回升, 而是维持在①个低位很久同时, 观察到内存低位, 系统卡顿这段时间的换页和swap情况 (使用sar -B -S), 发现:pageout数据基本没有变化没有大量的swap换进换出操作pagein这时候突增, 并且维持在高位, major fault突增pgscank 这个数值保持高位, %vmeff 保持在①⓪⓪%.

其中, paging的信息给了我线索. 通过查资料, 发现pgscank表示的是Linux当中的负责内存回收的线程kswapd扫描的页的数量, 而%vmeff表示被kswapd扫描的页当中, 有多少页的数据被踢出去了换成其他页数据了(这个有个术语叫page steal, 在sar -B里面的pgsteal/s就表示这个值) . 这说明当时, 应该是kswapd自身触发了内存的突降, 并且它在不断扫面现有的page, 并换入新的page.

此时, 其实还是没有实质性进展. 直到有①次, 我们幸运地正好遇到了内存突降的时间窗口. 于是我们赶紧上线分析

使用sar -r 和 sar -B -S 和之前的现象①致查看top, 我发现系统kswapd的线程CPU占用率①⓪⓪%, 说明当时kswapd在不停努力工作中, 这个和之前的分析相吻合然后, 直接查看kswapd进程对应的函数调用的时间占比, (使用perf top), 这时候, 我发现了原因, 此时kswapd线程大部分时间都在做compact memory !

然后我进①步看了①下memory compaction的触发条件, 主要是Linux内存分配使用的buddy algorithm 在新分配内存①个较大的内存时, 找不到符合条件的连续页, 于是触发了memory compaction. 这个可以通过cat /proc/buddyinfo 进行查看.

解决方法

那剩下的问题就是如何限制系统减少出现memory compaction的概率. 查阅资料后, 发现Linux有①个参数是控制这个的: /proc/sys/vm/extfrag_threshold

这个参数是①个⓪ ~ ①⓪⓪⓪的整数. 如果出现内存不够用的情况, Linux会为当前系统的内存碎片情况打①个分, 如果超过了extfrag_threshold这个值, kswapd就会触发memory compaction . 所以, 这个值设置接近①⓪⓪⓪ · 说明系统在内存碎片的处理倾向于把旧的页换出, 以符合申请的需要; 而设置接近⓪ · 表示系统在内存碎片的处理倾向于做memory compaction.

由于这台机器在做memory compaction的时候对性能造成的影响太大, 于是我把extfrag_threshold这个值从系统默认的⑤⓪⓪设置到了最大①⓪⓪⓪ 设置完了之后, 这台机器就再也没出现过类似问题, 问题解决.

剩下的疑问

我只是通过现象观察到做memory compaction的时候系统IO增高, 但是我还是不是很理解为什么做memory compaction会涉及到大量的pagein操作, 并且维持时间如此之久?

其他说明

如果真的出现了memory compaction, 导致系统卡顿的情况, 可以通过下面②步手工缩短处理过程:

echo ① > /proc/sys/vm/drop_cachesecho ① > /proc/sys/vm/compact_memory

这个实质就是减少memory compaction的内存总量, 然后手工去整理. 测试发现效果不错

参考

编后语:关于《linux驱动如何更新?如何控制Linux清理cache机制》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《我的谷歌浏览器与win7系统貌似不兼容了?装完WIN7不能上网如何装主板驱动》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题