我们正在使用debian系统,并试图根据我们的需要调整tcp / ip堆栈。 我们都知道你可以用一些内核参数来设置最大的tcp缓冲区大小:
net.ipv4.tcp_wmem = 4096 16384 4194304 net.ipv4.udp_wmem_min = 4096 net.core.wmem_max = 261071
为了计算你需要的最大缓冲区大小,你只需要计算它。 (见http://fasterdata.es.net/TCP-tuning/ )
但是因为我们不知道用户的往返时间,所以相当困难。 假设20到60毫秒之间可能是可以的。 但是对于一个移动networking来说,就像100-300毫秒(用我的手机testing)。 所以很难知道有多less数据可能是“上线”的。
我们希望看到实际的缓冲区大小和利用率。
有谁知道如何进入实际的TCP写入和接收缓冲区?
但是,因为我们不知道用户的往返时间
那么试图衡量另一部分等式又有什么意义呢?
(阅读lsof的手册页(-T标志)也netstat)。
但相信我,TCP系统是非常聪明的 – 编写它的人比你和我都更聪明 – 而且对这个东西了解得更多。 唯一需要关注的是窗口缩放 (这些日子应该默认是禁用的),但是除非你在非常高速的WAN上传输非常大的文件,否则你可能不需要它 – 如果文件不是很大,或者带宽很低,那么使用默认比例就没有什么好处了。
正如他们所说,做这样的事情是没用的。 如果你有一个有固定stream量的有线networking,可能是有用的 ,但即使这样,它也没有build议。 你可以做的是定义另一个TCP实现 (拉斯维加斯,塔霍,里诺等是一些实现)。
他们每个人都专注于改进TCP的某些方面。 例如,一个正在尝试改善延迟,另一个尝试导入抖动等。