在FreeBSD下,看到很多apache产生的CLOSE_WAIT状态,这种状态是等待客户端关闭,但是客户端那边并没有正常的关闭,于是留下很多这样的东东,默认情况,FreeBSD应该在3600秒清除掉这些,改成10秒清除。
sysctl -w net.inet.ip.rtexpire=10
sysctl -w net.inet.ip.rtminexpire=10
在FreeBSD下由于系统会纪录曾安装过 ports 的当时所选择的清单选项,因此有时会因为安装时出了问题,或是再一次安装时,就不会出现清单可以选择。如何让清单选项重新出现呢?
make clean
make showconfig # 显示设定的内容
make rmconfig # 清除设定的内容
make config
之前设定 ports 的选项预设会纪录在 /var/db/ports/{ports_name}/options 内容中。如要查看之前 python 有选择的清单选项:
cat /var/db/ports/python/options
在Freebsd 6下安装试用的,简单记录一下过程,首先安装了个jdk1.5,下载了一个diablo-caffe-freebsd6-i386-1.5.0_07-b01.tar.bz2,放在/usr/ports/distfiles目录下,进入/usr/ports/java//diablo-jdk15,执行
make install clean;rehash
安装Tomcat5.5 Continue reading »
导致错误的关键是sysctl.conf文件中net.inet.tcp.minmss的设置。
如果你也遇到了相同的问题,那么在sysctl.conf中不要手工定义net.inet.tcp.minmss的值,让系统自动选择就可以排除问题。
不少地方都建议设置net.inet.tcp.minmss=1460,当时我也是这么设置的,因为只是小部分用户无法访问,所以不容易发现。
mss实际上是tcp报文的payload大小.加上链路层开销,ip报头,tcp报头,加密等.就有可能会大于mtu,而如果数据报df位设置为1时,路由器就会丢弃.否则分片发送.
一般常见于ADSL 线路,ppp包头包尾开销8字节,1500-8=1492为最大mtu,IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes.1492-40=1452字节为最大mss
但有些特殊情况,是由于某些软件的报文加密度不一样,占用字节不一样.就应该适应调节mss或mtu大小.但是具体调节到哪一个范围,和所在的网络环境有关系,我试着设置了几个值都没有解决问题,到最后只有让系统自动根据包选择合适的值,我把默认值net.inet.tcp.mssdflt设置为1460,net.inet.tcp.minmss注释掉,问题解决。
MSS设置不一定大,性能就高的,而是取决与对方的MSS,如果你的大,就以对放的为准。
假如对方最大只提供1400,而你设置最小MSS为1460,你说出问题不?
一般说来修改 net.inet.tcp.mssdflt就行了。 默认使用你设置的,但一些必要的还是让系统去判断。 让系统也支持216的这种小的分片。