未开启HugePages时,DB连接共766个
[root@acc19 ~]# ps
-ef|grep -ic "LOCAL=NO"
766
查看内存信息
[root@acc19 ~]# cat
/proc/meminfo
MemTotal:
65996212 kB --64G内存
MemFree:
232180 kB --剩余内存为226m
Buffers:
710768 kB
Cached:
51239664 kB
SwapCached:
7732 kB
Active:
48846556 kB
Inactive:
6352664 kB
HighTotal:
0 kB
HighFree:
0 kB
LowTotal:
65996212 kB
LowFree:
232180 kB
SwapTotal:
16779884 kB --Swap内存有使用
SwapFree:
16308940 kB
Dirty:
328 kB
Writeback:
4 kB
AnonPages:
3240908 kB
Mapped:
40643712 kB
Slab:
1232428 kB
PageTables:
9103052 kB -- 管理内存分页页面的索引表的大小为9G
NFS_Unstable:
0 kB
Bounce:
0 kB
CommitLimit:
49777988 kB
Committed_AS:
51157208 kB
VmallocTotal:
34359738367 kB
VmallocUsed:
272108 kB
VmallocChunk:
34359465407 kB
HugePages_Total:
0
HugePages_Free:
0
HugePages_Rsvd:
0
Hugepagesize:
2048 kB
开启HugePages后
[root@acc19 ~]# ps
-ef|grep -ic "LOCAL=NO"
757
[root@acc19 ~]# cat
/proc/meminfo
MemTotal:
65996212 kB
MemFree:
259948 kB
Buffers:
700976 kB
Cached:
19070208 kB
SwapCached:
4 kB
Active:
6482596 kB
Inactive:
16481996 kB
HighTotal:
0 kB
HighFree:
0 kB
LowTotal:
65996212 kB
LowFree:
259948 kB
SwapTotal:
16779884 kB
SwapFree:
16779880 kB
Dirty:
328 kB
Writeback:
0 kB
AnonPages:
3262020 kB
Mapped:
53664 kB
Slab:
421204 kB
PageTables:
232464 kB --只有227m,比之前管理page table 的PT减少了8G多,而且进程还比未开启时多
NFS_Unstable:
0 kB
Bounce:
0 kB
CommitLimit:
28760388 kB
Committed_AS:
9384964 kB
VmallocTotal:
34359738367 kB
VmallocUsed:
272108 kB
VmallocChunk:
34359466175 kB
HugePages_Total: 20525
HugePages_Free:
3365
HugePages_Rsvd:
3321
Hugepagesize:
2048 kB
结论:
正常一个entry映射到system page
table 指向的物理内存大小是4k,HugePages也可以理解为system pagetable中指向物理内存的entry,只不过大小最小是2m,即使是最小值,映射的物理内存大小也是普通page大小的500倍。所以如果设置了hugepages可以减少进程pagetable的entry量,增大PageTables的命中率。并且有效的利用内存。HugePages也不会使用Swap。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26390465/viewspace-1771267/ ,如需转载,请注明出处,否则将追究法律责任。