SHIHUC

好记性不如烂笔头,还可以分享给别人看看! 专注基础算法,互联网架构,人工智能领域的技术实现和应用。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

常用的几个分析问题会用到的指令

Posted on 2018-09-10 19:52  shihuc  阅读(209)  评论(0编辑  收藏  举报

1. 查看tcp连接状态
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

2. 让TIME_WAIT状态可以重用,这样即使TIME_WAIT占满了所有端口,也不会拒绝新的请求造成障碍. tcp_tw_reuse 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭
echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse

3. 让TIME_WAIT尽快回收,我也不知是多久,观察大概是一秒钟. 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭.
echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle

4. 查看系统本地可用端口极限值
cat /proc/sys/net/ipv4/ip_local_port_range

5. 查看timestamps参数是否开启(boolean类型, 默认1,表示开启)
vim /proc/sys/net/ipv4/tcp_timestamps

6. 查看系统控制文件
vi /etc/sysctl.conf

7. 查看影响connect timeout根源的三个参数。默认情况这三个值应该是1,0,0
sysctl -a |grep -E 'timestamp|reuse|recycle'

8. tcpdump指令
sudo tcpdump tcp -vv -i eth1 and src 10.90.9.20

 

这里,有另外一个需要了解的知识点,就是TCP协议的基本三次握手建立连接和四次握手拜拜的逻辑示意图。