论文阅读 《Pingmesh: A Large-Scale System for Data Center Network Latency Measurement and Analysis》

这篇具有很好参考价值的文章主要介绍了论文阅读 《Pingmesh: A Large-Scale System for Data Center Network Latency Measurement and Analysis》。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

在我们内部产品中,一直有关于网络性能数据监控需求,我们之前是直接使用 ping 命令收集结果,每台服务器去 ping (N-1) 台,也就是 N^2 的复杂度,稳定性和性能都存在一些问题,最近打算对这部分进行重写,在重新调研期间看到了 Pingmesh 这篇论文,Pingmesh 是微软用来监控数据中心网络情况而开发的软件,通过阅读这篇论文来学习下他们是怎么做的。

数据中心自身是极为复杂的,其中网络涉及到的设备很多就显得更为复杂,一个大型数据中心都有成百上千的节点、网卡、交换机、路由器以及无数的网线、光纤。在这些硬件设备基础上构建了很多软件,比如搜索引擎、分布式文件系统、分布式存储等等。在这些系统运行过程中,面临一些问题:如何判断一个故障是网络故障?如何定义和追踪网络的 SLA?出了故障如何去排查?

基于这几点问题,微软设计开发了 Pingmesh,用来记录和分析数据中心的网络情况。在微软内部 Pingmesh 每天会记录 24TB 数据,进行 2k 亿次 ping 探测,通过这些数据,微软可以很好的进行网络故障判定和及时的修复。

数据中心网络

常见的数据中心网络拓扑:

网络延时计算方式:server A 发送消息到 server B 接受消息的时间。最终使用 RTT 时间,RTT 一个好处是绝对时间,与时钟不相关。

在大多数情况下,大家不会去关心延时具体是什么导致的,都是直接归结于网络原因,让网络团队去排查,实际上是浪费了很多人力成本。延时变高有很多原因:CPU 繁忙、服务自身 Bug、网络原因等等。往往丢包会伴随着延时升高,因为丢包意味着会发生重传,所以丢包也是需要观察的重点。

因为 Pingmesh 运行在微软内部,所以依托于微软自己的基础架构,有自动化管理系统 Autopilot,有大数据系统 Cosmos,也有类似于 SQL 的脚本语言 SCOPE。

设计

根据上面的需求,Pingmesh 先评估了现有的开源工具,不符合的原因有很多,大多数工具都是以命令行形式呈现,一般是出现故障了去使用工具排查,而且工具提供的数据也不全面,有可能正在运行工具问题已经解决了。当然这并不是说已有的工具没有用,只能说不适合 Pingmesh。

Pingmesh 是松耦合设计,每个组件都是可以独立运行的,分为 3 个组件。在设计的时候需要考虑几点:

  • 因为要运行在所有的 server 上,所以不能占用太多的计算资源或网络资源
  • 需要是灵活配置的且高可用的的
  • 记录的数据需要进行合理的汇总分析

Pingmesh 架构设计:

Controller

Controller 主要负责生成 pinglist 文件,这个文件是 XML 格式的,pinglist 的生成是很重要的,需要根据实际的数据中心网络拓扑进行及时更新。

在生成 pinglist 时, Controller 为了避免开销,分为3 个级别:

  1. 在机架内部,让所有的 server 互相 ping,每个 server ping (N-1) 个 server
  2. 在机架之间,则每个机架选几个 server ping 其他机架的 server,保证 server 所属的 ToR 不同
  3. 在数据中心之间,则选择不同的数据中心的几个不同机架的 server 来ping

Controller 在生成 pinglist 文件后,通过 HTTP 提供出去,Agent 会定期获取 pinglist 来更新 agent 自己的配置,也就是我们说的“拉”模式。Controller 需要保证高可用,因此需要在 VIP 后面配置多个实例,每个实例的算法一致,pinglist 文件内容也一致,保证可用性。

Agent

微软数据中心的每个 server 都会运行 Agent,用来真正做 ping 动作的服务。为了保证获取结果与真实的服务一致,Pingmesh 没有采用 ICMP ping,而是采用的 TCP/HTTP ping。所以每个 Agent 即是 Server 也是 Client。每个 ping 动作都开启一个新的连接,主要为了减少 Pingmesh 造成的 TCP 并发。

Agent 要保证自己是可靠的,不会造成一些严重的后果,其次要保证自己使用的资源要足够的少,毕竟要运行在每个 server 上。两个server ping 的周期最小是 10s,Packet 大小最大 64kb。针对灵活配置的需求,Agent 会定期去 Controller 上拉取 pinglist,如果 3 次拉取不到,那么就会删除本地已有 pinglist,停止 ping 动作。

在进行 ping 动作后,会将结果保存在内存中,当保存结果超过一定阈值或者到达了超时时间,就将结果上传到 Cosmos 中用于分析,如果上传失败,会有重试,超过重试次数则将数据丢弃,保证 Agent 的内存使用。

Analysis

拿到了数据就要进行分析,Pingmesh 会以 10min,1hour,1天的粒度进行统计汇总,数据的实时性最快也就是 10min ,Pingmesh 还借助内部的基础设施能够拿到 5min 级别的数据结果,算是一种“实时”监控吧。

网络状况

根据论文中提到的,不同负载的数据中心的数据是有很大差异的,在 P99.9 时延时大概在 10-20ms,在 P99.99 延时大概在100+ms 。关于丢包率的计算,因为没有用 ICMP ping 的方式,所以这里是一种新的计算方式,(一次失败 + 二次失败)次数/(成功次数)= 丢包率。这里是每次 ping 的 timeout 是 3s,windows 重传机制等待时间是 3s,下一次 ping 的 timeout 时间是 3s,加一起也就是 9s。所以这里跟 Agent 最小探测周期 10s 是有关联的。二次失败的时间就是 (2 * RTT)+ RTO 时间。

Pingmesh 的判断依据有两个,如果超过就报警:

  • 延时超过 5ms
  • 丢包率超过 10^(-3)

在论文中还提到了其他的网络故障场景,交换机的静默丢包。有可能是 A 可以连通 B,但是不能连通 C。还有可能是 A 的 i 端口可以连通 B 的 j 端口,但是 A 的 m 端口不能连通 B 的 j 端口,这些都属于交换机的静默丢包的范畴。Pingmesh 通过统计这种数据,然后给交换机进行打分,当超过一定阈值时就会通过 Autopilot 来自动重启交换机,恢复交换机的能力。

经验学习

  1. 找到可信数据,只有数据来源可信,那么分析才是有效的
  2. 让服务作为 daemon 运行,保证持续的收集数据
  3. 松耦合设计,每个组件都可以独立工作

总结

其实我们自己的系统是有 Prometheus 这样的监控系统的,但是当遇到交换机级别的间歇性故障时,Prometheus 也是故障的状态,所以也就不会收集 exporter 汇报的数据,也就更没办法产生告警了。所以如果遇到那种长时间持续的故障反而是好事,至少我们有一个足够的状态去排查哪里出了问题,否则真的是间歇性故障仅仅依靠 ping, traceroute, iperf, netstat 之类的工具去排查是没什么效果的,只有我们知道过去一段时间的网络情况,才能去排查。

参考链接

  • https://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p139.pdf
  • http://ninjadq.com/2017/04/01/linux-rto
  • https://yi-ran.github.io/2019/03/27/Pingmesh-SIGCOMM-2015/

本文转载自:论文阅读 《Pingmesh: A Large-Scale System for Data Center Network Latency Measurement and Analysis》

如果您需要 Pingmesh 的产品,可以 联系我们。文章来源地址https://www.toymoban.com/news/detail-679291.html

到了这里,关于论文阅读 《Pingmesh: A Large-Scale System for Data Center Network Latency Measurement and Analysis》的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [论文笔记]小目标识别文献综述Towards large-scale small object detection: Survey and Benchmarks

    2022_cite=12_Cheng——Towards large-scale small object detection: Survey and Benchmarks https://shaunyuan22.github.io/SODA/ 小目标检测= small object detection = SOD Datasets: SODA-D: OneDrvie; BaiduNetDisk SODA-A: OneDrvie; BaiduNetDisk Codes The official codes of our benchmark, which mainly includes data preparation and evaluation , are released belo

    2024年02月10日
    浏览(45)
  • 分布式链路追踪——Dapper, a Large-Scale Distributed Systems Tracing Infrastructure

    要解决的问题 如何记录请求经过多个分布式服务的信息,以便分析问题所在? 如何保证这些信息得到完整的追踪? 如何尽可能不影响服务性能? 当用户请求到达前端A,将会发送rpc请求给中间层B、C;B可以立刻作出反应,但是C需要后端服务D、E的配合才能应答 一个简单有用

    2024年02月12日
    浏览(37)
  • 102、X^3 : Large-Scale 3D Generative Modeling using Sparse Voxel Hierarchies

    官网  Nvidia2023提出的一种新的生成模型,可生成具有任意属性的高分辨率稀疏3D体素网格,以前馈方式生成数百万体素,最细有效分辨率高达 102 4 3 1024^3 102 4 3 ,而无需耗时的 test-time 优化,使用一种分层体素潜扩散模型,使用建立在高效VDB数据结构上的自定义框架,以从粗

    2024年02月03日
    浏览(45)
  • LLMs之Baichuan 2:《Baichuan 2: Open Large-scale Language Models》翻译与解读

    LLMs之Baichuan2:《Baichuan 2: Open Large-scale Language Models》翻译与解读 导读 :2023年9月6日,百川智能重磅发布Baichuan 2。科技论文主要介绍了Baichuan 2,一个开源的大规模语言模型,以及其在多个领域的性能表现和安全性措施。论文强调了对开源模型的重要性,特别是对于非英语语言

    2024年02月09日
    浏览(48)
  • 《斯坦福数据挖掘教程·第三版》读书笔记(英文版)Chapter 12 Large-Scale Machine Learning

    来源:《斯坦福数据挖掘教程·第三版》对应的公开英文书和PPT Algorithms called “machine learning” not only summarize our data; they are perceived as learning a model or classifier from the data, and thus discover something about data that will be seen in the future. The term unsupervised refers to the fact that the input data does

    2024年02月10日
    浏览(50)
  • 【论文阅读】GPT4Graph: Can Large Language Models Understand Graph Structured Data?

    作者:Jiayan Guo, Lun Du, Hengyu Liu 文章链接:GPT4Graph: Can Large Language Models Understand Graph Structured Data? An Empirical Evaluation and Benchmarking 代码链接:GPT4Graph: Can Large Language Models Understand Graph Structured Data? An Empirical Evaluation and Benchmarking 通过使用自然语言描述图并向LLM提供文本描述,直接

    2024年01月20日
    浏览(41)
  • 论文阅读——Large Selective Kernel Network for Remote Sensing Object Detection

    期刊 CVPR 年份 2023 论文地址 https://arxiv.org/pdf/2303.09030.pdf 代码地址 https://github.com/zcablii/LSKNet 遥感目标检测的大选择核网络 相对较少的工作考虑到强大的先验知识存在于遥感图像。航空图像通常是用高分辨率的鸟瞰图拍摄的。特别是,航拍图像中的大多数物体可能体积较小,

    2024年02月08日
    浏览(47)
  • 论文阅读-《HigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation》

     目录 一、总述 1. 要解决的问题 2. 使用的方法 3. 取得的成果 二、摘要 三、介绍 四、相关工作 五、高分辨率网络 1. HigherHRNet i. HRNet ii. HigherHRNet 2. 分组 3. 反卷积模块 4. 多分辨率监督 5. 热图聚合策略 六、实验 1. COCO数据集关键点预测 2. 消融实验 3. CrowdPose 七、结论      

    2024年04月12日
    浏览(49)
  • RSIS 系列 Rotated Multi-Scale Interaction Network for Referring Remote Sensing Image Segmentation 论文阅读

    写在前面   同样是一篇比较新的论文挂在 Arxiv 上面,拿来读一读。看标题应该是提出了新的 RIS 数据集与方法,用于遥感目标检测的。 论文地址:Rotated Multi-Scale Interaction Network for Referring Remote Sensing Image Segmentation 代码地址:https://github.com/Lsan2401/RMSIN 预计提交于:CVPR 202

    2024年02月03日
    浏览(45)
  • 论文阅读——MAT: Mask-Aware Transformer for Large Hole Image Inpainting

    原文链接: 2022 CVPR 2022 MAT: Mask-Aware Transformer for Large Hole Image Inpainting  [pdf]   [code] 本文创新点: 开发了一种新颖的修复框架 MAT,是第一个能够直接处理高分辨率图像的基于 transformer 的修复系统。 提出了一种新的多头自注意力 (MSA) 变体,称为多头上下文注意力 (MCA),只使用

    2024年02月08日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包