Monday 5 August 2013

vmap allocation for size 9146368 failed: use vmalloc= to increase size.


We found following error logs in /var/log/message logfile.

Aug  5 14:30:10 snort kernel: vmap allocation for size 9146368 failed: use vmalloc=<size> to increase size.
Aug  5 14:30:10 snort kernel: vmap allocation for size 9146368 failed: use vmalloc=<size> to increase size.
Aug  5 14:30:10 snort kernel: vmap allocation for size 9146368 failed: use vmalloc=<size> to increase size.
Aug  5 14:30:10 snort kernel: vmap allocation for size 9146368 failed: use vmalloc=<size> to increase size.
Aug  5 14:30:10 snort kernel: vmap allocation for size 9146368 failed: use vmalloc=<size> to increase size.

When we checked vmalloc limit was set to 124 MB. Due to low kernel allocated memory, error was coming.

[root@snort ~]# cat /proc/meminfo | grep -i vmalloc
VmallocTotal:     124144 kB
VmallocUsed:         5536 kB
VmallocChunk:       1156 kB

Solution:

Add vmalloc=256M in /boot/grub/grub.conf file to increase the limit of vmalloc kernel parameter.

[root@snort ~]# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/vg_snort-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-358.14.1.el6.i686)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-358.14.1.el6.i686 ro root=/dev/mapper/vg_snort-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_snort/lv_root rd_NO_MD SYSFONT=latarcyrheb-sun16  KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg_snort/lv_swap rd_NO_DM rhgb quiet crashkernel=auto vmalloc=256M
        initrd /initramfs-2.6.32-358.14.1.el6.i686.img
title CentOS (2.6.32-279.el6.i686)
        root (hd0,0)
#       vmalloc=256MB
        kernel /vmlinuz-2.6.32-279.el6.i686 ro root=/dev/mapper/vg_snort-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_snort/lv_root rd_NO_MD SYSFONT=latarcyrheb-sun16  KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg_snort/lv_swap rd_NO_DM rhgb quiet vmalloc=256M
        initrd /initramfs-2.6.32-279.el6.i686.img


Reboot the system and vmalloc size is increased upto 256MB.

[root@snort ~]# cat /proc/meminfo | grep -i vmall
VmallocTotal:     262144 kB
VmallocUsed:      115536 kB
VmallocChunk:      41156 kB