首页 > 编程知识 正文

linux内核makefile(oracle降低高水位线)

时间:2023-05-05 14:02:19 阅读:74027 作者:579

% E5 % 88 % 86 % E5 % 8c % ba % e9 % a1 % b5 % E6 % a1 % 86 % E5 % 88 % e9 % E5 % 99 % A8 % E4 % B9 % 86 % E6 % 25 d % E7 % 94 % A8 % E5 % 87 % BD % E6 % 95 % B0 zone _ watermark _ fast % 28 % ef % BC % 8c % E6 % 9d % a5 % E6 % 205 % 89 % 89 85 % 8d % ef % BC % 8c % E4 % b8 % 8d % E5 % a4 % 9f % E7 % 84 % E8 % e9 % 80 % E8 % 25 % 20e6% B0 % B4 % E4 % eminitinit _ per _ zone _ WMA rk _ min % 28 void % 29 %7bunsignedlonglowmem _ kbytes %3bint new _ min _ free % 20 age _ 7 mem _ kbytes % 26 % 29 % 253 % 20 % 3d new _ min _ free _ kbytes %3B--% 282 % 29if % 28 min _ free _ kbytes 128 % 29 edto % dbecauseuserdefinedvalue % 25 dis首选项% 5cn % 27 % 2c new _ min % 20er _ zone _ wmarks % 28 % 29 %3B--- % 2888 r % 20n _ unmapped _ ratio % 28 % 29 % 3b setup _ min _ slab _ ratio % 28 % 29 % 3b % 23最终还原0 % 3b % 7d core _ init al % E5 % 8c % ba % E4 % b8 % ad % e9 % 25 % 200 NR _ free _ buffer _ pages % 20 % 3d % 20 managed _ pages % 20-% 20 high _ 2a % 20 sqrt % 28 lowmem _ kbytes % 29 % 0a % 20 % 283 % 29.% 20 setup _ per _ % 20bc % 8c % E5 % 86 % 8d % E5 % 8a0% E4 % div % E5 % B0 % B1 % E8 % AE % a1 % E7 % AE % 97 % E5 % 87 % ba % E4 % bb % E4 % bb % 20e % a1 % E7 % AE % 97 % E5 % 3d % 20min % 20 % 2a % 20150 % 25 % E3 % 80 % 82 min % ef % BC %8clow % ef % BC %8chigh % E4 % B9 %8B9 % e9 % 97 % B4 % EC % 20 % 29.% 20 setup _ per _ zone _ lowmem _ reserve % 20 % E8 % AE % be % E7 % BD % AE % E6 % af % 8f % E4 % b8 % aa zone % reserve _ ratio % 20 % 2088 % e9 % 9c % 80 % E8 % a6 % 81 % E8 % AE % be7 % BD % ae6 % af % E4 % b8 % aa zone % E7 % 9a % E4 % % E7 % 20 % 98 % E6 % 97 % B6 % ef % BC % 8c % E4 % BC % 9a % E6 % 8c % 89 % E7 % 85 % a7 % 20 highmem-normal-DMA % 20 % E7 ef % BC % 8c % 20e7% ba % a7 % E7 % 9a % 84 zone % E3 % 80 % E6 % 88 % 91 % E4 % bb % E5 % 8f % E4 % bb % a5 % E6 % 83 % 6 % 82 % E6 % 9c % 25 % 208 % 86 % e9 % 85 % 8d % ef % BC % 8c % 88 % E4 % BC % 9a % E5 % B0 % 9d % E8 % af % 95 % E4 % bb % 20 highmem % 20 zone % 200 % BD % 20 normal % 20 zone % 20 % E7 % 9a % 84 % E5 % E5 % ad % 98 % ef % BC % 8c % E6 % 9c % 80 E6 % A0 % b8 % E7 % 94 % E6 % aa % 205 % af % B9 % E8 % BF % 99 % E4 % b8 % aa % E5 % E6 % ef % BC % E5 % 8f % af %

erve[DMA],限制来自HIGHMEM和NORMAL的分配请求。

$ cat /proc/sys/vm/lowmem_reserve_ratio256     32      $ cat /proc/zoneinfoNode 0, zone    DMA32    ......    pages free     361678        min      674        low      2874        high     3314        spanned  523776        present  496128        managed  440432        protection: (0, 3998, 3998)    ......Node 0, zone   Normal    pages free     706981        min      1568        low      6681        high     7704        spanned  8912896        present  1048576        managed  1023570        protection: (0, 0, 0)    ......Node 0, zone  Movable  pages free     0        min      0        low      0        high     0        spanned  0        present  0        managed  0        protection: (0, 0, 0)

spanned:表示当前zone所包含的所有的pages

present:表示当前zone在去掉第一阶段kernel reserve的内存之后剩下的pages

managed:表示当前zone去掉初始化完成以后所有的kernel reserve的内存剩下的pages

结合上面arm64平台的数值举个例子,假设这2个Zones分别包含440432, 1023570个pages(实际是/proc/zoneinfo里字段managed的值)。如下图所示,使用每个区域的 managed pages 和 lowmem_reserve_ratio 计算每个区域的lowmem_reserve值,可以看出结果和protection值一样。

水位的判断

从这张图可以看出:

如果空闲页数目min值,则该zone非常缺页,页面回收压力很大,应用程序写内存操作就会被阻塞,直接在应用程序的进程上下文中进行回收,即direct reclaim。

如果空闲页数目小于low值,kswapd线程将被唤醒。默认情况下,low值为min值的125%,可以通过修改watermark_scale_factor来改变比例值

如果空闲页面的值大于high值,kswapd线程将睡眠。默认情况下,high值为min值的150%,可以通过修改watermark_scale_factor来改变比例值

5T技术资源大放送!包括但不限于:C/C++,Arm, Linux,Android,人工智能,单片机,树莓派,等等。在公众号内回复「peter」,即可免费获取!!

 记得点击分享在看,给我充点儿电吧

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。