linux性能系列--网络
一、为啥网络监控不好做
?

二、网卡带宽对压力测试有什么影响
?
回答:对于压力较大,或者数据流量较大的服务,比如空间图片服务,可能会出现由于网卡跑满,而压力上不去的现象,此时机器负载较为正常,但压力上不去。这对于测试环境,这是一个比较容易的现象。 比如 zjm机房的出口是百兆的,很容易压满。此时需要根据情况,将压力分布开。
当然也有一些模块,网卡本身就是瓶颈。了解网卡带宽对压力的影响,也有助于在分析时得出正确的判断。
三、timewait 对服务极限压力有何影响
?
回答:对于常见的CS关系的网络交互服务,当client 主动close,会进入timewait 状态,但此时socket 仍然被占用,无法回收,这一请情况可能会影响 短链接的并发压力,因为大量的socket处于timewait 状态会使client 句柄耗尽。 一般情况,短连接压倒 400~500 就已经不稳定了。
缓解这一问题的,一般而言,有下面四种:
1. 逻辑实现上,尽量 server 端主动关闭。
2. 设置 SO_LINGER close.
这是一种不太体面的做法, 因为它触发的不是一个正常的结束。并且抹杀了TIME_WAIT 状态存在的意义: 网络上可能还有数据在传送,若此socket的 替身出现,会收不到该收的包。
3. 打开端口复用和快速回收
4. 修改系统timewait 时间,上面三个是应用层的方法,这是一个需要修改系统kernel的方法。
四、netstat是常用工具之一
如果你需要了解网络信息,那应该对它非常熟悉。它可以显示许多网络相关信息如套接字使用情况、路由、接口、协议、网络数据统计等。下面是以下基本的选项:
-r :显示路由信息
-i :显示网络接口信息
-s :显示网络协议信息
五、其他工具
1)ifconfig:可设置网络设备的状态,或是显示目前的设置。
2)Ethtool是用于查询及设置网卡参数的命令,需要管理员的权限。
概要:
ethtool ethX //查询ethX网口基本设置
ethtool –h //显示ethtool的命令帮助(help)
ethtool –i ethX //查询ethX网口的相关信息
ethtool –d ethX //查询ethX网口注册性信息
ethtool –r ethX //重置ethX网口到自适应模式
ethtool –S ethX //查询ethX网口收发包统计
ethtool –s ethX [speed 10|100|1000]\ //设置网口速率10/100/1000M
[duplex half|full]\ //设置网口半/全双工
[autoneg on|off]\ //设置网口是否自协商
[port tp|aui|bnc|mii]\ //设置网口类型
[phyad N]\
[xcvr internal|exteral]\
[wol p|u|m|b|a|g|s|d...]\
[sopass xx:yy:zz:aa:bb:cc]\
[msglvl N]
iptraf为我们提供如下信息:
IP traffic monitor: TCP连接的网络流量统计信息
General interface statistics: 网络接口的IP流量统计信息
Detailed interface statistics: 按协议分类显示网络流量统计信息
Statistical breakdowns: 按TCP/UDP和封包大小分类显示网络流量统计信息
LAN station monitor: 按第二层地址分类显示网络流量统计信息
六、网络性能指标
- Packets received and sent - 已接收和已发送的数据包数
Packets received and sent描述特定网卡已接收和已发送的数据包数。 - Bytes received and sent - 已接收和已发送的字节
Bytes received and sent描述特定网卡已接收和已发送的字节数。 - Collisions per second - 每秒钟冲突数
Collisions per second描述指定网卡上每秒发生的网络冲突数量。如果持续出现冲突值表示网络基础架构存在性能瓶颈,而并非服务器。在大多数正常配置的网络中,冲突是非常罕见的,除非是由hub组成的网络基础架构。 - Packets dropped - 丢弃的数据包数
Packets dropped描述被内核丢弃的数据包数,出现丢包的原因可能是防火墙配置有误或者网络缓存不够。 - Overruns – 溢出次数
Overruns描述网络接口缓存空间溢出的次数。Overruns指标与Packets dropped指标联合查看可以推断出性能瓶颈是在网络缓冲还是网络队列长度中。 - Errors - 错误
Errors描述被标示为错误的帧数量。引起Error的原因通常是网络不匹配或部分网络电缆损坏。部分网络电缆损坏是基于铜线的千兆网主要的性能瓶颈。
七、其他资料
linux性能系列--网络的更多相关文章
- linux性能系列--块设备
一.啥是块设备呢? 回答:I/O设备大致分为两类:块设备和字符设备.块设备将信息存储在固定大小的块中,每个块都有自己的地址.数据块的大小通常在512字节到32768字节之间.块设备的基本特征是每个块都 ...
- linux性能系列--内存
一.啥是内存呢? 回答:内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁.计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大. 内存(Memory)也被称为内存储器, ...
- linux性能系列--cpu
一.先看看什么是CPU? 回答:中央处理器(Central Processing Unit)的缩写,即CPU,CPU是电脑中的核心配件,只有火柴盒那么大,几十张纸那么厚,但它却是一台计算机的运算核心和 ...
- 一文掌握 Linux 性能分析之网络篇(续)
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 这是 Linu ...
- 一文掌握 Linux 性能分析之网络篇
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 这是 Linu ...
- 【转】一文掌握 Linux 性能分析之网络篇(续)
[转]一文掌握 Linux 性能分析之网络篇(续) 在上篇网络篇中,我们已经介绍了几个 Linux 网络方向的性能分析工具,本文再补充几个.总结下来,余下的工具包括但不限于以下几个: sar:统计信息 ...
- 【转】一文掌握 Linux 性能分析之网络篇
[转]一文掌握 Linux 性能分析之网络篇 比较宽泛地讲,网络方向的性能分析既包括主机测的网络配置查看.监控,又包括网络链路上的包转发时延.吞吐量.带宽等指标分析.包括但不限于以下分析工具: pin ...
- 《linux性能及调优指南》 3.5 网络瓶颈
3.5 Network bottlenecks A performance problem in the network subsystem can be the cause of many prob ...
- Linux性能监控工具sysstat系列简介
简介 sysstat提供了Linux性能监控的工具集,包括sar.sadf.mpstat.iostat.pidstat等,这些工具可以监控系统性能和使用情况.各工具的作用如下: iostat - 提供 ...
随机推荐
- SQL Server 获取(本周、本月、本旬、本季、本年)的某一天
/*------------------------------本周----------------------------------------*/ --本周第一天 ),getdate()) -- ...
- 使用IndexOf方法来判断“咳嗽”出现的次数及索引、使用Dictionary<key,value> 集合统计没个字符出现的次数
static void Main(string[] args) { #region string str = "患者:医生我咳嗽的很严重,大夫:你多大年纪了? 患者:我75岁 大夫:那二十岁 ...
- 用户IP地址的三个属性的区别(HTTP_X_FORWARDED_FOR,HTTP_VIA,REM_addr)
一.没有使用代理服务器的情况: REMOTE_ADDR = 您的 IP HTTP_VIA = 没数值或不显示 HTTP_X_FORWARDED_FOR = 没数值或不显示 二.使用 ...
- asp,对待绑定数据加序号列(DataSet)
string sql_sel = "select InS.ID as isID, InS.InventorySize , InS.MinValue,InS.MaxValue from Inv ...
- MongoTemplate基本操作
本文基于spring boot项目,快速构建项目请参考:https://www.cnblogs.com/lay2017/p/8836273.html 添加mongo依赖 <dependency& ...
- java自学-编程入门
java语言写的代码需要先编译为可执行文件,才能被jvm执行.在下载的jdk安装目录下的bin目录,有两个可执行程序java.exe和javac.exe,javac就是用来编译的,java是执行编译后 ...
- 撩课-每天刷Web面试题(前10天汇总)-Day12
一.算法题部分 1. 如何获取浏览器URL中查询字符串中的参数 function getParamsWithUrl(url) { var args = url.split('?'); ] === ur ...
- k:特殊的线性表—栈
栈(Stack): 栈是一种特殊的线性表,栈中的数据元素以及数据元素之间的逻辑关系和线性表相同,两者之间的差别在于:线性表的插入和删除操作可以在表的任意位置进行,而栈的插入和删除操作只允许在表的尾端 ...
- webpack-bundle.js原理
bundle.js 源码 //a.js import { log } from './b.js' log('hello') //b.js export const log = function (m) ...
- [POI2005]AUT-The Bus
树状数组维护前缀最大值+扫描线DP #include"cstdio" #include"cstring" #include"iostream" ...