[20161121]关于使用hugepage的讨论.txt

[20161121]关于使用hugepage的讨论.txt

--ITPUB上的讨论, 请问使用HugePage性能提示明显吗?链接:http://www.itpub.net/thread-2071616-1-1.html
--我的观点使用总比不用好,当然你没有性能问题,也可以不用,通过一个简单的测试看说明内存的使用。

1.环境:
$ cat /etc/sysctl.conf| grep -i nr_hugepages
vm.nr_hugepages = 305

SCOTT@book> show parameter use_large_pages
NAME            TYPE    VALUE
--------------- ------- ------
use_large_pages string  TRUE

SCOTT@book> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

2.重启数据库:
ORACLE instance started.
Total System Global Area  634732544 bytes
Fixed Size                  2255792 bytes
Variable Size             197133392 bytes
Database Buffers          427819008 bytes
Redo Buffers                7524352 bytes
Database mounted.
Database opened.

SYS@book> show parameter processes
NAME                      TYPE    VALUE
------------------------- ------- ------
aq_tm_processes           integer 0
db_writer_processes       integer 3
gcs_server_processes      integer 0
global_txn_processes      integer 1
job_queue_processes       integer 0
log_archive_max_processes integer 4
processes                 integer 150

--建立1个脚本,a.sh
#! /bin/bash
for i in $(seq 100)
do
        sqlplus -s scott/book <<EOF > /dev/null &
select sysdate from dual;
host sleep 200
commit;
quit;
EOF
done

--执行前:
$ cat /proc/meminfo | grep -i page
AnonPages:        193124 kB
PageTables:        13912 kB
AnonHugePages:     51200 kB
HugePages_Total:     305
HugePages_Free:       89
HugePages_Rsvd:       89
HugePages_Surp:        0
Hugepagesize:       2048 kB

--执行后:
$ cat /proc/meminfo | grep -i page
AnonPages:        859888 kB
PageTables:        68740 kB
AnonHugePages:     51200 kB
HugePages_Total:     305
HugePages_Free:       82
HugePages_Rsvd:       82
HugePages_Surp:        0
Hugepagesize:       2048 kB

--//PageTables使用了68740 kB,大约68M。

3.修改参数use_large_pages=false,重启数据库,也就是关闭hugepage的使用。

SYS@book> alter system set use_large_pages=false scope=spfile ;
System altered.

--重启数据库:

--执行前:
$ cat /proc/meminfo | grep -i page
AnonPages:        606504 kB
PageTables:        38904 kB
AnonHugePages:     51200 kB
HugePages_Total:     305
HugePages_Free:      305
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

--//HugePages_Free=305,表示没有使用hugepage。

--执行后:
$ cat /proc/meminfo | grep -i page
AnonPages:       1012584 kB
PageTables:       118872 kB
AnonHugePages:     51200 kB
HugePages_Total:     305
HugePages_Free:      305
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

--//PageTables使用了118872 kB,大约118M。实际上连接越大差距越大。

4.你也许会讲差距并不大,原因很容易解析。
a.连接数量不多,我仅仅测试100个连接。
b.访问的数据块很少,实际上我执行的语句根本不访问数据表dual。但是登录我审计是开的,至少存在少量sql语句。这样很容易解析为
  什么仅仅相差2倍。

$ getconf PAGE_SIZE
4096
--普通页面大小4K。而使用hugepage=2048K,有2048/4=512倍的差异。但是我访问的块很少,数据块8K。我估计访问的块很离散。
--这样对以4K的页面存在8/4=2项,而对于使用hugapage仅仅1项,这样存在2倍差异还是很明显的。

c.存在512倍差异不大可能的,我估计至少20倍以上差异还是存在。顺便帖一个生产系统的情况:

#  cat /proc/meminfo | grep -i page
AnonPages:      21392820 kB
PageTables:      1587204 kB
HugePages_Total:   80000
HugePages_Free:     5390
HugePages_Rsvd:     3983
HugePages_Surp:        0
Hugepagesize:       2048 kB
#  ps -ef | grep oracleXXXX|wc
   3629   32661  265027

--可以发现PageTables: 1587204 kB, 1587204/1024=1550.00390625M,将近1.5G,如果不使用hugepage,Pagesize可以达到30G,这样还是
--很巨大的.可以发现HugePages_Free:5390,5390块没用,浪费还是很严重的,5390*2=10780M,将近10G,也就是我们生产系统存在一定的
--浪费。反正不缺这点内存,也没时间纠正这个错误。

--说明一下,这些仅仅是我的猜测,OS的东西好多不是很了解。

时间: 2024-10-23 20:12:28

[20161121]关于使用hugepage的讨论.txt的相关文章

[20170126]hugepage与内存碎片.txt

[20170126]hugepage与内存碎片.txt --昨天给一台配置很低的机器安装dg(内存4G),同事安装完操作系统回家了,剩下的安装配置dg工作由我来完成. --完成后我想看看是否可以使用hugepage,遇到一些问题,做一个测试: 1.环境: $ cat /etc/issue Oracle Linux Server release 5.9 Kernel \r on an \m 2.我的配置数据使用内存如下: SYS@xxxxxxdg> show sga Total System Gl

[20160517]11G HugePage的使用问题2.txt

[20160517]11G HugePage的使用问题2.txt --昨天测试了HUGEPAGE的使用问题,自己也看了一些文档,从11.2.0.2,加入了参数use_large_pages. SYS@book> @ &r/ver1 PORT_STRING         VERSION        BANNER ------------------- -------------- -------------------------------------------------------

[20160516]11G HugePage的使用问题.txt

[20160516]11G HugePage的使用问题.txt --我们的dg内存不足,配置的/etc/sysctl.conf如下: vm.nr_hugepages = 3200 --没有启动数据库前如下: # grep -i huge /proc/meminfo AnonHugePages:     14336 kB HugePages_Total:    3200 HugePages_Free:     3200 HugePages_Rsvd:        0 HugePages_Surp

关于输出缓冲的讨论(Output buffering)之一

###########################################标题  关于输出缓冲的讨论##整理  Diego Lynn @ 林全国##原作  By Zeev Suraski ######################################### 关于输出缓冲的讨论(Output buffering) 目录 HTTP Header为什么要使用Output Buffering技术Output Buffering的工作原理基本用法高级用法使事情更为简单哈哈,我成功

产品经理的使用工具:讨论产品经理的工具箱

文章描述:产品经理的工具箱,放些啥?. 今天在网上看到一个讨论话题"产品经理的工具箱,放些啥 ? 网友问题: 请分别回答三个问题.我是开发人员,今天产品经理跟我说非常想有一个在iPad上展示Axure生成的原型的工具(也就是本地HTML浏览器).我突然想到这是不是一个好的创意:做一个在iPad上创建并展示原型的工具.iPad携带方便,待机时间长.单做一个本地HTML浏览器没多大意义.或者做一个原型展示工具,可以展示产品经理常用的模型工具生成的文件. 部分网友回答: 小光: ipad上已经有好多原

简单信息隐藏技术的实现与讨论

1.信息隐藏技术简介 信息隐藏是把机密信息隐藏在大量的信息中不让对手察觉.相对于加密让对手读不懂信息隐写术是让对手发现不了信息. 具体的介绍请查询搜索引擎.   2.实现环境及工具介绍 操作系统windows8.1 x64 硬件配置core i3 cpu4GB内存 使用工具WinHex或者UltraEdit6 进制编辑器 3.基于图像的信息隐藏方法介绍 3.1.文件外壳隐写 3.1.1. 实现步骤 1 copy /b a.bmp+b.txt c.bmp   2.1.2. 优缺点分析 优点 制作简

Oracle Memory Management and HugePage

在这篇文章中,我给大家介绍一些Oracle内存管理和大页的知识.Oracle发展这么多年,提供了多种的内存管理方式,从最早SGA.PGA手工管理,到9I版本出现的PGA的自动管理,到10G版本出现的SGA自动管理(ASMM),再到11G版本出现的memory自动管理(AMM),Oracle基本是在朝着智能化.傻瓜化.自动化的方向稳步前进着,对于初学Oracle的DBA来说,看到这些不同的内存管理方式一定心里有着不同程度的疑惑,例如: ·          Oracle有这么多内存分配的管理方式,

求制作模拟器[望喜欢的人一起加入讨论]

问题描述 因为在网上看到一个朋友把网络3D游戏利用模拟器改编成了单机游戏十分羡慕[上学期间4个月的作品]所以有了一个念头想制作一个可惜不会当初直接去学编程基础就好了问了下朋友说可能是C编写的他没学过C介绍了这个论坛让我来问问时候有人愿意帮助文件共1.5G左右不方便上传文件列表ChinaIA-内DLL文件movie-内bak文件mp3-内wav文件package-内PACK文件system-内m3dasiflt文件外dll+登陆游戏EXE程序package-内PACK文件PACK内提取的文件DAT

关于TXT文件的输出问题(用JAVA)

问题描述 伊拉克军方官员20日宣布,上周五在巴格达南部地区"失踪"的两名美军士兵被当地的反美武装俘虏并且惨遭杀害.nsnnntvwpntpnsndnwpvwpumqjnpnluvjnncvvwp1244-1-222129107-214-218161818212119224222522272227-2ATTATTSBVADVHEDPUNSBVADVATTATTPOBPUNDEPUNATTQUNATTATTDEDEPOBATTVOBVOBATTVOBCNJVOBVOBPUN这是一个TXT文