AIX 中的分页类型
1、工作存储分页与永久存储分页
工作存储分页(Working storage pages): 是一些包含易变数据(换句话说,即重新启动后将不复存在的数据)的分页。例如:进程数据、堆栈、共享内存、内核数据。
永久存储分页(Permanent storage pages): 永久存储分页是一些包含永久数据(也就是说,重新启动后仍然存在的数据)的分页。这种永久数据就是文件数据。因此,永久存储分页就是缓存在内存中的部分文件。永久存储分页划分为两种子类型:客户端分页、非客户端分页。客户端分页是一些包含所有其他文件系统(例如,JFS2 和网络文件系统 (NFS))的缓存数据的分页。非客户端分页是一些包含缓存的日志文件系统 (JFS) 文件数据的分页。
2、计算性分页与非计算性分页
为了帮助分页替换守护进程更好地选择用来进行替换的分页,AIX 将分页分为计算性分页与非计算性分页:
计算性分页:计算性分页是一些用于文本、数据、堆栈和进程的共享内存的分页。所有的工作存储分页都是计算性的。
非计算性分页:是一些包含正在进行读取和写入的文件的文件数据的分页。永久存储分页既可以是计算性的、也可以是非计算性的。如果一个文件包含某个进程的可执行文本,那么系统会将该文件视为计算性的,并且将该文件中的所有永久存储分页都标记为计算性的。如果该文件不包含可执行文本,那么系统会将该文件视为非计算性的,并且将该文件中的所有永久存储分页都标记为非计算性的。
AIX中内存分类
后续我们说到内存时,主要用计算内存(Computing Memory)和非计算内存(NonComputing Memory)这两个词。
简单来说,计算内存是进程跑起来必须的那部分,是不能被内存管理中的分页替换守护进程随便清理掉的。而非计算内存是本来就是磁盘当中存在的,只是放在内存当中充当读缓存或写缓存,没有被修改过的可以直接删除,被修改过的可以写入磁盘后删除。
Linux也有类似的概念,active内存是不能随便踢掉的,而buffer(写缓存,将要被写入磁盘的)和cache(读缓存,从磁盘中读出来的)是可有可无的部分,只是为了性能而存在的。
那么问题来了,当物理内存不足需要清理内存的时候,内存是被换出到Paging Space(换页空间)呢?还是被直接删掉?
计算内存:不能直接清理掉,而是要将他们换出到Paging Space。非计算内存:没有被修改过的可以直接删除,被修改过的可以写入磁盘后删除。