上一节当中介绍到Data Segment的大小也可以通过“svmon –P 进程号”或topas P查看。
有人问,svmon中的取值的度量单位怎么看出来的4K?
Data Segment=work process private的virtual +work shared library data的virtual。二者的单位是4K的分页。
解释一下为什么单位是4K,svmon的输出结果中,work process private和work shared library data的PSize(Page Size)类型是sm。而这台机器上命令svmon显示,只有s和m两个类型,分别对应4KB和64KB。而sm这个类型是什么呢?
AIX上面进程空间的虚拟内存分页默认的页大小是4K,但POWER5+以上的处理器支持4种页大小,分别是4KB(small),64KB(medium),16MB(large)和16GB(huge),POWER6处理器开始支持4K和64K的混合形式,即一个segment里面既有4K分页,也有64K分页,当需要大块内存、需要提升性能的时候用64K分页,当64K分页可能会浪费内存的时候则用4K分页。
svmon命令需要告诉用户这个segment有多少内存,为了统计时的方便,就只用一个单位来度量,这个单位就是sm中的第一个字母s(small),对应的度量单位是4K,这个条记录后面的列中的数据都依据这个度量单位出具。
有人问,topas P中PAGE SIZE的度量单位为什么是4K?
这里的PAGE SPACE的单位比较好查,只要man topas就可以找到这一段:PAGE SPACE:The virtual working set size used by process (4 KB pages)。其实好多概念、度量单位都可以通过man这个命令查到。