浏览模式: 普通 | 列表
12月, 2010 | 1 | 2 | >

TIME_WAIT

[ 2010-12-11 20:46:36 | 作者: admin ]
Socket TIME_WAIT 问题

netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'

会得到类似下面的结果,具体数字会有所不同:

LAST_ACK 1
SYN_RECV 14
ESTABLISHED 79
FIN_WAIT1 28
FIN_WAIT2 3
CLOSING 5
TIME_WAIT 1669

状态:描述
CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
...

阅读全文…

网站排障分析常用的命令

[ 2010-12-11 20:29:25 | 作者: admin ]
整理一些常用分析网站的小命令方便大家排障,内容均来源于网络。
如果你是初学者关于AWK应用技巧请参照论坛的脚本编程版块,
如果你是老手,什么好的命令集或者必杀技欢迎跟贴,丰富此贴!
TXT版:http://docs.linuxtone.org/webapp/webscan.txt
系统连接状态篇:
1.查看TCP连接状态
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn

netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}' 或
netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}'
netstat -n ...

阅读全文…

TCP连接图示

[ 2010-12-11 20:15:33 | 作者: admin ]
1.TCP连接的一方A发起终止请求,并更为FIN-WAIT-1状态。
2.另一方B接受请求,并向返回确认,并更为CLOSE_WAIT
3.当A接受到B返回的确认后,状态由FIN-WAIT-1变为FIN-WAIT-2
4.A进入FIN-WAIT-2的定时器,这个时间就是由net.ipv4.tcp_fin_timeout设置的

5.B会再次向A发送终止请求,并变更为LAST-ACT
6.A接受请求,并向B返回确认,变更为TIME-WAIT
7.B接受到A返回的确认后,关闭连接,变更为CLOSED
8.A进入TIME-WAIT的定时器,超时后,连接终止,变更为CLOSED
此时TCP连接正式关闭

attachments/201012/11_201548_1887205682853a0cb478f50719dd5ed2.png
解决思路:

        1、首先要确定系统中文显示是否正常,修改LANG

linux终端tty1-tty6环境是不支持显示中文的,即使你修改LANG为gbk,你看到的还是乱码,除非安装有中文化接口软件
如果是windows主机,通过远程联机软件到服务器端,命令行界面是可以看到中文的,只需设置LANG正确
        2、vim可以将字符配置到~/.vimrc文件中,运行vim的时候会先读取改文件配置,例如:加入

set fileencodings=utf-8,gbk,ucs-bom,cp936

encoding:encoding是Vim的内部使用编码,encoding的设置会影响Vim内部的Buffer、消息文字等。在Unix环境下,encoding的默认设置等于locale;Windows环境下会和当前代码页相同。在中文Windows环境下encoding的默认设置是cp936(GBK)。
...

阅读全文…
经常检查apache的连接数,会发现很多无用的time_wait连接。有人说这是正常的,是因为一个请求中途中断造成的;还有人说微软的IE连接时产生的Time_wait会比用Firefox连接时多。个人认为有一定的Time_wait是正常的,如果超过了连接数的比例就不是很正常,所以还是找来方法解决一下。

先检查一下time wait的值:
[root@aaa1 ~]#sysctl -a | grep time | grep wait
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
...

阅读全文…

nginx 的 tcp_nopush 和 tcp_nodelay

[ 2010-12-11 00:51:15 | 作者: admin ]
TCP_NODELAY 和 TCP_CORK,
这两个选项都对网络连接的行为具有重要的作用。许多UNIX系统都实现了TCP_NODELAY选项,但是,TCP_CORK则是Linux系统所独有的 而且相对较新;它首先在内核版本2.4上得以实现。此外,其他UNIX系统版本也有功能类似的选项,值得注意的是,在某种由BSD派生的系统上的 TCP_NOPUSH选项其实就是TCP_CORK的一部分具体实现。
TCP_NODELAY和TCP_CORK基本上控制了包的“Nagle化”,Nagle化在这里的含义是采用Nagle算法把较小的包组装为更大的帧。 John Nagle是Nagle算法的发明人,后者就是用他的名字来命名的,他在1984年首次用这种方法来尝试解决福特汽车公司的网络拥塞问题(欲了解详情请参 看IETF RFC 896)。他解决的问题就是所谓的silly window syndrome ...

阅读全文…

日志安全与分析

[ 2010-12-11 00:47:46 | 作者: admin ]
日志对于安全来说,非常重要,它记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。日志主要的功能有:审计和监测。他还可以实时的监测系统状态,监测和追踪侵入者等等。正因为如此,抚琴煮酒特的将它整理成一篇比重跟硬件篇、网络篇并列的文章,作为《明明白白你的Linux服务器》系列的第三篇,希望大家能从中学习到对自己有用的东西。
一、配置syslog(gyl4802959同学撰写)
目前,linux依旧使用syslogd作为日志监控进程,对其进行必要的配置能减少很多麻烦,并且可更有效的从系统日志监控到系统的状态。理解并完善一个syslog的配置,对于系统管理员来说显得尤为重要。

/etc/syslog.conf根据如下的格式定义规则: facility.level action

设备.优先级 动作facility.level 字段也被称为sele...

阅读全文…

明明白白你的Linux服务器-硬件篇

[ 2010-12-11 00:41:32 | 作者: admin ]
《明明白白你的Linux服务器》系列的第一篇

一、如何查看服务器的CPU
今天安装了9台Linux服务器,型号完全不一样(有DELL、HP和IBM服务器),又懒得去对清单,如何在Linux下cpu的个数和核数呢?另外,nginx的cpu工作模式也需要确切的知道linux服务器到底有多少个逻辑cpu,不过现在服务器那是相当的彪悍,直接上worker_processes 8吧。
判断依据:
1.具有相同core id的cpu是同一个core的超线程。(Physical id and core id are not necessarily consecutive but they are unique. Any cpu with the same core id are hyperthreads in the same core.)
2.具有相同physical ...

阅读全文…
1 | 2 | >