少数情况下我们需要定制内核,比如: lvs的hash表大小默认才4096,必须重译内核来修改。
sudo ipvsadm -L IP Virtual Server version 1.2.1 (size=4096)
Debian 提供了 kernel-package 工具来自动完成内核打包的全过程。
sudo aptitude -y install fakeroot kernel-package linux-source-3.16 # libncurses5-dev
下载源码包,并使用当前机器的配置进行修改、编译。就这么简单:
tar -xvf /usr/src/linux-source-3.16.tar.xzsed 's/CONFIG_IP_VS_TAB_BITS=12/CONFIG_IP_VS_TAB_BITS=20/g' /boot/config-$(uname -r) > ~/linux-source-3.16/.configcd ~/linux-source-3.16/ fakeroot make-kpkg --initrd --revision=1.0.ipvs kernel_image
安装完成重启后在系统日志里能看到配置后的结果:
file ~/linux-image-3.16.7-ckt11_1.0.ipvs_amd64.deb dmesg |grep IPVS sudo dpkg -i ~/linux-image-3.16.7-ckt11_1.0.ipvs_amd64.deb dmesg # IPVS: Connection hash table configured (size=1048576, memory=16384Kbytes)
本例中笔者将hash表改为100万,用淘宝内核可以看到他们用的400万。
ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4194304)
本文经过作者授权,来自博客:
http://my.oschina.net/anglix/blog/