|
测试环境:
CPU: Intel P4
Mem: 512Mb
/etc/sysctl.conf等配置文件均没有设置任何值
很奇怪的现象,无论是用kernel.org官方的还是Debian的2.6.11kernel,在启动后
/proc/sys/net/ipv4/tcp_max_syn_backlog 的值都是 256,
而在同一台机器上安装2.6.8,2.6.9,2.6.10内核这个值都是 1024
我查看了内核源码 net/ipv4/tcp.c 和 net/ipv4/tcp_ipv4.c 根据文件的描述,当内存 >= 256Mb 的时候,
tcp_max_syn_backlog 将被设置为 1024,但是现在却是 256 (内存为512Mb)
还有一些应该和tcp_max_syn_backlog同时被设置的值有:
ip_local_port_range
tcp_max_tw_buckets
tcp_max_orphans
但是它们都没有被设置为正确的值(可以参考net/ipv4/tcp.c)
看上去 2.6.11没有自动的根据内存大小调整这些值,这是一个Bug 吗?
猜测是不是在2.6.11的net/ipv4/tcp.c当中,采用的一些新机制导致了这个问题?
不知道是怎么回事。
哪位清楚的,请教了,呵呵
谢谢 |
|