1、查看系统内存,总内存(MemTotal)

cat /proc/meminfo | grep MemTotal

2.查看有没有使用大内存页时的情况

more /proc/meminfo |grep -i HugePage

3.查看SGA和PGA(pusl sql 中)
3.1.切换到oracle用户,以 SYSDBA 身份登录到数据库: 
su oracle  

sqlplus / as sysdba
3.2 为了优化性能,SGA容量应与实际内存相符,避免过大导致使用虚拟内存而降低性能。

sga_max_size‌ 可动态分配SGA的最大值

sga_target 当前已分配的最大SGA,用于自动SGA内存管理‌

show parameter sga;

show parameter pga;

5、配置HugePages Pool大小

vi /etc/sysctl.conf

在最后添加如下的行

vm.nr_hugepages = 2300     #(这个值应大于或等于 SGA/2m,即 4*1024m/2m)

6、配置oracle用户最大线程数、文件句柄和最大能锁定的内存

vi /etc/security/limits.conf

在最后添加如下的行

 
       oracle  soft    nproc   2047
       oracle  hard    nproc   16384
       oracle  soft    nofile  1024
       oracle  hard    nofile  65536
       oracle  soft    memlock 5194304          #(这里是以KB为单位,一般大于等于SGA)

       oracle  hard    memlock 5194304

7、使配置生效

sysctl -p  

8、重启系统及启动oracle实例

参考文章:

linux下Oracle通过设置大内存页解决使用swap分区问题_oracle占用虚拟交换分区-CSDN博客

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐