我目前的经历告诉我,了解了之后,可以快速的定位问题,简单点说,快速甩锅。一直以来的感觉是,前端是最容易背锅的存在。
1. 关于tcp/http的故事
- 1. 问题
我们目前接口服务使用的是http1.1。关于如果查看自己当前使用的http版本,可以通过request header或者response header的view source查看。
有一天一个用户反应,你们这个系统有个接口特别慢。然后各方各自自查。
网络端给出原因,你们这个怎么永远只有一个TCP连接啊?前端看一下。
我打开测试环境的network, 我有6个http请求啊,怎么看我有几个TCP连接啊?
通过询问,获得查看tcp连接工具。
先在我的测试环境查看,有6个连接啊。再去正式环境查看,确实只有一个,其余的都pending。
这肯定不是前端的问题,锅甩出去了。
- 2. 原因
服务端启用了http2。稍微了解过http2的人都知道,http2只支持一个TCP。
2. 关于操作系统
一天,用户A又说,你们这个大文件上传也太慢了,20多个G的文件hash计算要一个小时。
有点懵,不对啊,我们都是三五分钟就完事的啊。
然后A甩出一张计时1h的截图。
把A同样的文件拿过来,自己测,还是三五分钟啊。
我:“是不是你电脑配置不好?”
A:”配置和你电脑一样啊。“
我:”等我去你那瞅瞅。"。
确实慢!!无果。
这时隔壁大佬凑头过来瞟了一眼:“我看看任务管理器。”
大佬:“你磁盘读写太慢了,E盘,只有10M/s。”
我火速跑回去查我的电脑,嗯,C盘,100+M/s。
我:“为啥我的电脑这么快啊?”
大佬:“你从C盘传的吧,C盘是SSD啊,SSD是固态硬盘,其他盘都是机械硬盘,固态硬盘本身就读写快。”
我为了确认,找B从E盘传同样的文件。和我C盘速度差不多。
再跑过去问大佬。
大佬查看了一些B的型号之后。
大佬:“A的硬盘型号比B晚了两年,B的是WDC"。
哦哦,新旧也有差异。
虽然还是一知半解,但是以后遇到类似的问题,应该知道查找方向了。