[20190103]设置pre_page_sga=true启动缓慢的问题.txt --//节前的问题,别人的系统以前就遇到启动缓慢的问题,问过我,我也没太关注. --//正好他们节前重启数据库,我远程连上看一下,才发现对方pre_page_sga=true,sga_target=sga_max_size=5XG, --//而且没有打开hugepages,启动异常缓慢. --//实际上发现很偶然,我执行top看才发现,oracle进程相关列RES不断在增长.我自己一直有1个疑问,为什么打开hugepage. --//后在pre_page_sga=true的情况下,有一些系统res看到就没有这个大接近sga大小. --//另外注意一个问题,12cR2下缺省pre_page_sga=true,这样设置hugepages在安装时更加有必要,不然可能启动很慢, --//特别是sga很大的情况下. --//我在自己的测试环境演示看看. 1.环境: --//oracle 版本11.2.0.4.0 64位版本. --//OS :Oracle Linux Server release 5.9 $ cat /proc/version Linux version 2.6.39-300.26.1.el5uek (mockbuild@ca-build56.us.oracle.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-52)) #1 SMP Thu Jan 3 18:31:38 PST 2013 2.测试: --//建立参数文件. $ cat initxxxx.ora db_name=xxxx instance_name=xxxx sga_target=50G sga_max_size=50G pre_page_sga=true $ export ORACLE_SID=xxxx $ rlsql SQL*Plus: Release 11.2.0.4.0 Production on Thu Jan 3 10:24:11 2019 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to an idle instance. SYS@xxxx> startup nomount --//使用top -u oracle观察 # top -u oracle Tasks: 257 total, 2 running, 255 sleeping, 0 stopped, 0 zombie Cpu(s): 0.1%us, 0.6%sy, 0.0%ni, 99.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 132261196k total, 50676620k used, 81584576k free, 268184k buffers Swap: 31455264k total, 131660k used, 31323604k free, 41556392k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 65426 oracle 20 0 50.2g 24g 24g R 99.7 19.3 0:18.98 oracle --//你可以发现RES列在增加.整个启动缓慢. --//查看alert文件: Thu Jan 03 10:24:35 2019 ~~~~~~~~~~~~~~~~~~~~~~~~~ Starting ORACLE instance (normal) ..... ************************ Large Pages Information ******************* Per process system memlock (soft) limit = 51 GB Total Shared Global Region in Large Pages = 122 MB (0%) Large Pages used by this instance: 61 (122 MB) Large Pages unused system wide = 43 (86 MB) Large Pages configured system wide = 104 (208 MB) Large Page size = 2048 KB RECOMMENDATION: Total System Global Area size is 50 GB. For optimal performance, prior to the next instance restart: 1. Increase the number of unused large pages by at least 25499 (page size 2048 KB, total size 50 GB) system wide to get 100% of the System Global Area allocated with large pages ******************************************************************** --//无法使用hugepages. MMON started with pid=17, OS id=65513 Thu Jan 03 10:28:27 2019 MMNL started with pid=18, OS id=65515 Thu Jan 03 10:28:27 2019 ~~~~~~~~~~~~~~~~~~~~~~~~~~ ORACLE_BASE from environment = /u01/app/oracle --//启动到mount状态需要将近4分钟.使用top参看: # top -u oracle PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND ... 65426 oracle 20 0 50.2g 49g 49g S 0.0 39.5 0:38.29 oracle 65448 oracle 20 0 50.2g 49g 49g S 0.0 39.5 0:12.25 oracle 65452 oracle -2 0 50.2g 49g 49g S 0.0 39.5 0:15.57 oracle 65456 oracle 20 0 50.2g 49g 49g S 0.0 39.5 0:12.52 oracle 65459 oracle 20 0 50.2g 49g 49g S 0.0 39.5 0:10.74 oracle 65461 oracle 20 0 50.2g 49g 49g S 0.0 39.5 0:12.54 oracle 65466 oracle 20 0 50.2g 49g 49g S 0.0 39.5 0:12.77 oracle 65468 oracle 20 0 50.2g 49g 49g S 0.0 39.5 0:15.61 oracle 65472 oracle 20 0 50.2g 49g 49g S 0.0 39.5 0:11.73 oracle 65474 oracle 20 0 50.2g 49g 49g S 0.0 39.5 0:12.29 oracle 65501 oracle 20 0 50.2g 49g 49g S 0.0 39.5 0:11.98 oracle 65503 oracle 20 0 50.2g 49g 49g S 0.0 39.5 0:11.94 oracle 65505 oracle 20 0 50.2g 49g 49g S 0.0 39.5 0:12.93 oracle 65507 oracle 20 0 50.2g 49g 49g S 0.0 39.5 0:11.87 oracle 65511 oracle 20 0 50.2g 49g 49g S 0.0 39.5 0:12.61 oracle 65513 oracle 20 0 50.2g 49g 49g S 0.0 39.5 0:10.95 oracle 65515 oracle 20 0 50.2g 49g 49g S 0.0 39.5 0:10.80 oracle 65522 oracle 20 0 50.2g 49g 49g S 0.0 39.5 0:11.60 oracle --//RES,SHR占用很大,接近virt大小. $ cat /proc/meminfo | grep -i page AnonPages: 313752 kB PageTables: 1868324 kB AnonHugePages: 0 kB HugePages_Total: 104 HugePages_Free: 47 HugePages_Rsvd: 4 HugePages_Surp: 0 Hugepagesize: 2048 kB --//你可以发现没有使用hugepages,PageTables到达 1868324 kB. --//我感到奇怪的是我们有1台18c 数据库,设置pre_page_sga=true. --//18c的数据库看到的情况如下(Red Hat Enterprise Linux Server release 7.5 (Maipo)): Tasks: 532 total, 1 running, 531 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.6 us, 2.5 sy, 0.0 ni, 96.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 65709508 total, 27079916 free, 4909680 used, 33719912 buff/cache KiB Swap: 16773116 total, 16773116 free, 0 used. 30605328 avail Mem PID PPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND USED SWAP 8643 1 oracle 20 0 29.2g 14.0g 14.0g S 0.0 22.4 10:03.25 ora_dbw0_orclcd 14.0g 0 9245 1 oracle 20 0 29.2g 2.9g 2.8g S 0.0 4.6 3:41.57 ora_w006_orclcd 2.9g 0 8867 1 oracle 20 0 29.2g 2.2g 2.1g S 0.0 3.5 3:18.60 ora_w004_orclcd 2.2g 0 8751 1 oracle 20 0 29.2g 2.0g 1.9g S 0.0 3.1 2:15.33 ora_w002_orclcd 2.0g 0 8663 1 oracle 20 0 29.2g 1.9g 1.8g S 0.0 3.0 2:25.90 ora_w001_orclcd 1.9g 0 9128 1 oracle 20 0 29.2g 1.9g 1.8g S 0.0 3.0 1:48.32 ora_w005_orclcd 1.9g 0 8717 1 oracle 20 0 29.2g 1.9g 1.8g S 0.0 3.0 15:07.65 ora_p002_orclcd 1.9g 0 --//RES就没有这么大,而且是缓慢增长的.实际上pagetables很大,再次强调设置hugepages的必要性,作为安装的必要步骤. # grep -i page /proc/meminfo AnonPages: 2761200 kB PageTables: 723276 kB AnonHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB --//PageTables达到723276KB. # ps -ef |grep ora[_]|wc 83 664 5395 --//仅仅才83个进程 # ps -eLf |grep ora[_]|wc 85 850 6460 3.回到当前测试环境,打开hugepages看看: SYS@xxxx> shutdown abort ; ORACLE instance shut down. --//修改 /etc/sysctl.conf加入如下: vm.nr_hugepages = 26000 # sysctl -p SYS@xxxx> startup nomount ORACLE instance started. Total System Global Area 5.3447E+10 bytes Fixed Size 2265864 bytes Variable Size 5100276984 bytes Database Buffers 4.8318E+10 bytes Redo Buffers 26480640 bytes --//alert.log Thu Jan 03 10:37:47 2019 Starting ORACLE instance (normal) ************************ Large Pages Information ******************* Per process system memlock (soft) limit = 51 GB Total Shared Global Region in Large Pages = 50 GB (100%) Large Pages used by this instance: 25601 (50 GB) Large Pages unused system wide = 399 (798 MB) Large Pages configured system wide = 26000 (51 GB) Large Page size = 2048 KB ******************************************************************** --//使用hugepages. ... MMNL started with pid=18, OS id=406 Thu Jan 03 10:38:10 2019 ORACLE_BASE from environment = /u01/app/oracle --//仅仅需要23秒. # top -u oracle Tasks: 273 total, 1 running, 272 sleeping, 0 stopped, 0 zombie Cpu(s): 0.1%us, 0.6%sy, 0.0%ni, 99.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 132261196k total, 63923704k used, 68337492k free, 149588k buffers Swap: 31455264k total, 4079604k used, 27375660k free, 2341820k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 375 oracle -2 0 50.2g 15m 13m S 3.9 0.0 0:01.82 oracle 369 oracle 20 0 50.2g 16m 14m S 0.0 0.0 0:16.16 oracle 373 oracle 20 0 50.2g 15m 13m S 0.0 0.0 0:00.34 oracle 379 oracle 20 0 50.2g 15m 13m S 0.0 0.0 0:00.25 oracle 381 oracle 20 0 50.2g 15m 13m S 0.0 0.0 0:00.27 oracle 383 oracle 20 0 50.2g 15m 13m S 0.0 0.0 0:00.28 oracle 385 oracle 20 0 50.2g 18m 13m S 0.0 0.0 0:00.40 oracle 387 oracle 20 0 50.2g 15m 13m S 0.0 0.0 0:03.88 oracle 389 oracle 20 0 50.2g 21m 13m S 0.0 0.0 0:00.27 oracle 391 oracle 20 0 50.2g 21m 13m S 0.0 0.0 0:00.24 oracle 393 oracle 20 0 50.2g 21m 13m S 0.0 0.0 0:00.25 oracle 395 oracle 20 0 50.2g 15m 13m S 0.0 0.0 0:00.26 oracle 397 oracle 20 0 50.2g 15m 13m S 0.0 0.0 0:00.27 oracle 399 oracle 20 0 50.2g 15m 13m S 0.0 0.0 0:00.24 oracle --//为什么pre_page_sga=true,使用hugepages的情况下,res占用这么小呢?有点不理解,那位解析看看. # cat /proc/meminfo | grep -i page AnonPages: 216620 kB PageTables: 34232 kB AnonHugePages: 0 kB HugePages_Total: 26000 HugePages_Free: 473 HugePages_Rsvd: 74 HugePages_Surp: 0 Hugepagesize: 2048 kB --//PageTables仅仅使用34232 kB.对比就可以发现pagetables使用大大减少. --//如果你注解pre_page_sga=true,再次启动数据库几乎马上完成. Thu Jan 03 10:44:43 2019 Starting ORACLE instance (normal) .... MMON started with pid=17, OS id=504 Thu Jan 03 10:44:45 2019 MMNL started with pid=18, OS id=506 ORACLE_BASE from environment = /u01/app/oracle --//仅仅2秒. 总结: 1.使用pre_page_sga=true,必须打开hugepages. 2.注意12cR2缺省pre_page_sga=true. 3.再次强调安装时配置hugepages必要性,现在的服务器内存都很大. 4.pre_page_sga=true,使用hugepages的情况下,res占用这么小呢?不理解. 5.实际上我们有一台rh4.3的机器,即使设置pre_page_sga=false,打开hugepages的情况下. --//rh 4.2的机器. # top -u oracle top - 10:48:37 up 362 days, 18:21, 1 user, load average: 0.01, 0.03, 0.00 Tasks: 116 total, 1 running, 115 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0% us, 0.0% sy, 0.0% ni, 99.5% id, 0.5% wa, 0.0% hi, 0.0% si Mem: 4045276k total, 4024284k used, 20992k free, 135488k buffers Swap: 3911788k total, 140k used, 3911648k free, 2731800k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12629 oracle 16 0 838m 626m 624m S 0.0 15.9 0:13.40 oracle 12631 oracle 16 0 836m 625m 623m S 0.0 15.8 0:02.09 oracle 12633 oracle -2 0 836m 625m 623m S 0.0 15.8 0:00.04 oracle 12637 oracle 16 0 836m 625m 623m S 0.0 15.8 0:00.03 oracle 12639 oracle 16 0 836m 625m 623m S 0.0 15.8 0:00.03 oracle 12641 oracle 16 0 836m 631m 628m S 0.0 16.0 0:00.07 oracle --//RES也很大,等于sga大小. SYS@bookdg> show sga Total System Global Area 634732544 bytes Fixed Size 2255792 bytes Variable Size 197133392 bytes Database Buffers 427819008 bytes Redo Buffers 7524352 bytes SYS@bookdg> show parameter pre_page NAME TYPE VALUE ------------ ------- ------ pre_page_sga boolean FALSE # cat /proc/meminfo | grep -i page PageTables: 16460 kB HugePages_Total: 320 HugePages_Free: 15 Hugepagesize: 2048 kB --//那位给出解析,到底是os还是oracle的问题,出现这样的情况. 6.收尾还原略.
[20190103]设置pre_page_sga=true启动缓慢的问题.txt
来源:这里教程网
时间:2026-03-03 12:49:42
作者:
编辑推荐:
- office2003怎么升级到office更高版本03-03
- [20190103]设置pre_page_sga=true启动缓慢的问题.txt03-03
- 下载的简历模板怎么调整页码03-03
- 通过v$wait_chains视图诊断数据库hang和Contention03-03
- 如何快速打开最近使用的Word文档03-03
- office哪个版本办公软件好用?03-03
- Word文档中怎么去除页眉横线03-03
- win10怎么安装office2013?03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 通过v$wait_chains视图诊断数据库hang和Contention
- RAC中的并行查询 DOP(Degree of Parallelism)
RAC中的并行查询 DOP(Degree of Parallelism)
26-03-03 - (重要)关于性能的几个主要动态视图
(重要)关于性能的几个主要动态视图
26-03-03 - Oracle date 和 timestamp 区别
Oracle date 和 timestamp 区别
26-03-03 - 深入理解Oracle调试事件:10046事件详解
深入理解Oracle调试事件:10046事件详解
26-03-03 - clusterware启动顺序——OHASD
clusterware启动顺序——OHASD
26-03-03 - Oracle自治数据仓库荣获2018年度创新产品奖
Oracle自治数据仓库荣获2018年度创新产品奖
26-03-03 - Word制作商务邀请函时怎么批量加入客户信息
Word制作商务邀请函时怎么批量加入客户信息
26-03-03 - ORACLE RAC clusterware
ORACLE RAC clusterware
26-03-03 - 沃趣微讲堂 | Oracle集群技术(五):集群中的三种心跳机制
沃趣微讲堂 | Oracle集群技术(五):集群中的三种心跳机制
26-03-03
