Insufficient free huge pages
Posted in 2015
Frank's IDS 12.10.FC4 on Linux logged "Insufficient free huge pages in /proc/meminfo for shared memory segment... default memory page size will be used" at engine startup. Respondents explained Informix tries to allocate shared memory in huge pages, but the box had none configured (HugePages_Total 0, Hugepagesize 2048 kB), so it harmlessly falls back to normal 4K pages, at some performance cost. Fix suggested: pre-allocate huge pages with sysctl -w vm.nr_hugepages=<pages> (pages of 2 MB each), plus a pointer to a blog article. No confirmation from Frank is recorded, and no specific page count was given for his 100 GB machine.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
Topics: Server Administration
Hi, Folks. IDS 12.10 FC4 Linux ncdopsdba101 2.6.32-358.23.2.el6.x86_64 #1 SMP Sat Sep 14 05:32:37 EDT 2013 x86_64 x86_64 x86_64 GNU/Linux See following info in online long. 01:27:09 Insufficient free huge pages in /proc/meminfo for shared memory segment. Requested: 116813824 bytes. Available: 0 bytes. The default memory page size will be used. 01:27:09 Requested shared memory segment size rounded from 112316KB to 114076KB 01:27:09 Segment locked: addr=0x44000000, size=116813824 Tue Mar 10 01:27:11 2015 01:27:11 Insufficient free huge pages in /proc/meminfo for shared memory segment. Requested: 9000038400 bytes. Available: 0 bytes. The default memory page size will be used. 01:27:11 Requested shared memory segment size rounded from 8789096KB to 8789100KB 01:27:11 Segment locked: addr=0x18e7f7000, size=9000038400 01:27:17 Successfully added a bufferpool of page size 2K. 01:27:17 Insufficient free huge pages in /proc/meminfo for shared memory segment. Requested: 4030197760 bytes. Available: 0 bytes. The default memory page size will be used. Any tips/suggestions on this? Thanks Frank --001a11353fe47b2d0c0510e5ab9b
Frank, If you cat /proc/meminfo, what value do you have for Hugepagesize? My guess is that Informix is trying to use huge pages, but there Linux has insufficient (or more likely no) large pages configured. This message isn't an issue unless you want to use huge pages. You can enable huge pages with: sysctl -w vm.nr_hugepages=number_of_pages I think that the number of pages is usually in units of 4 KB. Mike -----Original Message----- From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of FRANK Sent: Monday, March 09, 2015 8:12 PM To: ids@iiug.org Subject: Insufficient free huge pages [34801] Hi, Folks. IDS 12.10 FC4 Linux ncdopsdba101 2.6.32-358.23.2.el6.x86_64 #1 SMP Sat Sep 14 05:32:37 EDT 2013 x86_64 x86_64 x86_64 GNU/Linux See following info in online long. 01:27:09 Insufficient free huge pages in /proc/meminfo for shared memory segment. Requested: 116813824 bytes. Available: 0 bytes. The default memory page size will be used. 01:27:09 Requested shared memory segment size rounded from 112316KB to 114076KB 01:27:09 Segment locked: addr=0x44000000, size=116813824 Tue Mar 10 01:27:11 2015 01:27:11 Insufficient free huge pages in /proc/meminfo for shared memory segment. Requested: 9000038400 bytes. Available: 0 bytes. The default memory page size will be used. 01:27:11 Requested shared memory segment size rounded from 8789096KB to 8789100KB 01:27:11 Segment locked: addr=0x18e7f7000, size=9000038400 01:27:17 Successfully added a bufferpool of page size 2K. 01:27:17 Insufficient free huge pages in /proc/meminfo for shared memory segment. Requested: 4030197760 bytes. Available: 0 bytes. The default memory page size will be used. Any tips/suggestions on this? Thanks Frank --001a11353fe47b2d0c0510e5ab9b **************************************************************************** *** Forum Note: Use "Reply" to post a response in the discussion forum.
Frank, Sorry - typed that last message in a hurry... Check /proc/meminfo for huge pages to see if they are set up. The number of pages, if configured, is in units of 2 MB (or whatever Hugepagesize is set to)...4 KB would not be a huge page! -----Original Message----- From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of Mike Walker Sent: Monday, March 09, 2015 8:35 PM To: ids@iiug.org Subject: RE: Insufficient free huge pages [34802] Frank, If you cat /proc/meminfo, what value do you have for Hugepagesize? My guess is that Informix is trying to use huge pages, but there Linux has insufficient (or more likely no) large pages configured. This message isn't an issue unless you want to use huge pages. You can enable huge pages with: sysctl -w vm.nr_hugepages=number_of_pages I think that the number of pages is usually in units of 4 KB. Mike -----Original Message----- From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of FRANK Sent: Monday, March 09, 2015 8:12 PM To: ids@iiug.org Subject: Insufficient free huge pages [34801] Hi, Folks. IDS 12.10 FC4 Linux ncdopsdba101 2.6.32-358.23.2.el6.x86_64 #1 SMP Sat Sep 14 05:32:37 EDT 2013 x86_64 x86_64 x86_64 GNU/Linux See following info in online long. 01:27:09 Insufficient free huge pages in /proc/meminfo for shared memory segment. Requested: 116813824 bytes. Available: 0 bytes. The default memory page size will be used. 01:27:09 Requested shared memory segment size rounded from 112316KB to 114076KB 01:27:09 Segment locked: addr=0x44000000, size=116813824 Tue Mar 10 01:27:11 2015 01:27:11 Insufficient free huge pages in /proc/meminfo for shared memory segment. Requested: 9000038400 bytes. Available: 0 bytes. The default memory page size will be used. 01:27:11 Requested shared memory segment size rounded from 8789096KB to 8789100KB 01:27:11 Segment locked: addr=0x18e7f7000, size=9000038400 01:27:17 Successfully added a bufferpool of page size 2K. 01:27:17 Insufficient free huge pages in /proc/meminfo for shared memory segment. Requested: 4030197760 bytes. Available: 0 bytes. The default memory page size will be used. Any tips/suggestions on this? Thanks Frank --001a11353fe47b2d0c0510e5ab9b **************************************************************************** *** Forum Note: Use "Reply" to post a response in the discussion forum. **************************************************************************** *** Forum Note: Use "Reply" to post a response in the discussion forum.
The size of a huge page is also listed in /proc/meminfo but it is usually 2048KB (ie 2MB) Art Art S. Kagel, President and Principal Consultant ASK Database Management www.askdbmgt.com Blog: http://informix-myview.blogspot.com/ Disclaimer: Please keep in mind that my own opinions are my own opinions and do not reflect on the IIUG, nor any other organization with which I am associated either explicitly, implicitly, or by inference. Neither do those opinions reflect those of other individuals affiliated with any entity with which I am affiliated nor those of the entities themselves. On Mon, Mar 9, 2015 at 10:35 PM, Mike Walker <mike@advancedatatools.com> wrote: > Frank, > > If you cat /proc/meminfo, what value do you have for Hugepagesize? > > My guess is that Informix is trying to use huge pages, but there Linux has > insufficient (or more likely no) large pages configured. > > This message isn't an issue unless you want to use huge pages. You can > enable huge pages with: > > sysctl -w vm.nr_hugepages=number_of_pages > > I think that the number of pages is usually in units of 4 KB. > > Mike > > -----Original Message----- > From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of > FRANK > Sent: Monday, March 09, 2015 8:12 PM > To: ids@iiug.org > Subject: Insufficient free huge pages [34801] > > Hi, Folks. > > IDS 12.10 FC4 > > Linux ncdopsdba101 2.6.32-358.23.2.el6.x86_64 #1 SMP Sat Sep 14 05:32:37 > EDT > 2013 x86_64 x86_64 x86_64 GNU/Linux > > See following info in online long. > > 01:27:09 Insufficient free huge pages in /proc/meminfo for shared memory > segment. > > Requested: 116813824 bytes. Available: 0 bytes. > > The default memory page size will be used. > 01:27:09 Requested shared memory segment size rounded from 112316KB to > 114076KB > 01:27:09 Segment locked: addr=0x44000000, size=116813824 > > Tue Mar 10 01:27:11 2015 > > 01:27:11 Insufficient free huge pages in /proc/meminfo for shared memory > segment. > > Requested: 9000038400 bytes. Available: 0 bytes. > > The default memory page size will be used. > 01:27:11 Requested shared memory segment size rounded from 8789096KB to > 8789100KB > 01:27:11 Segment locked: addr=0x18e7f7000, size=9000038400 > 01:27:17 Successfully added a bufferpool of page size 2K. > > 01:27:17 Insufficient free huge pages in /proc/meminfo for shared memory > segment. > > Requested: 4030197760 bytes. Available: 0 bytes. > > The default memory page size will be used. > > Any tips/suggestions on this? > > Thanks > Frank > > --001a11353fe47b2d0c0510e5ab9b > > > **************************************************************************** > *** > Forum Note: Use "Reply" to post a response in the discussion forum. > > > > ******************************************************************************* > Forum Note: Use "Reply" to post a response in the discussion forum. > > --001a1140fa205b7fd70510ec9772
I've seen the exact same error but haven't yet seen a specific way to resolve it. We see no user impact when this message is in play. From my research so far it seems like other operations are allocating large volumes of memory when the scenario comes up which cause the huge pages that IDS wants to acquire to not be available. Instead it reverts to using regular memory pages. (assuming there is sufficient free memory). The only consequence is that more pages need to be kept track of unless an extreme amount of memory/pages are needed. When this issue is encountered, we also see the following line in the messages log (x64 RedHat 6.2, kernel 2.6.32-220.el6.x86_64). kernel: Node 0 Normal: 17624*4kB 47*8kB 9*16kB 3*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 71112kB As you can see there were 0 x 2048kB pages free when this was logged. I still have further research to perform on this issue, but wanted to share what I know so far.
Ben's article here https://informixdba.wordpress.com/tag/informix/ will show you how to fix it > -----Original Message----- > From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of > PETE MCDONNELL > Sent: Tuesday, March 10, 2015 10:03 AM > To: ids@iiug.org > Subject: Re: Insufficient free huge pages [34805] > > I've seen the exact same error but haven't yet seen a specific way to resolve > it. > We see no user impact when this message is in play. From my research so far > it > seems like other operations are allocating large volumes of memory when > the > scenario comes up which cause the huge pages that IDS wants to acquire to > not > be available. Instead it reverts to using regular memory pages. (assuming > there is sufficient free memory). The only consequence is that more pages > need > to be kept track of unless an extreme amount of memory/pages are needed. > > When this issue is encountered, we also see the following line in the > messages > log (x64 RedHat 6.2, kernel 2.6.32-220.el6.x86_64). > > kernel: Node 0 Normal: 17624*4kB 47*8kB 9*16kB 3*32kB 0*64kB 0*128kB > 0*256kB > 0*512kB 0*1024kB 0*2048kB 0*4096kB = 71112kB > > As you can see there were 0 x 2048kB pages free when this was logged. > > I still have further research to perform on this issue, but wanted to share > what I know so far. > > > ********************************************************** > ********************* > Forum Note: Use "Reply" to post a response in the discussion forum.
There is a performance penalty if you do not use hugepages. As long as the machine is not constraint for memory and the engine doesn't have to share the machine with other memory intensive applications, hugepages improve performance over "normal" pages. Art Art S. Kagel, President and Principal Consultant ASK Database Management www.askdbmgt.com Blog: http://informix-myview.blogspot.com/ Disclaimer: Please keep in mind that my own opinions are my own opinions and do not reflect on the IIUG, nor any other organization with which I am associated either explicitly, implicitly, or by inference. Neither do those opinions reflect those of other individuals affiliated with any entity with which I am affiliated nor those of the entities themselves. On Tue, Mar 10, 2015 at 11:02 AM, PETE MCDONNELL < pete.mcdonnell@ejustsystems.com> wrote: > I've seen the exact same error but haven't yet seen a specific way to > resolve > it. > We see no user impact when this message is in play. From my research so > far it > seems like other operations are allocating large volumes of memory when the > scenario comes up which cause the huge pages that IDS wants to acquire to > not > be available. Instead it reverts to using regular memory pages. (assuming > there is sufficient free memory). The only consequence is that more pages > need > to be kept track of unless an extreme amount of memory/pages are needed. > > When this issue is encountered, we also see the following line in the > messages > log (x64 RedHat 6.2, kernel 2.6.32-220.el6.x86_64). > > kernel: Node 0 Normal: 17624*4kB 47*8kB 9*16kB 3*32kB 0*64kB 0*128kB > 0*256kB > 0*512kB 0*1024kB 0*2048kB 0*4096kB = 71112kB > > As you can see there were 0 x 2048kB pages free when this was logged. > > I still have further research to perform on this issue, but wanted to share > what I know so far. > > > > ******************************************************************************* > Forum Note: Use "Reply" to post a response in the discussion forum. > > --001a114214702835e80510f19d18
Thank you all for the info. The message log was actually generated in the database starting time, no application running ( see log below). I also attached the /proc/meminfo of the box. Please let know what values we should configure. ( we have big memory 100GB) Thanks Frank 01:25:40 IBM Informix Dynamic Server Stopped. 01:27:09 IBM Informix Dynamic Server Started. 01:27:09 Insufficient free huge pages in /proc/meminfo for shared memory segment. Requested: 116813824 bytes. Available: 0 bytes. The default memory page size will be used. 01:27:09 Requested shared memory segment size rounded from 112316KB to 114076KB 01:27:09 Segment locked: addr=0x44000000, size=116813824 Tue Mar 10 01:27:11 2015 01:27:11 Insufficient free huge pages in /proc/meminfo for shared memory segment. Requested: 9000038400 bytes. Available: 0 bytes. The default memory page size will be used. 01:27:11 Requested shared memory segment size rounded from 8789096KB to 8789100KB 01:27:11 Segment locked: addr=0x18e7f7000, size=9000038400 01:27:17 Successfully added a bufferpool of page size 2K. 01:27:17 Insufficient free huge pages in /proc/meminfo for shared memory segment. Requested: 4030197760 bytes. Available: 0 bytes. The default memory page size will be used. 01:27:17 Requested shared memory segment size rounded from 3935736KB to 3935740KB 01:27:17 Segment locked: addr=0x3a6f12000, size=4030197760 01:27:19 Successfully added a bufferpool of page size 8K. 01:27:19 Warning: ONCONFIG dump directory (DUMPDIR) '/tmp' has insecure permissions 01:27:19 Event alarms enabled. ALARMPROG = '/usr/informix/etc/alarmprogram.sh' 01:27:19 Booting Language <c> from module <> 01:27:19 Loading Module <CNULL> 01:27:19 Booting Language <builtin> from module <> 01:27:19 Loading Module <BUILTINNULL> 01:27:24 Affinitied VP 9 to phys proc 1 01:27:24 Affinitied VP 10 to phys proc 2 01:27:24 Affinitied VP 11 to phys proc 3 01:27:24 Affinitied VP 12 to phys proc 4 [informix@nsoopsdba101 bin]$ more /proc/meminfo MemTotal: 132112580 kB MemFree: 717000 kB Buffers: 507756 kB Cached: 125512348 kB SwapCached: 5436 kB Active: 2838208 kB Inactive: 123635228 kB Active(anon): 1964768 kB Inactive(anon): 11738920 kB Active(file): 873440 kB Inactive(file): 111896308 kB Unevictable: 40808 kB Mlocked: 0 kB SwapTotal: 8388600 kB SwapFree: 8278236 kB Dirty: 208 kB Writeback: 0 kB AnonPages: 489184 kB Mapped: 13294772 kB Shmem: 13250404 kB Slab: 3531220 kB SReclaimable: 3401480 kB SUnreclaim: 129740 kB KernelStack: 8632 kB PageTables: 284024 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 74444888 kB Committed_AS: 21964384 kB VmallocTotal: 34359738367 kB VmallocUsed: 486592 kB VmallocChunk: 34359089028 kB HardwareCorrupted: 0 kB AnonHugePages: 163840 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 5056 kB DirectMap2M: 2045952 kB DirectMap1G: 132120576 kB On Tue, Mar 10, 2015 at 6:27 AM, Art Kagel <art.kagel@gmail.com> wrote: > The size of a huge page is also listed in /proc/meminfo but it is usually > 2048KB (ie 2MB) > > Art > > Art S. Kagel, President and Principal Consultant > ASK Database Management > www.askdbmgt.com > > Blog: http://informix-myview.blogspot.com/ > > Disclaimer: Please keep in mind that my own opinions are my own opinions > and do not reflect on the IIUG, nor any other organization with which I am > associated either explicitly, implicitly, or by inference. Neither do > those opinions reflect those of other individuals affiliated with any > entity with which I am affiliated nor those of the entities themselves. > > On Mon, Mar 9, 2015 at 10:35 PM, Mike Walker <mike@advancedatatools.com> > wrote: > > > Frank, > > > > If you cat /proc/meminfo, what value do you have for Hugepagesize? > > > > My guess is that Informix is trying to use huge pages, but there Linux > has > > insufficient (or more likely no) large pages configured. > > > > This message isn't an issue unless you want to use huge pages. You can > > enable huge pages with: > > > > sysctl -w vm.nr_hugepages=number_of_pages > > > > I think that the number of pages is usually in units of 4 KB. > > > > Mike > > > > -----Original Message----- > > From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of > > FRANK > > Sent: Monday, March 09, 2015 8:12 PM > > To: ids@iiug.org > > Subject: Insufficient free huge pages [34801] > > > > Hi, Folks. > > > > IDS 12.10 FC4 > > > > Linux ncdopsdba101 2.6.32-358.23.2.el6.x86_64 #1 SMP Sat Sep 14 05:32:37 > > EDT > > 2013 x86_64 x86_64 x86_64 GNU/Linux > > > > See following info in online long. > > > > 01:27:09 Insufficient free huge pages in /proc/meminfo for shared memory > > segment. > > > > Requested: 116813824 bytes. Available: 0 bytes. > > > > The default memory page size will be used. > > 01:27:09 Requested shared memory segment size rounded from 112316KB to > > 114076KB > > 01:27:09 Segment locked: addr=0x44000000, size=116813824 > > > > Tue Mar 10 01:27:11 2015 > > > > 01:27:11 Insufficient free huge pages in /proc/meminfo for shared memory > > segment. > > > > Requested: 9000038400 bytes. Available: 0 bytes. > > > > The default memory page size will be used. > > 01:27:11 Requested shared memory segment size rounded from 8789096KB to > > 8789100KB > > 01:27:11 Segment locked: addr=0x18e7f7000, size=9000038400 > > 01:27:17 Successfully added a bufferpool of page size 2K. > > > > 01:27:17 Insufficient free huge pages in /proc/meminfo for shared memory > > segment. > > > > Requested: 4030197760 bytes. Available: 0 bytes. > > > > The default memory page size will be used. > > > > Any tips/suggestions on this? > > > > Thanks > > Frank > > > > --001a11353fe47b2d0c0510e5ab9b > > > > > > > **************************************************************************** > > *** > > Forum Note: Use "Reply" to post a response in the discussion forum. > > > > > > > > > > ******************************************************************************* > > Forum Note: Use "Reply" to post a response in the discussion forum. > > > > > > --001a1140fa205b7fd70510ec9772 > > > > ******************************************************************************* > Forum Note: Use "Reply" to post a response in the discussion forum. > > --001a11c13e2691f1c80510f1aeba