#!/bin/bash | |
apt-get update | |
apt-get upgrade -y --show-upgraded | |
apt-get install -y build-essential libncurses5-dev | |
version=$(uname -r | grep -Po "([0-9.]+)" | head -n 1) | |
kernel_version=$(uname -r) | |
wget https://www.kernel.org/pub/linux/kernel/v3.0/linux-$version.tar.gz | |
tar xf linux-$version.tar.gz | |
cd ./linux-$version | |
zcat /proc/config.gz > .config | |
echo "CONFIG_TCP_CONG_BIC=y" >> .config | |
echo "CONFIG_TCP_CONG_WESTWOOD=y" >> .config | |
echo "CONFIG_TCP_CONG_HSTCP=y" >> .config | |
echo "CONFIG_TCP_CONG_HYBLA=y" >> .config | |
echo "CONFIG_TCP_CONG_HTCP=y" >> .config | |
echo "CONFIG_TCP_CONG_VEGAS=y" >> .config | |
echo "CONFIG_TCP_CONG_VENO=y" >> .config | |
echo "CONFIG_TCP_CONG_SCALABLE=y" >> .config | |
echo "CONFIG_TCP_CONG_LP=y" >> .config | |
echo "CONFIG_TCP_CONG_YEAH=y" >> .config | |
echo "CONFIG_TCP_CONG_ILLINOIS=y" >> .config | |
echo "CONFIG_TCP_CONG_ADVANCED=y" >> .config | |
make oldconfig | |
make -j3 | |
mv ./net/ipv4/Makefile ./net/ipv4/Makefile.old | |
cat ./net/ipv4/Makefile.old | grep -Po "CONG_.*" | sed -r "s/CONG_.*?(tcp_[a-z]+\.o)/obj-m += \1/" > ./net/ipv4/Makefile | |
cat>>./net/ipv4/Makefile<<EOF | |
KDIR := /root/linux-$version | |
PWD := \$(shell pwd) | |
default: | |
\$(MAKE) -C \$(KDIR) SUBDIRS=\$(PWD) modules | |
EOF | |
make -j3 modules | |
mkdir -p /lib/modules/$kernel_version/kernel/net/ipv4 | |
cp ./net/ipv4/*.ko /lib/modules/$kernel_version/kernel/net/ipv4 | |
touch /lib/modules/$kernel_version/modules.order | |
touch /lib/modules/$kernel_version/modules.builtin | |
depmod -a | |
cat ./net/ipv4/Makefile.old | grep -Po "CONG_.*" | sed -r "s/CONG_.*?(tcp_[a-z]+)\.o/\/sbin\/modprobe \1/" > /etc/rc.local |
![]() |
1
bellchu 2015-01-24 20:51:42 +08:00 via iPhone ![]() -j3去掉吧 曾经出过问题
|
![]() |
3
bellchu 2015-01-24 21:19:15 +08:00 via iPhone ![]() @javaluo -j3就是同时三个进程一起编译,某些情况下会造成编译失败 对于内核编译 直接make或者用-j1是最保险的
|
![]() |
4
Yamade 2015-01-24 21:36:30 +08:00 ![]() Building modules, stage 2.
MODPOST 14 modules WARNING: net/ipv4/tcp_vegas: 'tcp_vegas_pkts_acked' exported twice. Previous export was in vmlinux WARNING: net/ipv4/tcp_vegas: 'tcp_vegas_init' exported twice. Previous export was in vmlinux WARNING: net/ipv4/tcp_vegas: 'tcp_vegas_cwnd_event' exported twice. Previous export was in vmlinux WARNING: net/ipv4/tcp_vegas: 'tcp_vegas_get_info' exported twice. Previous export was in vmlinux WARNING: net/ipv4/tcp_vegas: 'tcp_vegas_state' exported twice. Previous export was in vmlinux CC net/ipv4/tcp_bic.mod.o CC net/ipv4/tcp_cubic.mod.o CC net/ipv4/tcp_dctcp.mod.o CC net/ipv4/tcp_highspeed.mod.o CC net/ipv4/tcp_htcp.mod.o CC net/ipv4/tcp_hybla.mod.o CC net/ipv4/tcp_illinois.mod.o CC net/ipv4/tcp_lp.mod.o CC net/ipv4/tcp_scalable.mod.o CC net/ipv4/tcp_vegas.mod.o CC net/ipv4/tcp_veno.mod.o CC net/ipv4/tcp_westwood.mod.o CC net/ipv4/tcp_yeah.mod.o LD [M] net/ipv4/tcp_bic.ko LD [M] net/ipv4/tcp_cubic.ko LD [M] net/ipv4/tcp_dctcp.ko LD [M] net/ipv4/tcp_highspeed.ko LD [M] net/ipv4/tcp_htcp.ko LD [M] net/ipv4/tcp_hybla.ko LD [M] net/ipv4/tcp_illinois.ko LD [M] net/ipv4/tcp_lp.ko LD [M] net/ipv4/tcp_scalable.ko LD [M] net/ipv4/tcp_vegas.ko LD [M] net/ipv4/tcp_veno.ko LD [M] net/ipv4/tcp_westwood.ko LD [M] net/ipv4/tcp_yeah.ko |
![]() |
8
mhycy OP 感谢
|
9
zxtasa 2015-01-25 00:27:20 +08:00
楼主能否科普一下这几种算法的特点呢
|
![]() |
10
mhycy OP |
![]() |
11
msg7086 2015-01-25 11:32:46 +08:00 ![]() 另外如果打算在linode上编译内核的话……
请手下留情给你们的邻居留点CPU资源。 编译一次内核大概半个小时满载CPU。 |
![]() |
14
mhycy OP @msg7086 这事底层虚拟机系统能协调好的,更别说VPS本来的用途就是Web方向,数据库之类的高CPU高IO应用少不了
|
![]() |
15
mhycy OP @msg7086
E5平台50个虚拟机这个估计太乐观了,E5支持双路系统,且最大单U 768G内存,就是整个系统满配1.5T内存....而乞丐版是1G内存.... |
![]() |
16
msg7086 2015-01-25 13:03:48 +08:00
@mhycy 我说的数字是基于之前母机故障以后将小鸡迁移至其他服务器时的队列长度而猜测的。
具体数字不记得了但是应该是50以上100以下。 另外Web/数据库若是本身能吃满Linode的CPU的话,流量要非常大了,或者就是程序写得太烂了→_→。 |
![]() |
17
msg7086 2015-01-25 13:05:04 +08:00
总之我是宁愿用原厂的内核配合模块来跑。
自己编译的话以后还要经常维护升级,好麻烦的。 |