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

Fucai Liang (BLCT) fcliang at baolict.com
Thu Dec 10 10:01:37 UTC 2015


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



More information about the openindiana-discuss mailing list