Alibaba Cloud Linux 2(内核版本4.19.91-22.al7
开始)和Alibaba Cloud Linux 3的/proc/meminfo文件内的匿名页状态统计信息Active(anon)
和Inactive(anon)
发生了变化。如果您的应用程序正在使用该统计信息,统计信息的变化会导致变更前后查询到的数据不一致。本文将对本次变化进行详细说明。
变更原因
Linux kernel社区在最新的版本中对匿名页的回收进行了优化,分配的匿名页默认放置的位置由active LRU变更为了inactive LRU,因此对/proc/meminfo文件内的统计信息Active(anon)
和Inactive(anon)
的数据产生了影响。社区合入信息如下所示:
社区合入版本:Linux Kernel 5.10
社区合入commit:b518154e59aab3ad0780a169c5cc84bd4ee4357e
Alibaba Cloud Linux 2(内核版本4.19.91-22.al7.x86_64
开始)和Alibaba Cloud Linux 3的/proc/meminfo文件内的统计信息Active(anon)
和Inactive(anon)
的数据将发生变化。
您可以在操作系统内运行uname -r命令获取内核版本信息。
变更详情
Alibaba Cloud Linux 2的内核在4.19.91-22.al7.x86_64
版本之前(不包含该版本),应用程序申请的匿名页(anon page)默认被统计到/proc/meminfo文件的Active(anon)
中,当内存不足时才会被统计到Inactive(anon)
中。
当内核升级到4.19.91-22.al7.x86_64及其之后的版本时,应用程序申请的匿名页(anon page)默认被统计到/proc/meminfo文件的Inactive(anon)
中,当被访问后才会切换到Active(anon)
中。因此,如果您在使用/proc/meminfo文件内的Active(anon)
和Inactive(anon)
来统计匿名页状态的数据,需要对本次变化进行相应的调整。
变更影响及建议
由于统计匿名页状态的信息(即Active(anon)
和Inactive(anon)
)发生变化,因此相同的应用程序在本次变更前所查询到的Active(anon)
和Inactive(anon)
的数据,与变更后查询的到数据将不一致。
建议您根据所使用的Alibaba Cloud Linux操作系统中最新的匿名页状态的统计数据,对应用程序的配置进行相应的调整。