使用shm测试程序在x86和sparc上进行测试,下面的数据为分别使用vmstat与top的观测结果,
附件里是测试程序。
前提:shm预设申请接近2G内存,50进程无锁对共享内存写入信息。
在x86机器上:
1.未运行测试程序前的数据
top:
load averages: 0.14, 0.31, 0.16; up 0+00:03:33 20:10:58
51 processes: 49 sleeping, 1 zombie, 1 on cpu
CPU states: 96.3% idle, 0.0% user, 3.7% kernel, 0.0% iowait, 0.0% swap
Memory: 16G phys mem, 15G free mem, 20G total swap, 20G free swap
vmstat:
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr s0 s1 s2 -- in sy cs us sy id
0 0 0 34287748 15843464 0 0 0 0 0 0 0 0 0 0 0 471 289 201 0 0 100
0 0 0 34287748 15843464 0 0 0 0 0 0 0 0 0 0 0 362 195 192 0 2 98
0 0 0 34287748 15843464 0 0 0 0 0 0 0 0 0 0 0 410 200 193 0 0 100
0 0 0 34287748 15843464 0 0 0 0 0 0 0 28 0 0 0 434 325 237 0 0 100
2.运行shm测试程序一段时间后,内存占用基本稳定时的数据
top:
102 processes: 100 sleeping, 1 zombie, 1 on cpu
CPU states: 97.9% idle, 0.1% user, 2.0% kernel, 0.0% iowait, 0.0% swap
Memory: 16G phys mem, 11G free mem, 20G total swap, 20G free swap
PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND
938 goush 1 59 0 2051M 2049M sleep 0:02 0.00% shm
939 goush 1 59 0 2051M 2048M sleep 0:44 0.00% shm
952 goush 1 59 0 2051M 2048M sleep 0:47 0.00% shm
966 goush 1 59 0 2051M 2048M sleep 0:47 0.00% shm
965 goush 1 59 0 2051M 2048M sleep 0:46 0.00% shm
973 goush 1 59 0 2051M 2048M sleep 0:46 0.00% shm
967 goush 1 59 0 2051M 2048M sleep 0:46 0.00% shm
943 goush 1 59 0 2051M 2048M sleep 0:46 0.00% shm
948 goush 1 59 0 2051M 2048M sleep 0:46 0.00% shm
vmstat:
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr s0 s1 s2 -- in sy cs us sy id
40 0 0 30142152 11711684 0 0 0 0 0 0 0 0 0 0 0 637 617 349 99 1 0
41 0 0 30142152 11711684 0 0 0 0 0 0 0 0 0 0 0 618 817 357 99 1 0
40 0 0 30142136 11711668 0 0 0 0 0 0 0 0 0 0 0 635 1000 434 99 1 0
总结:在x86机器上,该测试程序占用了4G左右的swap空间和4G左右的物理内存,且不断的小幅度占用新的内存。
top没有反映出swap的变化
在sparc机器上:
1.未运行测试程序前的数据
top:
924 processes: 923 sleeping, 1 on cpu
CPU states: 98.9% idle, 0.2% user, 0.9% kernel, 0.0% iowait, 0.0% swap
Memory: 32G phys mem, 13G free mem, 31G total swap, 30G free swap
vmstat:
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr s0 s1 s2 -- in sy cs us sy id
0 0 0 37190720 13180896 30 300 0 0 0 0 0 4 0 0 0 1418 5647 2100 0 1 99
0 0 0 37190512 13180712 274 2446 0 0 0 0 0 6 1 0 0 1349 8916 2002 0 1 98
0 0 0 37190720 13180888 109 574 0 0 0 0 0 5 5 0 0 1027 3348 1497 0 0 99
0 0 0 37190720 13180888 93 446 0 8 8 0 0 6 0 0 0 1131 4160 1585 0
2.运行shm测试程序一段时间后,内存占用基本稳定时的数据
top:
976 processes: 927 sleeping, 16 running, 33 on cpu
CPU states: 0.0% idle, 96.3% user, 3.7% kernel, 0.0% iowait, 0.0% swap
Memory: 32G phys mem, 11G free mem, 31G total swap, 30G free swap
14051 w.xin 1 59 0 2049M 2049M sleep 0:03 0.00% shm
14098 w.xin 1 30 0 2049M 2049M cpu/10 3:11 2.55% shm
14096 w.xin 1 0 0 2049M 2049M cpu/22 3:12 2.37% shm
14100 w.xin 1 0 0 2049M 2049M cpu/30 3:12 2.35% shm
14115 w.xin 1 0 0 2049M 2049M cpu/7 3:09 2.32% shm
vmstat:
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr s0 s1 s2 -- in sy cs us sy id
15 0 0 35078120 11072576 129 790 0 0 0 0 0 2 1 0 0 1679 5325 2135 97 3 0
18 0 0 35080288 11074848 98 906 0 0 0 0 0 1 0 0 0 2115 9684 2913 95 5 0
17 0 0 35079888 11074152 179 1382 0 0 0 0 0 4 0 0 0 1973 7129 2301 95 5 0
14 0 0 35077736 11072232 178 1372 0 0 0 0 0 3 0 0 0 1569 4805 1955 96 4 0
总结:在sparc机器上,该测试程序占用了2Gswap空间和2G物理内存。