Re: hugepages question

From: Mark J. Bobak <mark_at_bobak.net>
Date: Fri, 15 Feb 2019 11:24:57 -0500
Message-ID: <CAFQ5ACLqPdQQ9A8_muU5OPaoD0Smy1wHe7x5tpRRQO-5J9UonA_at_mail.gmail.com>



Once you allocate hugepages, it prevents you using that memory for any other purpose. If you're planning the use of the server, that's probably fine

Also, to add more to hugepages without a reboot, you can (theoretically) do 'sudo sysctl -p' and then 'cat /proc/meminfo' to see if it fully allocated all the newly requested hugepages. If not all hugepages were allocated, you can do 'sudo sysctl -p' again, and check /proc/meminfo again.

I remember, at least one time in the past, where I wanted to add a new DB, and I couldn't afford a bounce of the server, due to other production DBs on the server, where I wrote a simple script that did "grep HugePages_Total /proc/meminfo |awk -F: '{ print $2 }'" and kept calling 'sudo sysctl -p' over and over, until the output of the previous command was equal to the value in '/etc/sysctl.conf'. It took a few minutes, but it worked.

-Mark

On Thu, Feb 14, 2019 at 11:53 AM Jose Rodriguez <jrodriguez2_at_pythian.com> wrote:

> I am curious to know why over allocating HP is a bad idea.
> I mean, if you know you will end up increasing the size of an SGA or the
> number of SGAs in the server, why not allocate HP ahead of time.
> Save some RAM for OS, some for PGA and the rest should go to SGA, that
> 'rest' should be in HP sooner or later, so do it sooner.
> Does it make sense? Or am I missing something?
>
> [image: Pythian] <http://www.pythian.com/>
> *Jose Rodriguez* | Oracle Project Engineer | [image: LinkedIn]
> <https://www.linkedin.com/company/pythian>
> *t* +1 613 565 8696 <+1+613+565+8696> *ext.* 1393
> *m* +34 607 55 49 91 <+34+607+55+49+91>
> jrodriguez2_at_pythian.com
> *www.pythian.com* <https://www.pythian.com/>
> [image: Pythian] <https://www.pythian.com/email-footer-click>
>
>
> On Thu, 14 Feb 2019 at 17:19, Jeff Chirco <backseatdba_at_gmail.com> wrote:
>
>> Hi Andy, yes I did reboot. Oh I originally set it to 81000 and then
>> rebooted. Yesterday I tried to increase it to 9100 without a reboot.
>>
>> Since it requires a reboot then that kind of is a bummer if I ever need
>> to add another database to a server. I'd have to bring everything down to
>> increase hugepages. I could over allocate hugepages but I read that is a
>> bad idea.
>>
>> Jeff
>>
>> On Thu, Feb 14, 2019 at 8:05 AM Andy Wattenhofer <watt0012_at_umn.edu>
>> wrote:
>>
>>> Did you reboot after the last change to hugepages?
>>>
>>> [root]# grep nr_hugepages /etc/sysctl.conf
>>>> vm.nr_hugepages=*91000*
>>>>
>>> [...]
>>>
>>>> [root]# cat /proc/meminfo
>>>> HugePages_Total: *81793*
>>>>
>>> HugePages_Free: 8
>>>> HugePages_Rsvd: 7
>>>> HugePages_Surp: 0
>>>>
>>>
>>> Yes, you must reboot for 91000 to take effect. The huge page RAM is
>>> reserved at boot time.
>>>
>>> Andy
>>>
>>>
>>> On Thu, Feb 14, 2019 at 9:15 AM Jeff Chirco <backseatdba_at_gmail.com>
>>> wrote:
>>>
>>>> Thanks for the replies. Forgot to mention this is Oracle Linux 7
>>>> running 12.2.0.1. These are output from my Development server but
>>>> production is identicial except hugepage size is lower cause it has less
>>>> database.
>>>> Development and Production both have 256gb of RAM.
>>>> I also noticed when I first set huegpages using the below command it
>>>> increased hugepages but not to the amount I tried to set it to. Not until a
>>>> server reboot did it get set the full amount. If I need to increase it
>>>> again I would prefer to not have to reboot the server.
>>>> # sysctl -w vm.nr_hugepages=value
>>>>
>>>> Regarding hugepages_settings.sh I did follow Tim's notes but I ended up
>>>> finding an updated script under Doc ID 401749.1
>>>>
>>>> [root]# grep memlock /etc/security/limits.conf
>>>> # - memlock - max locked-in-memory address space (KB)
>>>> oracle hard memlock 237265300
>>>> # oracle-rdbms-server-11gR2-preinstall setting for memlock hard limit
>>>> is maximum of 128GB on x86_64 or 3GB on x86 OR 90 % of RAM
>>>> oracle soft memlock 237265300
>>>>
>>>> [root]# grep nr_hugepages /etc/sysctl.conf
>>>> vm.nr_hugepages=91000
>>>>
>>>>
>>>> [root]# ulimit -l
>>>> 64
>>>>
>>>> [root]# ulimit -a
>>>> core file size (blocks, -c) 0
>>>> data seg size (kbytes, -d) unlimited
>>>> scheduling priority (-e) 0
>>>> file size (blocks, -f) unlimited
>>>> pending signals (-i) 1029648
>>>> max locked memory (kbytes, -l) 64
>>>> max memory size (kbytes, -m) unlimited
>>>> open files (-n) 1024
>>>> pipe size (512 bytes, -p) 8
>>>> POSIX message queues (bytes, -q) 819200
>>>> real-time priority (-r) 0
>>>> stack size (kbytes, -s) 8192
>>>> cpu time (seconds, -t) unlimited
>>>> max user processes (-u) 1029648
>>>> virtual memory (kbytes, -v) unlimited
>>>> file locks (-x) unlimited
>>>>
>>>>
>>>> Alert log from one of my databases
>>>> **********************************************************************
>>>> 2019-02-12T21:26:58.786205-08:00
>>>> Dump of system resources acquired for SHARED GLOBAL AREA (SGA)
>>>>
>>>> 2019-02-12T21:26:58.790788-08:00
>>>> Per process system memlock (soft) limit = 226G
>>>> 2019-02-12T21:26:58.793885-08:00
>>>> Expected per process system memlock (soft) limit to lock
>>>> SHARED GLOBAL AREA (SGA) into memory: 8196M
>>>> 2019-02-12T21:26:58.800179-08:00
>>>> Available system pagesizes:
>>>> 4K, 2048K
>>>> 2019-02-12T21:26:58.806848-08:00
>>>> Supported system pagesize(s):
>>>> 2019-02-12T21:26:58.809846-08:00
>>>> PAGESIZE AVAILABLE_PAGES EXPECTED_PAGES ALLOCATED_PAGES ERROR(s)
>>>> 2019-02-12T21:26:58.813115-08:00
>>>> 2048K 65468 4098 4098 NONE
>>>> 2019-02-12T21:26:58.816156-08:00
>>>> Reason for not supporting certain system pagesizes:
>>>> 2019-02-12T21:26:58.819060-08:00
>>>> 4K - Large pagesizes only
>>>> 2019-02-12T21:26:58.822058-08:00
>>>> **********************************************************************
>>>>
>>>>
>>>>
>>>> [root]# ipcs -m
>>>>
>>>> ------ Shared Memory Segments --------
>>>> key shmid owner perms bytes nattch status
>>>> 0x00000000 589824 oracle 600 10485760 78
>>>> 0x00000000 622593 oracle 600 3372220416 78
>>>> 0x00000000 655362 oracle 600 8388608 78
>>>> 0x76c55318 688131 oracle 600 2097152 78
>>>> 0x00000000 11862020 oracle 600 10485760 120
>>>> 0x00000000 11894789 oracle 600 3204448256 120
>>>> 0x00000000 11927558 oracle 600 8388608 120
>>>> 0x34ef509c 11960327 oracle 600 2097152 120
>>>> 0x00000000 11993096 oracle 600 10485760 95
>>>> 0x00000000 12025865 oracle 600 2298478592 95
>>>> 0x00000000 12058634 oracle 600 8388608 95
>>>> 0x507a78a4 12091403 oracle 600 2097152 95
>>>> 0x00000000 12124172 oracle 600 10485760 207
>>>> 0x00000000 12156941 oracle 600 6425673728 207
>>>> 0x00000000 12189710 oracle 600 8388608 207
>>>> 0x866b8aa0 12222479 oracle 600 2097152 207
>>>> 0x00000000 12255248 oracle 600 12582912 81
>>>> 0x00000000 12288017 oracle 600 8573157376 81
>>>> 0x00000000 12320786 oracle 600 6291456 81
>>>> 0x0c51f55c 12353555 oracle 600 2097152 81
>>>> 0x00000000 12386324 oracle 600 12582912 79
>>>> 0x00000000 12419093 oracle 600 8573157376 79
>>>> 0x00000000 12451862 oracle 600 6291456 79
>>>> 0x7afafd64 12484631 oracle 600 2097152 79
>>>> 0x00000000 12779544 oracle 600 12582912 90
>>>> 0x00000000 12812313 oracle 600 8573157376 90
>>>> 0x00000000 12845082 oracle 600 6291456 90
>>>> 0xdde48098 12877851 oracle 600 2097152 90
>>>> 0x00000000 12910620 oracle 600 12582912 86
>>>> 0x00000000 12943389 oracle 600 8573157376 86
>>>> 0x00000000 12976158 oracle 600 6291456 86
>>>> 0xbae4e74c 13008927 oracle 600 2097152 86
>>>> 0x00000000 13303840 oracle 600 12582912 85
>>>> 0x00000000 13336609 oracle 600 8573157376 85
>>>> 0x00000000 13369378 oracle 600 6291456 85
>>>> 0x4c7ac944 13402147 oracle 600 2097152 85
>>>> 0x00000000 13434916 oracle 600 12582912 86
>>>> 0x00000000 13467685 oracle 600 8573157376 86
>>>> 0x00000000 13500454 oracle 600 6291456 86
>>>> 0xf06d661c 13533223 oracle 600 2097152 86
>>>> 0x00000000 13828136 oracle 600 12582912 87
>>>> 0x00000000 13860905 oracle 600 8573157376 87
>>>> 0x00000000 13893674 oracle 600 6291456 87
>>>> 0xdb5acf68 13926443 oracle 600 2097152 87
>>>> 0x00000000 13959212 oracle 600 12582912 87
>>>> 0x00000000 13991981 oracle 600 8573157376 87
>>>> 0x00000000 14024750 oracle 600 6291456 87
>>>> 0xcdd9f634 14057519 oracle 600 2097152 87
>>>> 0x00000000 14352432 oracle 600 10485760 102
>>>> 0x00000000 14385201 oracle 600 6425673728 102
>>>> 0x00000000 14417970 oracle 600 8388608 102
>>>> 0x4bd6517c 14450739 oracle 600 2097152 102
>>>> 0x00000000 14483508 oracle 600 10485760 116
>>>> 0x00000000 14516277 oracle 600 6425673728 116
>>>> 0x00000000 14549046 oracle 600 8388608 116
>>>> 0x33ec8074 14581815 oracle 600 2097152 116
>>>> 0x00000000 14876728 oracle 600 12582912 87
>>>> 0x00000000 14909497 oracle 600 8573157376 87
>>>> 0x00000000 14942266 oracle 600 6291456 87
>>>> 0xb40541dc 14975035 oracle 600 2097152 87
>>>> 0x00000000 1179975740 oracle 600 12582912 90
>>>> 0x00000000 1180008509 oracle 600 8455716864 90
>>>> 0x00000000 1180041278 oracle 600 34359738368 90
>>>> 0x00000000 1180074047 oracle 600 123731968 90
>>>> 0x00000000 15401024 oracle 600 12582912 91
>>>> 0x00000000 15433793 oracle 600 8573157376 91
>>>> 0x00000000 15466562 oracle 600 6291456 91
>>>> 0x36329238 15499331 oracle 600 2097152 91
>>>> 0x00000000 15532100 oracle 600 12582912 118
>>>> 0x00000000 15564869 oracle 600 8573157376 118
>>>> 0x00000000 15597638 oracle 600 6291456 118
>>>> 0xa0206b88 15630407 oracle 600 2097152 118
>>>> 0x00000000 16449608 oracle 600 12582912 86
>>>> 0x00000000 16482377 oracle 600 8573157376 86
>>>> 0x00000000 16515146 oracle 600 6291456 86
>>>> 0xc402bb18 16547915 oracle 600 2097152 86
>>>> 0x00000000 16318540 oracle 600 12582912 87
>>>> 0x00000000 16351309 oracle 600 8573157376 87
>>>> 0x00000000 16384078 oracle 600 6291456 87
>>>> 0x261e431c 16416847 oracle 600 2097152 87
>>>> 0x00000000 16187472 oracle 600 12582912 168
>>>> 0x00000000 16220241 oracle 600 20937965568 168
>>>> 0x00000000 16253010 oracle 600 56623104 168
>>>> 0x35b8fa94 16285779 oracle 600 2097152 168
>>>> 0x00000000 547127380 oracle 600 12582912 85
>>>> 0x00000000 547160149 oracle 600 251658240 85
>>>> 0x00000000 547192918 oracle 600 8321499136 85
>>>> 0x00000000 547225687 oracle 600 4595712 85
>>>> 0x9cd83398 547258456 oracle 600 40960 85
>>>> 0x00000000 792199257 oracle 600 10485760 106
>>>> 0x00000000 792232026 oracle 600 1644167168 106
>>>> 0x00000000 792264795 oracle 600 4781506560 106
>>>> 0x00000000 792297564 oracle 600 8388608 106
>>>> 0xc78a1c8c 792330333 oracle 600 32768 106
>>>> 0x6762e034 1180106846 oracle 600 28672 90
>>>>
>>>> [root]# cat /proc/meminfo
>>>> MemTotal: 263623524 kB
>>>> MemFree: 2169856 kB
>>>> MemAvailable: 25248596 kB
>>>> Buffers: 28 kB
>>>> Cached: 68234496 kB
>>>> SwapCached: 4392 kB
>>>> Active: 56288772 kB
>>>> Inactive: 32305392 kB
>>>> Active(anon): 38139416 kB
>>>> Inactive(anon): 28588332 kB
>>>> Active(file): 18149356 kB
>>>> Inactive(file): 3717060 kB
>>>> Unevictable: 0 kB
>>>> Mlocked: 0 kB
>>>> SwapTotal: 16777212 kB
>>>> SwapFree: 16732780 kB
>>>> Dirty: 1020 kB
>>>> Writeback: 0 kB
>>>> AnonPages: 20491988 kB
>>>> Mapped: 10605612 kB
>>>> Shmem: 46232620 kB
>>>> Slab: 2937544 kB
>>>> SReclaimable: 2197872 kB
>>>> SUnreclaim: 739672 kB
>>>> KernelStack: 68544 kB
>>>> PageTables: 1451148 kB
>>>> NFS_Unstable: 0 kB
>>>> Bounce: 0 kB
>>>> WritebackTmp: 0 kB
>>>> CommitLimit: 64832940 kB
>>>> Committed_AS: 93046052 kB
>>>> VmallocTotal: 34359738367 kB
>>>> VmallocUsed: 772444 kB
>>>> VmallocChunk: 34358900732 kB
>>>> HardwareCorrupted: 0 kB
>>>> AnonHugePages: 0 kB
>>>> CmaTotal: 0 kB
>>>> CmaFree: 0 kB
>>>> HugePages_Total: 81793
>>>> HugePages_Free: 8
>>>> HugePages_Rsvd: 7
>>>> HugePages_Surp: 0
>>>> Hugepagesize: 2048 kB
>>>> DirectMap4k: 514768 kB
>>>> DirectMap2M: 41201664 kB
>>>> DirectMap1G: 228589568 kB
>>>>
>>>>
>>>> On Thu, Feb 14, 2019 at 6:50 AM Jeff Chirco <backseatdba_at_gmail.com>
>>>> wrote:
>>>>
>>>>> Ooops sorry yes Oracle Linux 7.4
>>>>>
>>>>> On Wed, Feb 13, 2019 at 4:31 PM Paul Drake <bdbafh_at_gmail.com> wrote:
>>>>>
>>>>>> OS info might be relevant.
>>>>>>
>>>>>> Assuming Linux:
>>>>>>
>>>>>> ipcs -m
>>>>>> cat /proc/meminfo
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Feb 13, 2019, 7:12 PM Jeff Chirco <backseatdba_at_gmail.com
>>>>>> wrote:
>>>>>>
>>>>>>> Ok I just recently enabled hugepages on Production and Development.
>>>>>>> Everything is going good but I noticed that on my development environment
>>>>>>> which consists of a bunch of thin clones, when I remove and recreate the
>>>>>>> same clone the database fails to create, I am getting:
>>>>>>>
>>>>>>> ORA-27137: unable to allocate large pages to create a shared memory segment
>>>>>>>
>>>>>>> I have the parameter *use_large_pages=ONLY*
>>>>>>> So it makes sense I would get this error when there is not enough
>>>>>>> pages. However I just removed this same database and am recreating it. I
>>>>>>> would think that would free it up but apparently not. Does pages not get
>>>>>>> released immediately when a database is removed? Is there something I
>>>>>>> should run to free it? Or just not have use_large_pages=ONLY and leave it
>>>>>>> at TRUE on Dev? I had to set it to TRUE to get this database up.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Jeff
>>>>>>>
>>>>>>
> --
>
>
>
>

--
http://www.freelists.org/webpage/oracle-l
Received on Fri Feb 15 2019 - 17:24:57 CET

Original text of this message