一个简单的科普-延迟与RT时间
一个简单的科普-延迟与RT时间
背景
发现稍微一复杂就没人看.
这次像是写一个简单的科普文章.
主要说一下网络延迟还有网络的响应时间.
这里想通过一个题目进行引申.
如果Skylink全球商用:
中国与美国之间的网络是走海底光纤延迟低,还是走skylink延迟低?
关于时延的理解
我认为: 走skylink的网络延迟低.
原因:
海底光纤的走的是玻璃介质的光信号. 玻璃的反射率一般是1.5
那么光速就是真空光速的三分之二. 也就是20万公里秒.
skylink走的是太空路线. 他的总链路理论上会多一些
上下线的 500km 累计1000公里的链路.
地球半径是 6400公里,中美之间的举例应该是 pi*radius
也就是 20096公里.
其实光纤的举例肯定比20000公里要长,因为没有光纤是走之下的.
但是简单估算按照 最短路径来估算的的话就是
20000公里.
因为走太空理论上半径应该按照 7000公里计算
距离应该是: 21980公里 加上上下行的链路合计
22000公里
所以如果是走光纤, 一次round trip 的时间是 40000公里/200000(公里/秒钟)
也就是 200ms的时间.
如果走skylink的话 就是 44000公里/300000(公里/秒)
不超过 150ms的时间.
所以理论上 skylink的round trip的时延会短一些.
引申
时延就是 距离/速度.
软件系统的时延就是
我开始要数据, 到给我数据的时间.
B/S结构来说. 就是我click一个按钮之后, 到展现给我结果的时间.
所有的操作都有时延.
CPU的寄存器, 各级缓存, 内存, 磁盘, 网络都有时延.
时延是性能的最大的敌人.
降低时延能够提高客户的感受. 加快处理效率.
关于网络的时延和IO的时延的理解主要在是三部分组成
1. 排队. 2.传输 3. 处理.
磁盘IO时延的理解
网络IO和磁盘IO在CPU看来其实都是IO
CPU和内存的改善主要是通过算力和带宽来表示.
网络和磁盘的IO 考虑三方面主要是:
磁盘IO:
1. 排队时间: 昨天提到的有一个 nr_requests 队列越长, 等待时间越长.
2. 处理. queue_depth 队列深度的系统处理能力.
3. 传输. 总线, SATA接口AHCI协议,或者是PCI-E,走NVMe协议的带宽以及速度.
提高IO性能的方法就是 降低三个的时间.
实际上IO的时间还是IOWAIT的时间.
IOWAIT 其实包含 操作系统内核进行线程切换的部分时间, 以及SVCTIME.
SVCTIME主要是硬件性能和压力来决定. 操作系统的上下文切换,线程切换主要是考验系统的压力和CPU的能力.
网络IO时延的理解
网络时延其实也包含协议层处理,网卡处理, 网络传输, 业务处理等等步骤.
本次不考虑 业务处理的步骤, 因为这个很难去评判.
网络实验的IO可以从内核的像是zero copy ; sendfile的地方开始介入考虑.
nginx等可以通过减少内存中的copy来提高响应速度. 当然也可以讲这一步理解为磁盘IO和内存IO.
进入协议层之后, 主要是协议的打包封装的效率,这一块一般要考虑CPU的性能. 能否快速实现打包验证等.
协议层里面也会涉及很多内核参数, 比如TCP/IP的拥塞检查,慢启动,滑动窗口,SACK等等特性影响性能.
进入网卡.要看一下网卡是否支持类似于TSO,GSO,LRO,GRO的一些配置. 对性能的影响等.
追求吞吐量,响应时间可能会降低 因为将小包进行和合并到一个大的包的处理.
追求响应时间可能就会影响吞吐量, 因为网络中可能充斥着很多低负载的包.
网络的性能主要是看包转发率和传输速度的.
不同的交换机性能, 网卡性能, 网线质量, 电磁环境都会影响.具体的网络性能
一个简单的科普-延迟与RT时间的更多相关文章
- 用node.js从零开始去写一个简单的爬虫
如果你不会Python语言,正好又是一个node.js小白,看完这篇文章之后,一定会觉得受益匪浅,感受到自己又新get到了一门技能,如何用node.js从零开始去写一个简单的爬虫,十分钟时间就能搞定, ...
- 【Linux学习】 写一个简单的Makefile编译源码获取当前系统时间
打算学习一下Linux,这两天先看了一下gcc的简单用法以及makefile的写法,今天是周末,天气闷热超市,早晨突然发现住处的冰箱可以用了,于是先出去吃了点东西,然后去超市买了一坨冰棍,老冰棍居多, ...
- 用vue实现一个简单的时间屏幕
前言 去年用了一个小的 app,叫做 一个木函,本来想着用来做动画优化就删掉了的,不过看到他有个时间屏幕的小工具,就点进去看了下,觉得挺好玩的,就想着能不能自己实现一下. ps: 闲话不多说,先上例子 ...
- 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小
原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...
- 从一个简单的Java单例示例谈谈并发
一个简单的单例示例 单例模式可能是大家经常接触和使用的一个设计模式,你可能会这么写 public class UnsafeLazyInitiallization { private static Un ...
- 从一个简单的Java单例示例谈谈并发 JMM JUC
原文: http://www.open-open.com/lib/view/open1462871898428.html 一个简单的单例示例 单例模式可能是大家经常接触和使用的一个设计模式,你可能会这 ...
- 一个简单的PHP模板引擎
PHP早期开发中通常是PHP代码和HTML代码混写,这也使代码中充斥着数据库操作,逻辑处理等.当项目不大时,这样的代码还可以接受,但是随着项目不断扩大,我们就会发现同一个文件中同时存在前端逻辑和后端处 ...
- 响应式编程笔记三:一个简单的HTTP服务器
# 响应式编程笔记三:一个简单的HTTP服务器 本文我们将继续前面的学习,但将更多的注意力放在用例和编写实际能用的代码上面,而非基本的APIs学习. 我们会看到Reactive是一个有用的抽象 - 对 ...
- 在EntityFramework6中管理DbContext的正确方式——4DbContextScope:一个简单的,正确的并且灵活的管理DbContext实例的方式(外文翻译)
(译者注:使用EF开发应用程序的一个难点就在于对其DbContext的生命周期管理,你的管理策略是否能很好的支持上层服务 使用独立事务,使用嵌套事务,并行执行,异步执行等需求? Mehdi El Gu ...
- C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序
C#中缓存的使用 缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可: <%@ Outp ...
随机推荐
- Langchain-Chatchat项目:2.1-通过GPT2模型来检索NebulaGraph
在官方例子中给出了通过chain = NebulaGraphQAChain.from_llm(ChatOpenAI(temperature=0), graph=graph, verbose=Tru ...
- Java 在Excel中添加筛选器并执行筛选
以下内容介绍通过Java程序在Excel添加筛选器并执行筛选.程序需要使用Excel工具类库Free Spire.XLS for Java,本文中使用的是免费版,可在官网下载jar包,解压导入jar文 ...
- 云图说|“真人?机器?傻傻分不清!” WAF Bot管理,带你慧眼辨“精”!
黑产SEO,恶意竞争,交易欺诈--企业业务频受恶意Bot流量困扰? 华为云Web应用防火墙Bot管理功能,帮助您轻松甄别并拦截恶意Bot流量,规避恶意 Bot 行为带来的业务风险. 企业主机安全(Ho ...
- 高并发中,那些不得不说的线程池与ThreadPoolExecutor类
摘要:从整体上认识下线程池中最核心的类之一--ThreadPoolExecutor,关于ThreadPoolExecutor的底层原理和源码实现,以及线程池中的其他技术细节的底层原理和源码实现. 本文 ...
- 实践GoF的设计模式:工厂方法模式
摘要:工厂方法模式(Factory Method Pattern)将对象创建的逻辑封装起来,为使用者提供一个简单易用的对象创建接口,常用于不指定对象具体类型的情况下创建对象的场景. 本文分享自华为云社 ...
- 华为云GaussDB专家走进课堂,跟莘莘学子聊聊数据库
摘要:华为云GaussDB走进北邮,技术专家走进课堂带来数据库前沿资讯. 近期,各地疫情又一次席卷而来,居家隔离成为常态.不过,外出的不便并没有阻挡莘莘学子求知的渴望,线上课堂成为了大多学生上课的主要 ...
- 使用Plist编辑器——简单入门指南
本指南将介绍如何使用Plist编辑器.您将学习如何打开.编辑和保存plist文件,并了解plist文件的基本结构和用途.跟随这个简单的入门指南,您将掌握如何使用Plist编辑器轻松管理您的plis ...
- 火山引擎数智平台VeDI荣获虎啸奖“年度最佳智能营销平台”奖项
近日,由中国商务协会数字营销专业委员会指导的第十四届虎啸奖正式公布获奖名单,火山引擎数智平台VeDI荣获技术平台/产品类奖项. 作为国内品牌营销领域兼具权威性.前瞻性以及创新性的赛事活动,第十四届 ...
- Python上下文管理器的高级使用
在文件处理和网络编程时,对于打开的文件不管最后内容处理是否符合预期都要在结束时关闭文件.这时常见的处理方法是try catch finally 的方法 f = open("demo.txt& ...
- 用户 IP,里面藏了多少秘密?
大家都知道,要邮寄一封信给正确的收件人,需要提供准确而精细的地址,这个地址需要从国家和城市精确到邮政编码,街道和门牌号码.只有这样,邮局的工作人员才能知道将信送到那里. Internet 上也是如此, ...