一切福田,不離方寸,從心而覓,感無不通。

kswapd CPU占用率过高

kswapd0 CPU占用率过高问题

解决方法:

 

kswapd是linux中用于页面回收的内核线程。页面回收,并不是回收得越多越好,而是力求达到一种balanced。因为页面回收总是以cache丢弃、内存swap、等为代价的,对系统性能会有一定程度的影响。

原因:kswapd0 占用过高也是物理内存不足所引起的
kswapd0 占用过高是因为 物理内存不足,使用swap分区与内存换页操作交换数据,导致CPU占用过高。swap分区的作用是当物理内存不足时,会将一部分硬盘当做虚拟内存来使用。
可以通过修改/proc/sys/vm/swappiness(也可以用find查找这个文件)里面的数值来修改swap分区使用与否,默认 60,数值越大表示更多的使用swap分区

swap 分区和内存都有缓存区,缓存的内容为之前使用过的数据,用于加快第二次打开时访问速度。
swap分区可以使用多个交换区(使用多硬盘?) 来加快swap访问速度
swap 分区使用的为硬盘的内容,速度比直接访问内存慢几千倍

拓展:
Cache:高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。
Buffer:缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据时,速度快的设备的操作进程不发生间断。
通俗点就是
cache是高速缓存,用于CPU和内存之间的缓冲;
buffer是I/O缓存,用于内存和硬盘的缓冲

 

from:https://blog.csdn.net/weixin_45546960/article/details/124266481