socket编程(2)——性能测试
一.性能指标
网络的三大指标:带宽、延时、丢包率
-
一个千兆的以太网,tcp带宽理论上是125MB/s,但不算头部只算纯载荷的话,极限在117MB/s,也就是112Mib/s
-
延时的指标有平均延时,长尾延迟
资源使用率指标
-
如果一个程序只能使用某个硬盘的80%的带宽,那么资源使用率可以提高
-
类似的还有cpu使用率,一个程序全力跑如果跑不满cpu,那么资源使用率是可以找到原因的。瓶颈如果在cpu,要不优化程序,要不并行处理
二.带宽测试
使用nc测试本机,全力跑是测试出来的带宽是本机协议栈的性能
使用nc测试两个公网间的机器,全力跑出来是两个机器间的带宽
三.协议栈参数
查看tcp缓冲区大小
$ sysctl -A | grep mem net.ipv4.tcp_mem = 43269 57694 86538 net.ipv4.tcp_rmem = 4096 87380 6291456 net.ipv4.tcp_wmem = 4096 16384 4194304