<<MpeMi
d[3me{Rs
d|NW&PG
今天发现网站特别卡!! 0@zJa;z'
LQPQ !):;
x7zc3%T's
查看网络连接数: 1 gjaTPwY
9S]pC?N]E
LvG$J*
netstat -an |wc -l iw,uwh|L
,Lp"Ia
(]'wQ4iQ
netstat -an |grep xx |wc -l 查看某个/特定ip的连接数 !ZUUn*e{5
$EFS_*<X
I20~bW
netstat -an |grep TIME_WAIT|wc -l 查看连接数等待time_wait状态连接数 @QmN= X5
:.g/=Q(T~
qLLrR,:
netstat -an |grep ESTABLISHED |wc -l 查看建立稳定连接数量 d {U%q
d
; j.d
akbB=:M,x
_@B?
KU$,{Sn6@
Nxe1^F33
查看不同状态的连接数数量 Cty{
:&
Dv!z
p}pRf@(`\
[root@cp-nginx ~]# netstat -an | awk '/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]}' > .NLmzUX
A-4;$
QSm
((]i}s0S
LISTEN 8 P,] ./m\J
5?H8?~&dz
*ilh/Hd>
ESTABLISHED 2400 5T.U=_ag
!o`7$`%Wz\
nyPeN?-
FIN_WAIT1 2 H'#06zP>5
grE(8M
rtAPkXJFM
TIME_WAIT 6000 RYCiO,+
=cV|o]
u3qxG3
RN 4?]8
AR( gI]1
t<fah 3hl
查看每个ip跟服务器建立的连接数 s?;8h &]=
DqWy@7
a
_D}3``
[root@cp-nginx ~]# netstat -nat|awk '{print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn ^BLO}9A{P
) ??N]V_U
D+:s{IcL<
31 45.116.147.178 wi+Qlf
b?OA |JqX
\&+Y;:6
20 45.116.147.186 &4evh<z
I)1ih
_+9i
12 23.234.45.34 -h7ssf'u[
#tA9`!
i|z=WnF$&
11 103.56.195.17 m-4#s
,w6?Ap
Sak^J.~G[
(PS:正则解析:显示第5列,-F : 以:分割,显示列,sort 排序,uniq -c统计排序过程中的重复行,sort -rn 按纯数字进行逆序排序) /9kxDbj
]tu
OWR
Q 8Ek}O\MC
Z*w({k7]
\?v&JmEU
9;XbyA]
查看每个ip建立的ESTABLISHED/TIME_OUT状态的连接数 XGR63hXND
16eP7s
<<S4l~"o
[root@cp-nginx ~]# netstat -nat|grep ESTABLISHED|awk '{print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn ='D%c^;O8'
>CKa?N;
9$v\D3<Z
24 103.56.195.17 =.S2gO >
wT+60X'
wH@<0lw`<
19 45.116.147.186 Ke@Bf
qDswFs(
_6.@^\;
18 103.56.195.18 O<!^^7/h0
P[H`]q|
</<z7V,{
17 45.116.147.178 fU.hb%m)Q\
G2[2y-Rv
$(J)F-DB i
i-0AcN./p
tMf5TiWu@
-, =)O
ZKI` ;
xop\W4s_
3 5-FD{
解决time_wait连接数大量问题 <0`"vPU
t@cBuV`9c
\hzx?
查询到time_wait连接数过多情况下,调整内核参数:/etc/sysctl.conf #lVSQZO~a
1d.>?^uE
; zy;M5l5.
vim /etc/sysctl.conf dj0Du^v4
'?fn} V
A@k=Mk
10/3 -)+
?~Vev D
}% |GV
添加以下配置文件: ~u-`L+G"6
U`'w{~"D%
b}q,cm
net.ipv4.tcp_syncookies = 1 z<P#djx
net.ipv4.tcp_tw_reuse = 1 Y!s/uvRI
net.ipv4.tcp_tw_recycle = 1 5O%}.}n
net.ipv4.tcp_fin_timeout = 300 EA>$t\z
')FNudsC
E3KPJ`=!*"
aH$*Ue@Q
,|c_l)
wy&*6>.
/sbin/sysctl -p 让参数生效,调优完成 Pr/&p0@aV
1Q;`<=
rC*n Z*
)*JTxMQ
Ua3ERBX{
p]g/iLDZ
参数详解: lJ,s}l7
p.IfJ|
C]XDDr
1.net.ipv4.tcp_syncookies = 1 表示开启 syn cookies 。当出现 syn 等待队列溢出时,启用 cookies 来处理,可防范少量 syn ***,默认为 0 ,表示关闭; wIiT
:o
DpR%s",Q
eK@Y] !lz
2.net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将 time-wait sockets 重新用于新的 tcp 连接,默认为 0 ,表示关闭; )G|UB8]
3.net.ipv4.tcp_tw_recycle = 1 表示开启 tcp 连接中 time-wait sockets 的快速回收,默认为 0 ,表示关闭。 u@3w$"Pv1
4.net.ipv4.tcp_fin_timeout 修改系靳默认的 timeout 时间 j)5Vv
K\
EkBM>*W
Z~g qTB]H
oAx0$]+%V)
N!3f1d7RQ
h^)2:0#{I
经过上面的设置后,发现网站time_wait连接数慢慢减少,网站速度也快多了! I|:j~EY
re*/JkDq3K
^pP
14y*go
如果以上配置调优后性能还不理想,可继续修改一下配置: 73.b9mF
U8mu<)
A0ToX) |C
vi /etc/sysctl.conf >vU
Hf`4T
GdU
W$.
Vmc)or*#
net.ipv4.tcp_keepalive_time = 1200 #表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。 -Me\nu8(RF
~e<<aTwN
"q.uiz+1:
net.ipv4.ip_local_port_range = 1024 65000 #表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。 hz%IxI9
;GSJnV
UJ[a&b
net.ipv4.tcp_max_syn_backlog = 8192 #表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。 /(aX>_7jg
$ Zr,-
z
sPuLn9G
net.ipv4.tcp_max_tw_buckets = 5000 #表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。 rYQ@"o0/Y
默认为180000,改为5000。 l0{DnQA>I
对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于 Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。