【运维基本功】centos6.5下巧用netstat命令的参数分析TCP连接与关闭过程,图文详解

前言


使用centos6.5系统自带的 netstat,grep,watch等命令,来分析网络连接状态,要求对 TCP 有限状态机的概念有较深入的理解。

同时,这也是除了使用强大的专业第三方协议分析器,如 wireshark 以外,最有效的办法。

写本博文的目的其中之一就是要告诉大家,不使用 wireshark 等第三方工具,自己也能做到一定粒度的网络连接,状态分析,调试等等。

用到的命令总结如下:

watch -n 1 -d ‘netstat -antupeo | grep --color 8.8.8.8‘
watch -n 1 -d ‘netstat -antupeo | grep --color SYN_SENT‘
watch -n 1 -d ‘netstat -antupeo | grep --color TIME_WAIT‘
watch -n 1 -d ‘netstat -antupeo | grep --color ESTABLISHED‘

watch -n 1 -d ‘netstat -antupeo | grep --color FIN_WAIT1‘

补充说明:关于 TIME_WAIT

前面我们提到过,在客户端启动一个长达60秒的 TIME_WAIT计时器,并不会有什么问题;但是如果在一个高并发访问,高负载的服务器上,这就会引发明显的性能问题。

原因在于,在服务器端,每个处于 TCP TIME_WAIT 状态的 UNIX 域套接字(假设服务器端操作系统是 linux,一种 UNIX 的变体)都要占用一个 TCP端口,这些可用的端口数量非常有限。

一般只有从1024开始到65535结束的这6万多个端口。

现在假设第一批属于6万个不同源 IP的 TCP 连接到达服务器,而 web 服务器在最短时间返回带 connection: close 响应头的 HTTP 响应并启动60秒的 TIME_WAIT计时器,这意味着在60秒内,这6万多个端口将不可重用。而假设在这期间又有第二批数万个不同源 IP 的 TCP 连接到达,很明显,此时服务器将无法分配任何可用端口资源来处理这些连接,从而不得不等待60秒才能释放被占用的端口资源。

我们可以认为,在这段时间内,该服务器的可用性与并发能力显得很低下。

不要以为这个描述的场景不会出现。实际上,对于一些大型互联网公司维护的入口网站而言在,在某一时刻经常会遇到连续数万,甚至数十万峰值的并发访问流量。而且这里还没有考虑到遭受分布式拒绝服务攻击(DDOS)的情况。

或许是有鉴于此,linux 内核就提供几个参数,配置项,用以调优 TCP/ IP 协议堆栈的性能,包括:

限制处于 TIME_WAIT 状态的端口总数阀值,一旦超过即刻清零

TIME_WAIT 状态端口重用,快速回收

增加可打开的套接字描述符(文件描述符的一种)上限

用于在一定程度上缓解DDOS攻击的 TCP SYN cookie 技术

因此,从这些意义上而言, linux 确实比 windows 更适合作为大型站点的底层服务器操作系统。

【运维基本功】centos6.5下巧用netstat命令的参数分析TCP连接与关闭过程,图文详解,布布扣,bubuko.com

时间: 2024-12-28 05:37:55

【运维基本功】centos6.5下巧用netstat命令的参数分析TCP连接与关闭过程,图文详解的相关文章

ops-web运维平台-create.jsp-mootools下拉框-复选框

create.jsp页面的,body部分 <body onload="Page.init('${pageError}','${pageMessage}',${isSubmit},true)"> <div id="title">${pageTitle}</div> <s:form id="MYFORM" action="%{pageAction}" method="post&q

Linux运维之路 基础篇:Linux基础命令(一)

Linux运维之路 基础篇:Linux基础命令(一) Linux哲学宗旨: 一切皆文件:把几乎所有的资源,包括硬件设备都组织为文件 有众多单一的小程序组成,一个程序制实现一个功能,组成小程序完成复杂操作 尽量避免和用户交互:实现脚本编程,以自动完成某些功能 使用纯文本文件保存配置信息 终端:用户和主机交互时用到的设备 物理终端:直接接入的设备也叫控制台/dev/console 虚拟终端:附加在物理终端上虚拟出的,默认启动六个,Ctrl+Alt(F1~F6),系统启动时,默认启动虚拟终端1,启动终

虚拟机VMware下CentOS6.6安装教程图文详解

分享下,虚拟机VMware下CentOS6.6安装教程图文详解. CentOS 6.6 发布下载 地址: http://www.linuxidc.com/Linux/2014-10/108554.htm 1.首先要下载一个centos的iso镜像,我是用虚拟机VMware来安装的,用VMware最好创建一个空白硬盘. 2.创建完毕再设置里面挂载iso的centos系统文件. 3.进入到这个页面: 说明: 1.install or upgrade an existing system安装或升级现有

CentOS6启动过程超详解分析

CentOS 6 开机流程--linux由kernel和rootfs组成.kernel负责进程管理.内存管理.网络管理.驱动程序.文件系统.安全等;rootfs由程序和glibc组成,完善操作系统的功能.同时linux内核的特点是模块化,通过对模块装载卸载可以对内核功能自定义.linux内核文件:/boot/vmlinuz-2.6.32-696.el6.x86_64 整体的流程 BIOS/开机自检 MBR引导(Boot Loader) 启动内核 启动第一个进程init 一.BIOS/开机自检 1

Windows环境下,用netstat命令查看某个端口号是否占用

目标:在Windows环境下,用netstat命令查看某个端口号是否占用,为哪个进程所占用. 操作:操作分为两步:(1)查看该端口被那个PID所占用;方法一:有针对性的查看端口,使用命令 Netstat –ano|findstr "<端口号>",如图,最后一列为PID.图中的端口号为1068,所对应的PID为3840. (a)图 方法二:查看所有的,然后找到对应的端口和PID. (b)图 第一幅图中的5列就是上面(a)图对应的5列 (2)查看该PID对应的进程名称. 方法一

[运维-服务器 – 2A] – nginx下绑定域名

这个篇文章今天(2016-01-21)才有幸写了,因为自己对nginx部署以前没玩过,还得感谢下我们数字化的总经理.在这里记录下自己成长的经验,与遇到的问题. 因为自己的域名是在万网上买的,解析无法直接解析到子目录,所以必须改server配置. 首先说下自己的wordpress是怎么部署的,自己的ip直接映射到时www目录,wordpress目录是在www下面,所以自己的域名得 先用这个即homily.cn绑定到我自己的ip的root下(www目录),然后在用这个,显性URL 一直用这个,中间花

linux运维技术(查看linux服务器状态常用命令)

最近发现大数据技术的一些部署,高可用,集群等和网站的负载均衡,自动化运维,灾备等其实有很多知识都是重合的,要学好linux运维相关,在大数据的研究上也会有所提高.既然工作需要去系统的去学习linux运维的技术,那就去好好的去学习它~~,况且我还很喜欢捣鼓这个. :) 先总结了解一台服务器状态的常用命令的总结:(以下是两台服务器测试的结果) (1)查看linux版本: [[email protected] home]# lsb_release -a LSB Version: :core-4.1-a

网站运维技术与实践之服务器监测常用命令

一.监测的意义 不论是网站运维还是系统管理,服务器本身的运行状况都是我们需要掌控的基础资料.在<打造FaceBook>一书中,王淮介绍FaceBook的工程师文化中有一句"Move Fast and Monitor Closely".这个"Closely"有两层意义,其一是"即时"的,要从系统开发初期,就有意识地设计好配套的监测,并逐步改善:其二是"深入",监控不能仅仅停留在监测主机负载.网卡流量的表面层次,而要尽

Centos6.5下使用tcpdump抓包并用wireshark分析

前言 原创文章欢迎转载,请保留出处. 若有任何疑问建议,欢迎回复. 邮箱:[email protected] 在Centos6.5下通过使用tcpdump抓包和wireshark分析包,初步了解抓包和解包 安装 首先我们要安装tcpdump,必须的库: yum install flex yum install bison yum install gcc 另外tcpdump是基于libpcap,这个在yum找不到,我们到tcpdump的官网(http://www.tcpdump.org/#late