[20260101]Oracle连接占用内存疑问(21c).txt

来源:这里教程网 时间:2026-03-03 23:03:34 作者:

[20260101]Oracle连接占用内存疑问(21c).txt --//以前测试过11.2.0.4数据库打开连接什么都不做占用内存的测试,每个会话占用仅仅2.5M,而生产系统也看到平均每个会话占用5M。 1.当时的测试如下: --//在远程连接数据库,数据库版本11.2.0.4. --//补充一点,测试的数据库都使用hugepage。 $ seq 150 | xargs -i{} echo "sqlplus -s -l scott/book@book <<< 'host sleep 60' &" | bash & --//说明一下我这台客户端很旧(rh4.3) ,xargs 命令仅仅支持-i(小写),一般现在的版本使用大写-I. # smem -tk -U oracle -P "oraclebook"   PID User     Command                         Swap      USS      PSS      RSS 61976 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.5M 62054 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.6M 62082 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.5M 62096 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.5M 62116 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.6M 61882 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.5M 61894 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.6M 61902 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.6M 61934 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.6M 61988 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.5M 62366 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.6M 62376 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.6M 62390 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.7M 62424 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.7M 62438 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.6M 62450 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.7M 62402 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.7M 62412 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.6M 62226 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.6M 62420 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.7M 62444 oracle   oraclebook (LOCAL=NO)              0     2.4M     2.5M    20.7M -------------------------------------------------------------------------------   150 1                                           0   364.1M   379.3M     3.0G --//可以发现每个连接消耗2.5M上下.再次说明RSS的累计没有任何意义. --//当时生产系统的情况: #  smem -tk -U oracle -P "oraclexxxx1" -s pss --//注意-s pss 要小写.   PID User     Command                         Swap      USS      PSS      RSS 29000 oracle   oraclexxxx1 (DESCRIPTION=(L        0     2.1M     2.1M    18.5M 116067 oracle   oraclexxxx1 (LOCAL=NO)             0     2.3M     2.3M    20.5M  9658 oracle   oraclexxxx1 (LOCAL=NO)             0     2.3M     2.3M    20.5M 58779 oracle   oraclexxxx1 (LOCAL=NO)             0     2.3M     2.3M    20.5M 82193 oracle   oraclexxxx1 (LOCAL=NO)             0     2.3M     2.3M    20.5M 82937 oracle   oraclexxxx1 (LOCAL=NO)             0     2.3M     2.3M    20.5M 83543 oracle   oraclexxxx1 (LOCAL=NO)             0     2.3M     2.3M    20.5M 86108 oracle   oraclexxxx1 (LOCAL=NO)             0     2.3M     2.3M    20.5M 101419 oracle   oraclexxxx1 (LOCAL=NO)             0     2.3M     2.3M    20.5M 126643 oracle   oraclexxxx1 (LOCAL=NO)             0     2.3M     2.3M    20.5M 128585 oracle   oraclexxxx1 (LOCAL=NO)             0     2.3M     2.3M    20.5M 61510 oracle   oraclexxxx1 (LOCAL=NO)             0     2.3M     2.3M    20.5M 112481 oracle   oraclexxxx1 (LOCAL=NO)             0     2.4M     2.4M    21.4M 112483 oracle   oraclexxxx1 (LOCAL=NO)             0     2.4M     2.4M    21.4M 97264 oracle   oraclexxxx1 (LOCAL=NO)             0     2.4M     2.4M    21.4M 111967 oracle   oraclexxxx1 (LOCAL=NO)             0     2.4M     2.4M    21.4M 112505 oracle   oraclexxxx1 (LOCAL=NO)             0     2.4M     2.4M    21.3M 109834 oracle   oraclexxxx1 (LOCAL=NO)             0     2.4M     2.4M    21.4M 109847 oracle   oraclexxxx1 (LOCAL=NO)             0     2.4M     2.4M    21.4M 109851 oracle   oraclexxxx1 (LOCAL=NO)             0     2.4M     2.4M    21.4M 109855 oracle   oraclexxxx1 (LOCAL=NO)             0     2.4M     2.4M    21.4M 111860 oracle   oraclexxxx1 (LOCAL=NO)             0     2.4M     2.4M    21.4M 111862 oracle   oraclexxxx1 (LOCAL=NO)             0     2.4M     2.4M    21.4M 111965 oracle   oraclexxxx1 (LOCAL=NO)             0     2.4M     2.4M    21.4M 111806 oracle   oraclexxxx1 (LOCAL=NO)             0     2.4M     2.4M    21.4M 103363 oracle   oraclexxxx1 (LOCAL=NO)             0     2.4M     2.4M    21.4M 101308 oracle   oraclexxxx1 (LOCAL=NO)             0     2.4M     2.4M    21.4M ... 119918 oracle   oraclexxxx1 (LOCAL=NO)             0     7.0M     7.1M    36.1M   682 oracle   oraclexxxx1 (LOCAL=NO)             0     7.1M     7.1M    34.4M  4524 oracle   oraclexxxx1 (LOCAL=NO)             0     7.1M     7.1M    37.0M 70387 oracle   oraclexxxx1 (LOCAL=NO)             0     7.1M     7.2M    37.3M 33543 oracle   oraclexxxx1 (LOCAL=NO)             0     7.2M     7.2M    31.8M 93193 oracle   oraclexxxx1 (LOCAL=NO)             0     7.2M     7.3M    34.9M 84138 oracle   oraclexxxx1 (LOCAL=NO)             0     7.3M     7.3M    32.4M 114216 oracle   oraclexxxx1 (LOCAL=NO)             0     7.3M     7.3M    35.1M 107901 oracle   oraclexxxx1 (LOCAL=NO)             0     7.4M     7.4M    35.6M 74966 oracle   oraclexxxx1 (LOCAL=NO)             0     7.4M     7.4M    35.5M 91516 oracle   oraclexxxx1 (LOCAL=NO)             0     7.6M     7.6M    35.2M 67260 oracle   oraclexxxx1 (LOCAL=NO)             0     7.6M     7.7M    35.9M 20245 oracle   oraclexxxx1 (LOCAL=NO)             0     7.7M     7.8M    36.2M 105204 oracle   oraclexxxx1 (LOCAL=NO)             0     7.8M     7.8M    37.3M 26185 oracle   oraclexxxx1 (LOCAL=NO)             0     6.1M     8.2M    43.3M 101757 oracle   oraclexxxx1 (LOCAL=NO)             0     8.7M     8.9M    36.8M 76951 oracle   oraclexxxx1 (LOCAL=NO)             0     8.9M     9.6M    44.9M 33285 oracle   oraclexxxx1 (LOCAL=NO)             0    12.2M    12.2M    40.4M 46048 oracle   oraclexxxx1 (LOCAL=NO)             0     6.4M    13.0M    48.2M 83094 oracle   oraclexxxx1 (LOCAL=NO)             0     6.9M    13.4M    52.2M 20360 oracle   oraclexxxx1 (LOCAL=NO)             0    36.4M    36.4M    62.1M -------------------------------------------------------------------------------  4247 2                                           0    18.8G    18.8G   110.3G --//18.8*1024/4247 = 4.53M. 平均5M的估计的量还是充足的. 2.21.c的情况: $ grep -i huge  /proc/meminfo AnonHugePages:     65536 kB HugePages_Total:     522 HugePages_Free:        7 HugePages_Rsvd:        7 HugePages_Surp:        0 Hugepagesize:       2048 kB --//数据库使用hugepage。 SYS@book> @ver2 ============================== PORT_STRING                   : x86_64/Linux 2.4.xx VERSION                       : 21.0.0.0.0 BANNER                        : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production BANNER_FULL                   : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production Version 21.3.0.0.0 BANNER_LEGACY                 : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production CON_ID                        : 0 PL/SQL procedure successfully completed. # cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) $ cat a.sh free -k >| aa.txt seq 150 | xargs -IQ -P 150 bash -c "sqlplus -s -l scott/book@book01p <<< 'host sleep 60' &" sleep 15 free -k >>aa.txt # smem -tk  -P "oraclebook" -U oracle   PID User     Command                         Swap      USS      PSS      RSS  4995 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    30.1M  5147 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.2M  5151 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.2M  4455 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.3M  4467 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.3M  4474 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.3M  4483 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.2M  4489 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.2M  4503 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.2M  4505 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.3M  4509 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.2M  4535 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.2M  4544 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.2M  4558 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.3M  4572 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.3M  4593 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.2M  4598 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.3M  4625 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.2M  4632 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.2M  4637 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.2M  4651 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.3M  4655 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.2M  4666 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.3M  4677 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.2M  4691 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.7M    31.2M ...  5121 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.8M    31.2M  5134 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.8M    31.2M  5145 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.8M    31.2M  4449 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.8M    31.2M  5141 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.8M    31.3M  5156 oracle   oraclebook (LOCAL=NO)              0     9.7M     9.8M    31.3M  4463 oracle   oraclebook (LOCAL=NO)              0     9.7M     9.8M    31.3M  5100 oracle   oraclebook (LOCAL=NO)              0     9.7M     9.8M    31.3M  5105 oracle   oraclebook (LOCAL=NO)              0     9.7M     9.8M    31.3M  4697 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.8M    31.4M  5030 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.8M    31.3M  4495 oracle   oraclebook (LOCAL=NO)              0     9.7M     9.8M    31.4M  5114 oracle   oraclebook (LOCAL=NO)              0     9.7M     9.8M    31.4M  5112 oracle   oraclebook (LOCAL=NO)              0     9.7M     9.8M    31.4M  4549 oracle   oraclebook (LOCAL=NO)              0     9.7M     9.8M    31.6M -------------------------------------------------------------------------------   150 1                                           0     1.4G     1.4G     4.6G --//基本什么没做,每个连接消耗9.7M. $ cat aa.txt               total        used        free      shared  buff/cache   available Mem:        8010488     1756800     4496352        8884     1757336     5920400 Swap:       1048572           0     1048572               total        used        free      shared  buff/cache   available Mem:        8010488     4178816     2058436        8884     1773236     3483848 Swap:       1048572           0     1048572 --//(4178816-1756800)/150/1024 = 15.77M,启动1个使用连接接近16M,当然这里面包含sleep以及sqlplus。 # smem -tk  -P "oraclebook|sqlplus|sleep" -U oracle   PID User     Command                         Swap      USS      PSS      RSS  7999 oracle   sleep 60                           0    88.0K    88.0K   608.0K  8147 oracle   sleep 60                           0    88.0K    88.0K   608.0K  8384 oracle   sleep 60                           0    88.0K    88.0K   608.0K ...  8520 oracle   sleep 60                           0    92.0K    92.0K   612.0K  7777 oracle   sqlplus -s -l                      0     5.1M     5.2M    15.4M  7780 oracle   sqlplus -s -l                      0     5.1M     5.2M    15.4M  7784 oracle   sqlplus -s -l                      0     5.1M     5.2M    15.4M  7786 oracle   sqlplus -s -l                      0     5.1M     5.2M    15.4M ...  7861 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.8M    31.2M  7885 oracle   oraclebook (LOCAL=NO)              0     9.7M     9.8M    31.2M  8045 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.8M    31.3M  8283 oracle   oraclebook (LOCAL=NO)              0     9.6M     9.8M    31.3M  8279 oracle   oraclebook (LOCAL=NO)              0     9.7M     9.8M    31.3M -------------------------------------------------------------------------------   451 1                                           0     2.2G     2.2G     6.9G --// 9.8+5.2+88/1024 = 15.09,基本接近。 --//注:总计451,多了1个,完成后执行: # smem -tk  -P "oraclebook|sqlplus|sleep" -U oracle   PID User     Command                         Swap      USS      PSS      RSS  2659 oracle   tmux new-session -s oracle         0     5.9M     6.1M     7.0M -------------------------------------------------------------------------------     1 1                                           0     5.9M     6.1M     7.0M # ps -fp 2659 UID        PID  PPID  C STIME TTY          TIME CMD oracle    2659     1  0 10:56 ?        00:00:02 tmux new-session -s oracle -n bashsqlplus -d --//因为命令里面包含sqlplus字符串。 3.小结: --//可以看出21c,每个连接比原来多消耗将近7M。如果升级到21c,连接数量很多的话,比如4000个连接,相当于多消耗将近 --//7*4000=28000M,接近28G,这是一个非常大的量。当然现在许多服务器内存都很大,这也许是不用考虑的情况。 --//后记:使用pmap -x <spid>查看,可以发现如下: $ pmap -x 3570 | grep "rw---" | sort -k2 -nr | head -10 00007f6630e25000    6400    5952    5952 rw---   [ anon ] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00007f66322b2000    2564    1392    1392 rw---   [ anon ] 00007f6636aa5000    1656    1560    1560 rw---   [ anon ] 00007f6630ca5000    1024    1024    1024 rw---   [ anon ] 00007f6630ba5000    1024     956     956 rw---   [ anon ] 00007ffe065f7000     644     512     512 rw---   [ stack ] 00007f6631669000     512      24      24 rw---   [ anon ] 00007f6630da5000     512     480     480 rw---   [ anon ] 000000001a413000     468      28      24 rw--- oracle 000000001a488000     344     196     196 rw---   [ anon ] --//注意看下划线,启动多个连接查看,每个地址都不一样,对比11g,相当于每个连接增加6400K。

相关推荐