The Aerospike Knowledge Base has moved to https://support.aerospike.com. Content on https://discuss.aerospike.com is being migrated to either https://support.aerospike.com or https://docs.aerospike.com. Maintenance on articles stored in this repository ceased on December 31st 2022 and this article may be stale. If you have any questions, please do not hesitate to raise a case via https://support.aerospike.com.
vmxnet3 page allocation failure
Context
You may see the client receive the following error: Bad file descriptor
, corresponding to the following in the dmesg output:
swapper: page allocation failure. order:0, mode:0x20
Pid: 0, comm: swapper Not tainted 2.6.32-696.16.1.el6.x86_64 #1
Call Trace:
<IRQ> [<ffffffff8113e76c>] ? __alloc_pages_nodemask+0x7dc/0x950
[<ffffffff814b7098>] ? ip_local_deliver+0x98/0xa0
[<ffffffff814b6a00>] ? ip_rcv+0x190/0x350
[<ffffffff81177ada>] ? alloc_pages_current+0xaa/0x110
[<ffffffffa01785b9>] ? vmxnet3_rq_rx_complete+0x5d9/0xdf0 [vmxnet3]
[<ffffffff8147856c>] ? __napi_complete+0x1c/0x30
[<ffffffffa0178f43>] ? vmxnet3_poll_rx_only+0x43/0xb0 [vmxnet3]
[<ffffffff81480fb3>] ? net_rx_action+0x103/0x300
[<ffffffff810aaf23>] ? hrtimer_get_next_event+0xc3/0x100
[<ffffffff81085335>] ? __do_softirq+0xe5/0x230
[<ffffffffa0175c61>] ? vmxnet3_msix_rx+0x31/0x60 [vmxnet3]
[<ffffffff8100c38c>] ? call_softirq+0x1c/0x30
[<ffffffff8100fc95>] ? do_softirq+0x65/0xa0
[<ffffffff810851c5>] ? irq_exit+0x85/0x90
[<ffffffff81554cb5>] ? do_IRQ+0x75/0xf0
[<ffffffff8100ba53>] ? ret_from_intr+0x0/0x11
<EOI> [<ffffffff81046016>] ? native_safe_halt+0x6/0x10
[<ffffffff81016a0d>] ? default_idle+0x4d/0xb0
[<ffffffff81009fe6>] ? cpu_idle+0xb6/0x110
[<ffffffff81543fb9>] ? start_secondary+0x2c0/0x316
If you see vmxnet3
crash in that alloc_pages_nodemask
with page allocation failure
, follow the article below.
Solution
Following the article min_free_kbytes allows to configure kernel parameters to give enough free RAM for the vmxnet3 driver.
You should give at least 1.1GiB RAM for the min_free_kbytes
and swappiness
of 0 to disable unnecessary swappiness. For example:
To make the change live and clear the currently cached memory:
echo 3 > /proc/sys/vm/drop_caches
echo 1153434 > /proc/sys/vm/min_free_kbytes
echo 0 > /proc/sys/vm/swappiness
To make the changes permanent, edit /etc/sysctl.conf and change/add the following parameters:
vm.min_free_kbytes = 1153434
vm.swappiness = 0
Keywords
vmxnet3 alloc_pages_nodemask page allocation failure alloc_pages_current
Timestamp
11/13/2018