[20221214]limits.conf里面关于memlock设置问题.txt

来源:这里教程网 时间:2026-03-03 18:13:27 作者:

[20221214]limits.conf里面关于memlock设置问题.txt --//别人给我的反馈,就是无论设置/etc/security/limits.conf多小,数据库一样能起来不知道为什么,做一个记录. --//OS的基本概念不熟悉.我自己也不知道问题在那里. 1.建立测试环境: # grep "^oracle" /etc/security/limits.conf  | grep memlock oracle hard  memlock  0 oracle soft  memlock  0 $ egrep "Max locked memory|Limit" /proc/self/limits Limit                     Soft Limit           Hard Limit           Units Max locked memory         0                    0                    bytes $ cd /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs --//建立参数文件initxxxx.ora $ cat initxxxx.ora db_name=xxxx instance_name=xxxx sga_target=50G sga_max_size=50G shared_pool_size=2G pre_page_sga=true # grep "^vm.nr" /etc/sysctl.conf vm.nr_hugepages = 26000 vm.nr_overcommit_hugepages = 1300 # sysctl -p .. # sysctl vm.nr_hugepages vm.nr_hugepages = 26000 --//vm.nr_hugepages设置生效. 2.测试: --//启动数据库前: # grep -i page /proc/meminfo AnonPages:        217416 kB PageTables:         6400 kB AnonHugePages:     57344 kB HugePages_Total:   26000 HugePages_Free:    26000 HugePages_Rsvd:        0 HugePages_Surp:        0 Hugepagesize:       2048 kB $ export ORACLE_SID=xxxx SYS@xxxx> startup nomount ORACLE instance started. Total System Global Area 5.3447E+10 bytes Fixed Size                  2265864 bytes Variable Size            5.3284E+10 bytes Database Buffers          134217728 bytes Redo Buffers               26480640 bytes --//居然可以启动.也就是我设置memlock=0的情况,数据依旧可以启动. $ grep -i pages /proc/meminfo AnonPages:        281204 kB AnonHugePages:     77824 kB HugePages_Total:   26000 HugePages_Free:      473 HugePages_Rsvd:       74 HugePages_Surp:        0 Hugepagesize:       2048 kB $ ps -ef |grep dbw[0] oracle   36844     1  0 08:50 ?        00:00:00 ora_dbw0_xxxx $ egrep "Max locked memory|Limit" /proc/36844/limits Limit                     Soft Limit           Hard Limit           Units Max locked memory         0                    0                    bytes --//说明从bash shell继承的memlock的设置. --//找到一个链接: https://docs.oracle.com/database/121/UNXAR/appi_vlm.htm#UNXAR402 Edit the memlock setting in the /etc/security/limits.conf file. The memlock setting is specified in KB, and the maximum locked memory limit should be set to at least 90 percent of the current RAM when HugePages memory is enabled and at least 3145728 KB (3 GB) when HugePages memory is disabled. For example, if you have 64 GB RAM installed, then add the following entries to increase the maximum locked-in-memory address space: --//翻译如下: 编辑/etc/security/limits.conf文件中的成员锁设置。内存锁设置在KB中指定,当HugePages内存被启用时,最大锁定内存限制应至少设 置为当前RAM的90%,当HugePages内存被禁用时,至少设置为3145728 KB(3 GB)。例如,如果您安装了64 GB RAM,则添加以下条目以增加 最大锁定内存地址空间: *   soft   memlock    60397977 *   hard   memlock    60397977 --//60397977/1024 = 58982.3994140625 --//64*1024*1024*.9 = 60397977.6,与oracle建议值一致. You can also set the memlock value higher than your SGA requirements. Log in as oracle user again and run the ulimit -l command to verify the new memlock setting: $ ulimit -l 60397977 --//不熟练linux OS的相关知识,也不知道问题在那里,仅仅做一个记录.我前一次遇到的情况可能是内存不足导致的情况.

相关推荐