[OpenIndiana-discuss] KVM Failed to allocate memory: Resource temporarily unavailable

Jonathan Adams t12nslookup at gmail.com
Thu Dec 10 10:10:01 UTC 2015


If you have the disk space, you might be as well creating a swap size of
memory x 2. Old Solaris used to suggest you set it to memory x 4, but that
was when memory was limited and expensive.

On 10 December 2015 at 10:01, Fucai Liang (BLCT) <fcliang at baolict.com>
wrote:

> Thanks  for your help!
>
> root at oi01:~# swap -sh
> total: 8.1G allocated + 21M reserved = 8.1G used, 16G available
> root at oi01:~#  swap -l
> swapfile             dev    swaplo   blocks     free
> /dev/zvol/dsk/rpool/swap 100,2         8 12574712 12574712
> root at oi01:~#
>
>
> 16G swap , so KVM can locked 16G memory .
>
> thanks again .
>
>
> ------------------------------
> Fucai Liang
>
>
>
>
> On Dec 10, 2015, at 17:24, Jonathan Adams <t12nslookup at gmail.com> wrote:
>
> > how much swap do you have?
> >
> > KVM automatically allocates the same amount of swap as memory when you
> > start an instance, if you don't have the free swap it won't work.
> >
> > Jon
> >
> > On 10 December 2015 at 04:04, Fucai Liang (BLCT) <fcliang at baolict.com>
> > wrote:
> >
> >>
> >>
> >> Hello, guys:
> >>
> >> I has a server running oi_151.1.8, the server have 32G memory .
> >>
> >>
> >> root at oi01:~# prtconf | grep Memory
> >> Memory size: 32760 Megabytes
> >> root at oi01:~# echo "::memstat" | mdb -k
> >> Page Summary                Pages                MB  %Tot
> >> ------------     ----------------  ----------------  ----
> >> Kernel                     451736              1764    5%
> >> ZFS File Data               78429               306    1%
> >> Anon                        19849                77    0%
> >> Exec and libs                 586                 2    0%
> >> Page cache                   2170                 8    0%
> >> Free (cachelist)            10432                40    0%
> >> Free (freelist)           7821076             30551   93%
> >>
> >> Total                     8384278             32751
> >> Physical                  8384277             32751
> >> root at oi01:~#
> >>
> >>
> >> I lauch a KVM  VM  by
> >>
> >>
> >> #!/bin/sh
> >>
> >> qemu-kvm \
> >>        -vnc 0.0.0.0:2 \
> >>        -cpu host \
> >>        -smp 2 \
> >>        -m 8192 \
> >>        -no-hpet \
> >>        -localtime \
> >> -drive file=/dev/zvol/rdsk/rpool/svrinit,if=virtio,index=0 \
> >>        -net nic,vlan=0,name=e1000g0,model=e1000,macaddr=2:8:20:bd:ae:01
> \
> >>        -net
> >> vnic,vlan=0,name=e1000g0,ifname=vnic01,macaddr=2:8:20:bd:ae:01 \
> >>        -vga std \
> >>        -daemonize
> >>
> >>
> >> root at oi01:~# echo "::memstat" | mdb -k
> >> Page Summary                Pages                MB  %Tot
> >> ------------     ----------------  ----------------  ----
> >> Kernel                     461061              1801    5%
> >> ZFS File Data               78446               306    1%
> >> Anon                      2131265              8325   25%
> >> Exec and libs                 918                 3    0%
> >> Page cache                   2255                 8    0%
> >> Free (cachelist)            10015                39    0%
> >> Free (freelist)           5700318             22266   68%
> >>
> >> Total                     8384278             32751
> >> Physical                  8384277             32751
> >> root at oi01:~#
> >>
> >>
> >> then I launch second  KVM VM,
> >>
> >> #!/bin/sh
> >>
> >> qemu-kvm \
> >>        -enable-kvm \
> >>        -vnc 0.0.0.0:3 \
> >>        -cpu host \
> >>        -smp 2 \
> >>        -m 8192 \
> >>        -no-hpet \
> >>        -localtime \
> >> -drive file=/dev/zvol/rdsk/rpool/svr03,if=virtio,index=0 \
> >>        -net nic,vlan=0,name=e1000g0,model=e1000,macaddr=2:8:20:bd:ae:03
> \
> >>        -net
> >> vnic,vlan=0,name=e1000g0,ifname=vnic03,macaddr=2:8:20:bd:ae:03 \
> >>        -vga std \
> >>        -daemonize
> >>
> >>
> >>
> >> I got err message  :
> >> Failed to allocate memory: Resource temporarily unavailable
> >>
> >> -bash: fork: Not enough space
> >>
> >> .
> >>
> >> the same ietmes happen on OmniOS , the following is a OmniOS-discuss
> mail
> >> .
> >>
> >> That caused by availrmem not enough for memory locked .
> >>
> >> Is that mean I can only use about 14G memory for KVM VM in a 32G memory
> >> installed server?
> >> OS can only locked about 14G memory .
> >>
> >> ——————FOLLOWING--------------
> >>
> >> Hello, guys:
> >>
> >> I has a server running OmniOS v11 r151016.  the server have 32G memory .
> >> I star tow kvm virtual machines by running the following commands:
> >>
> >> qemu-system-x86_64 -enable-kvm -vnc 0.0.0.0:12 -cpu host -smp 4 -m 8192
> >> -no-hpe
> >>
> >>
> >> qemu-system-x86_64 -enable-kvm -vnc 0.0.0.0:11 -cpu host -smp 2 -m 4096
> >> -no-hpe
> >>
> >> one use 8G memory and the other one use 4G memory.
> >>
> >> now the memory usage of the system as following:
> >>
> >> root at BLCC01:/root# prtconf | grep Memory
> >> Memory size: 32760 Megabytes
> >> root at BLCC01:/root#  echo "::memstat" | mdb -k
> >> Page Summary                Pages                MB  %Tot
> >> ------------     ----------------  ----------------  ----
> >> Kernel                     549618              2146    7%
> >> ZFS File Data              668992              2613    8%
> >> Anon                      3198732             12495   38%
> >> Exec and libs                1411                 5    0%
> >> Page cache                   4402                17    0%
> >> Free (cachelist)            10578                41    0%
> >> Free (freelist)           3950545             15431   47%
> >>
> >> Total                     8384278             32751
> >> Physical                  8384277             32751
> >> root at BLCC01:/root# swap -sh
> >> total: 12G allocated + 35M reserved = 12G used, 6.8G available
> >> root at BLCC01:/root# swap -l
> >> swapfile             dev    swaplo   blocks     free
> >> /dev/zvol/dsk/rpool/swap 263,2         8  8388600  8388600
> >> root at BLCC01:/root#
> >>
> >>
> >> root at BLCC01:/root# prctl $$
> >>
> >> project.max-locked-memory
> >>      usage           12.0GB
> >>      system          16.0EB    max   deny
> >> -
> >> project.max-port-ids
> >>      privileged      8.19K       -   deny
> >> -
> >>      system          65.5K     max   deny
> >> -
> >> project.max-shm-memory
> >>      privileged      8.00GB      -   deny
> >> -
> >>      system          16.0EB    max   deny
> >> -
> >>
> >>
> >>
> >>
> >>
> >>
> >> #prstat -J
> >>
> >> PROJID    NPROC  SWAP   RSS MEMORY      TIME  CPU PROJECT
> >>   1        5   12G   12G    38%   1:07:23 5.6% user.root
> >>   0       43   72M   76M   0.2%   0:00:59 0.0% system
> >>   3        5 4392K   14M   0.0%   0:00:00 0.0% default
> >>
> >>
> >>
> >> then I start the third vm (4G memory), it got the following error :
> >>
> >>
> >> qemu-system-x86_64 -enable-kvm -vnc 0.0.0.0:2 -cpu host -smp 2 -m 4096
> >> -no-hpet
> >>
> >> qemu_mlock: have only locked 1940582400 of 4294967296 bytes; still
> >> trying...
> >> qemu_mlock: have only locked 1940582400 of 4294967296 bytes; still
> >> trying...
> >> qemu_mlock: have only locked 1940582400 of 4294967296 bytes; still
> >> trying...
> >> qemu_mlock: have only locked 1940582400 of 4294967296 bytes; still
> >> trying...
> >> qemu_mlock: have only locked 1940582400 of 4294967296 bytes; still
> >> trying...
> >> qemu_mlock: have only locked 1940582400 of 4294967296 bytes; still
> trying…
> >>
> >>
> >> I got 15G free memory in the system, why qemu-system-x86_64 can not
> locked
> >> enough memory ?
> >>
> >> Thanks for your help !
> >>
> >> sorry for my poor english !
> >>
> >>
> >>
> >>
> >> -----------------------------------
> >> fcliang
> >>
> >>
> >>
> >> Thank for  your help!
> >>
> >> when the server boot up, it has 7989066 pages  availrmem.  after I
> launch
> >> one VM (8Gmemory),  availrmem decrease to 4756624 .
> >>
> >>
> >>
> >> 7989066-4756624 = 3232442
> >>
> >> 3232442/256 = 12626.7265625 / 1024 = 12.3G
> >>
> >>
> >>
> >> root at BLCC01:/root# mdb -ke 'availrmem/D ; pages_pp_maximum/D'
> >> availrmem:
> >> availrmem:      7989066
> >> pages_pp_maximum:
> >> pages_pp_maximum:               325044
> >>
> >> root at BLCC01:/root# qemu-system-x86_64 -enable-kvm -vnc 0.0.0.0:12 -cpu
> >> host -smp 4 -m 8192 -no-hpe
> >>
> >>
> >>
> >> root at BLCC01:/root# mdb -ke 'availrmem/D ; pages_pp_maximum/D'
> >> availrmem:
> >> availrmem:      4756624
> >> pages_pp_maximum:
> >> pages_pp_maximum:               325044
> >> root at BLCC01:/root#
> >>
> >>
> >> That mean the VM  use 12.3G availrmem , how it happens ?
> >>
> >> Thank !
> >>
> >>
> >>
> >>
> >> ------------------------------
> >> fcliang
> >>
> >>
> >>
> >>
> >> On Dec 2, 2015, at 1:37, Joshua M. Clulow <josh at sysmgr.org> wrote:
> >>
> >>> On 1 December 2015 at 09:11, Dan McDonald <danmcd at omniti.com> wrote:
> >>>>> On Dec 1, 2015, at 12:03 PM, Fucai.Liang <fcliang at baolict.com>
> wrote:
> >>>>> then I start the third vm (4G memory), it got the following error :
> >>>>> qemu-system-x86_64 -enable-kvm -vnc 0.0.0.0:2 -cpu host -smp 2 -m
> >> 4096 -no-hpet
> >>>>>
> >>>>> qemu_mlock: have only locked 1940582400 of 4294967296 bytes; still
> >> trying...
> >>>>> qemu_mlock: have only locked 1940582400 of 4294967296 bytes; still
> >> trying...
> >>>>> qemu_mlock: have only locked 1940582400 of 4294967296 bytes; still
> >> trying...
> >>>>> qemu_mlock: have only locked 1940582400 of 4294967296 bytes; still
> >> trying...
> >>>>> qemu_mlock: have only locked 1940582400 of 4294967296 bytes; still
> >> trying...
> >>>>> qemu_mlock: have only locked 1940582400 of 4294967296 bytes; still
> >> trying…
> >>>>>
> >>>>> I got 15G free memory in the system, why qemu-system-x86_64 can not
> >> locked enough memory ?
> >>>> What does "vmstat 1 5" say prior to your launch of the third VM?
> >>>
> >>> I suspect it will show you have free memory available, but that what
> >>> is really happening is getting here:
> >>>
> >>>
> >>
> https://github.com/illumos/illumos-gate/blob/master/usr/src/uts/common/vm/seg_vn.c#L7989-L8002
> >>>
> >>> This is likely failing in page_pp_lock() because "availrmem" has
> >>> fallen below "pages_pp_maximum":
> >>>
> >>>
> >>
> https://github.com/illumos/illumos-gate/blob/master/usr/src/uts/common/vm/vm_page.c#L3817-L3818
> >>>
> >>> We set this value here, though it can be overridden in "/etc/system":
> >>>
> >>>
> >>
> https://github.com/illumos/illumos-gate/blob/master/usr/src/uts/common/vm/vm_page.c#L423-L436
> >>>
> >>> You can look at the current values with mdb:
> >>>
> >>> mdb -ke 'availrmem/D ; pages_pp_maximum/D'
> >>>
> >>> Increasing this value doesn't seem to be without risk: I believe that
> >>> it can lead to memory exhaustion deadlocks, amongst other things.  I
> >>> don't know if it's expected to be tuneable without a reboot.
> >>>
> >>>
> >>> Cheers.
> >>>
> >>> --
> >>> Joshua M. Clulow
> >>> UNIX Admin/Developer
> >>> http://blog.sysmgr.org
> >>
> >> _______________________________________________
> >> OmniOS-discuss mailing list
> >> OmniOS-discuss at lists.omniti.com
> >> http://lists.omniti.com/mailman/listinfo/omnios-discuss
> >>
> >>
> >>
> >>
> >> ------------------------------
> >> Fucai Liang
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> openindiana-discuss mailing list
> >> openindiana-discuss at openindiana.org
> >> http://openindiana.org/mailman/listinfo/openindiana-discuss
> >>
> > _______________________________________________
> > openindiana-discuss mailing list
> > openindiana-discuss at openindiana.org
> > http://openindiana.org/mailman/listinfo/openindiana-discuss
>
> _______________________________________________
> openindiana-discuss mailing list
> openindiana-discuss at openindiana.org
> http://openindiana.org/mailman/listinfo/openindiana-discuss
>


More information about the openindiana-discuss mailing list