- 少数情况下我们需要定制内核,比如: 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.xz
sed 's/CONFIG_IP_VS_TAB_BITS=12/CONFIG_IP_VS_TAB_BITS=20/g' /boot/config-$(uname -r) > ~/linux-source-3.16/.config
cd ~/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)