原文地址:http://blog.sina.com.cn/s/blog_5374d6e30101lex3.html
有一个同事找我,他怀疑服务器的http连接过多,造成一些请求丢失,从而丢失了日志,但不知道怎么看,让帮忙确认一下。
下面是可能丢数据包的点:
1、交换机
上连和下连端口的流量跑满或链路有问题,有些数据包会被交换机丢掉,抓对应端口的丢包计数值就可以获得这方面的数据。当然,不会每次都丢建立连接的syn数据包,另外,客户端也重传数据包,所以这一块不一定会导致请求数据的丢失,但可以作为参考。
2、负载均衡设备
这个跟上面的交换机类似,但除了有出错的数据包方面的数据,还有出错的连接方面的数据。抓取方法呢,完全设备相关,不在这里说了。
3、操作系统处理不过来,丢弃数据
这里有两部分,一是网卡见操作系统处理不过来,丢数据包,可以读取下面的文件:
/proc/net/dev
每个网络接口一行统计数据,4列是接收出错的数据包数量,5列是接收不过来丢弃的数量。
第二部分是传统非NAPI接口实现的网卡驱动,每个cpu有一个队列,当在队列中缓存的数据包数量超过netdev_max_backlog(sysctl -w net.core.netdev_max_backlog可以修改)限制时,网卡驱动程序会丢掉数据包,这个见下面的文件:
/proc/net/softnet_stat
每个cpu有一行统计数据,第二列是对应cpu丢弃的数据包数量。
4、应用程序处理不过来,操作系统丢弃
内核中记录了两个计数器:ListenOverflows,ListenDrops
ListenOverflows:对应socket的listen queue已满的情况下,需要新增一个连接时的情况,一般是应用程序处理不过来的情况;
ListenDrops:包含上面的情况,也就是说当出现ListenOverflows时,它也会增加1;除此之外,当内存不够无法为新的连接分配socket相关的数据结构时,也会增加1,当然还有别的异常情况下会增加1。
对应的数据在下面的文件中:
/proc/net/netstat
21列是ListenOverflows值,22列是ListenDrops值。
用下面命令,可以直接显示这两个数:
cat /proc/net/netstat | awk '/TcpExt/ { print $21,$22 }'
如果是netstat命令,则看“times the listen queue of a socket overflowed”, “SYNs to LISTEN sockets ignored”对应行前面的数字。如果没有对应的行,则表明对应的数值为0。如果是0,netstat则不会输出对应的行。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
原文地址:http://blog.chinaunix.net/uid-18963137-id-3427213.html
MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0
查看网络的连接状态常用的文件是/proc/net/snmp及/proc/net/netstat文件,当你打开这两个文件时,你会出现格式比较乱,因为它里面包含的数据比较多,我们一般用以下两个命令来查看相应的网络状态,其命令为:netstat -s和nstat -az
这两个文件中包含的信息较多,这里只简单的写出了几个与三次握手相关的几个参数,并简单地分析了它的含义:
TcpAttemptFails:(连接尝试失败数)
1. 试图和一个不存在的套接口建立连接时,连接失败,而TcpAttemptFails同时会加1
2. 被动连接(SYN_SEND)等待第三次握手的ack应答信号超时或者为其它的错误应答时,连接将会失败,且同时TcpAttemptFails的值将加1。
MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0
TcpExtListenDrops(监听队列连接丢弃数) 和TcpListenOverflows(监听队列连接溢出数):
1. 首先是查看现有的连接数是否大于设置的backlog,如果大于就丢弃,并相应的参数值加1。其中backlog是由程序和系统参数net.core.somaxconn共同设置,当backlog的值大于系统设置的net.core.somaxconn时则取net.core.somaxconn的值,否则取程序设置的backlog值。这种出错的方式也被记录在TcpListenOverflows中(其只记录了连接个数不足而产生溢出错误的次数!)。
2. 接收到连接的应答信号时,但它的源地址和目标不同,或者为空时,这个连接将被丢弃。而TcpListenDrops 值也会加1。
3. 当连接没有问题时,系统将会分配必要的资源,而此时没有足够的资源时则会错,此时的连接也会被丢弃,同时TcpListenDrops 值也会加1。
4. 最后在新建绑定端口的时候如果出现资源的不足时TcpListenDrops 值也会加1。
SyncookiesFailed:
当net.ipv4.tcp_syncookies = 1开启时, SyncookiesFailed是通过tcp_v4_hnd_req调用子函数cookie_v4_check做一系列的合法性校验,主要工作是在半连接队列中看是否存在当前的socket连接,如果不存在则说明这个是错误的应答,其值加1。
相关推荐
【标题】:“丢掉 Postman!我选择了 IDEA REST Client” 【描述】:“IDEA REST Client 成为了替代 Postman 的新选择,它集成了接口调试功能,使得开发者无需切换工具即可进行高效的工作。” 【标签】:...
键盘操作电脑大全,让你丢掉鼠标.doc
同时,它强调了“轻松快捷实现Windows系统的配置”,这可能意味着它提供了一种用户友好的界面,使得非技术背景的用户也能轻松操作。 从标签来看,“网管工具”是核心,这类工具通常包括但不限于网络监控、故障排查...
在请求执行的各个阶段中,任何一个阶段的模块如果对请求体感兴趣或者希望丢掉客户端发过来的请求体,可以分别调用这两个接口来完成。这两个接口是nginx核心提供的处理请求体的标准接口,如果希望配置文件中一些请求...
在现代诗歌的海洋中,《别丢掉》是一颗璀璨的明珠,它由我国现代著名女诗人林徽因所著。这首诗不仅以其独特的艺术韵味和感情表达方式深深吸引了读者,更因其丰富的意象和深层次的寓意引人入胜。本文旨在赏析这首诗,...
键盘操作电脑大全-让你丢掉鼠标.doc
丢掉让战略无法落地的管理模式.pdf
允许用户发现,请求然后连接对等设备的各种方法,定义在WifiP2pManager类中。 允许用户定义收到调用WifiP2pManager类中方法成功或失败的通知的监听器。当用户调用WifiP2pManager类中的方法时,每一个方法都可以收到...
### 丢掉惯性思维:互联网内容能否走小众路线? #### 一、互联网内容生产的现状 随着互联网视频网站在2021年前后的迅速崛起,国内的视频网站创业者们普遍将YouTube作为先驱榜样。起初,他们设想,凭借着中国庞大的...
新教师制度改革后:触碰这些雷区,将丢掉铁饭碗
北师大版六年级品德与社会上册不可丢掉传家宝说说零用钱.ppt
六年级上品德与社会不可丢掉的传家宝|北师大PPT学习教案.pptx
这种比较购物的教育,不仅能够提高学生的生活技能,还能够激发他们的经济意识和价值判断能力。 在“花钱有招”的环节中,通过模拟购物的游戏,学生在实践中学会了比价和购买时机的把握。这种游戏化的教学方式不仅让...
此外,为了保证音乐质量,建议在导入前检查电脑上的音乐文件是否为高清无损格式,这样在手机上播放时能获得更好的听觉体验。 总的来说,百度音乐的WiFi传歌功能极大地简化了音乐同步的过程,使得用户能够在不使用...
六年级品德与社会上册不可丢掉传家宝说说零用钱2北师大版PPT学习教案.pptx
六年级品德与社会上册不可丢掉传家宝说说零用钱2北师大版PPT教案学习.pptx
通过以上特性,IDEA REST Client成为了开发者在进行API调试时的得力助手,尤其对于习惯使用IntelliJ IDEA的用户,它提供了更便捷、高效的接口测试解决方案,使得开发者可以更加专注于代码的编写和项目的整体开发流程...
优化JSON.stringify() 优化JSON.parse()