关于高性能:thrift的网络传输性能和需要注意的问题

起源:thrift的网络传输性能和须要留神的问题thrift应该是目前反对编程语言品种最多的跨语言 rpc服务框架, http://thrift.apache.org/ thrift实现了残缺的网络服务,所以个别应用thrift时,会应用到thrift的服务框架。当然,也能够用本人曾经实现的网络服务,用io流对接thrift接口的输入输出流实现thrift的接入。 无论是用thrift的网络实现,还是本人实现的网络服务,只有对接thrift,在调用thrift接口实现rpc时,都是走thrift的网络传输方式。 thrift的网络传输实现形式 不适宜也不反对压力较大的网络传输需要。实际上,调用一次thrift接口,并不是只调一次网络io写数据,而是拆分为屡次写数据传送。 调用一个thrift 的接口发送数据时,thrift会将这个操作拆分为几个操作: 调用thrift的办法时:thrift会找到这个办法所在的对象,调用write办法, 在write办法在,别离对各个参数,顺次调用 writeFieldBegin,writeXXX(具体参数类型) ,WriteFieldStop 等函数每次调用也同时调用网络io写相应数据. 以目前最新的thrift-0.18.1实现为例 比方 go的实现: func (p *ItnetPonMergeArgs) Write(ctx context.Context, oprot thrift.TProtocol) error { if err := oprot.WriteStructBegin(ctx, "PonMerge_args"); err != nil { return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) } if p != nil { if err := p.writeField1(ctx, oprot); err != nil { return err } if err := p.writeField2(ctx, oprot); err != nil { return err } } if err := oprot.WriteFieldStop(ctx); err != nil { return thrift.PrependError("write field stop error: ", err) } if err := oprot.WriteStructEnd(ctx); err != nil { return thrift.PrependError("write struct stop error: ", err) } return nil}//第一个参数func (p *ItnetPonMergeArgs) writeField1(ctx context.Context, oprot thrift.TProtocol) (err error) { if err := oprot.WriteFieldBegin(ctx, "pblist", thrift.LIST, 1); err != nil { //WriteFieldBegin return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:pblist: ", p), err) } if err := oprot.WriteListBegin(ctx, thrift.STRUCT, len(p.Pblist)); err != nil { return thrift.PrependError("error writing list begin: ", err) } for _, v := range p.Pblist { if err := v.Write(ctx, oprot); err != nil { return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", v), err) } } if err := oprot.WriteListEnd(ctx); err != nil { return thrift.PrependError("error writing list end: ", err) } if err := oprot.WriteFieldEnd(ctx); err != nil { return thrift.PrependError(fmt.Sprintf("%T write field end error 1:pblist: ", p), err) } return err}//第二个参数,操作相似第一个参数func (p *ItnetPonMergeArgs) writeField2(ctx context.Context, oprot thrift.TProtocol) (err error) { if err := oprot.WriteFieldBegin(ctx, "id", thrift.I64, 2); err != nil { return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:id: ", p), err) } if err := oprot.WriteI64(ctx, int64(p.ID)); err != nil { return thrift.PrependError(fmt.Sprintf("%T.id (2) field write error: ", p), err) } if err := oprot.WriteFieldEnd(ctx); err != nil { return thrift.PrependError(fmt.Sprintf("%T write field end error 2:id: ", p), err) } return err}调用Pon(ItnetPonMergeArgs)办法的thrift传输程序是: ...

September 6, 2023 · 3 min · jiezi

关于高性能:高性能网络-SIG-月度动态ANCK-首次支持-SMCv21virtio-规范支持隧道报文内头部哈希

高性能网络 SIG(Special Interest Group) :在云计算时代,软硬件高速倒退,云原生、微服务等新的利用状态衰亡,让更多的数据在过程之间流动,而网络则成为了这些数据流的载体,在整个云时代扮演着前所未有的重要角色。在这个万物互联的时代,云上的网络通信效率对各种服务至关重要,高性能网络趣味组致力于利用 XDP、RDMA、VIRTIO 等新高效通信技术,联合软硬件一体化的思维,打造高性能网络协议栈,晋升云计算时代数据中心利用的网络的性能。 01 SIG 整体停顿本月要害停顿: 1、SIG 本月实现 SMC 在 ANCK 5.10-015 内核的集成和公布,ANCK 成为社区首个实现 SMCv2.1 的内核。ANCK 中 SMC 反对 SMCv2.1 协定新增的链路数量协商、链路承载连贯数量协商、Vendor 能力拓展等个性,反对通过 AF_INET 协定族应用 SMC,反对局部场景基于 eBPF 的替换策略,以及其余多个优化与稳定性修复。 2、SIG 推动的对于隧道内头部哈希的 virtio 标准规范,通过 8 个月 445 封邮件的沟通,在本月终于胜利进入 virtio SPEC 主线。该提案基于特色协商的机制,为 virtio 提供了隧道报文内头部哈希的能力。 02 ANCK 内核网络修复ANCK 5.10-015 版本回合多个 SIG 提交至上游的修复补丁: net/smc: Reset connection when trying to use SMCRv2 failsnet/smc: Scan from current RMB list when no position specifiednet/smc: Dont use RMBs not mapped to new link in SMCRv2 ADD LINKnet/smc: Avoid to access invalid RMBs MRs in SMCRv1 ADD LINK CONT平安本月网络方向共计修复 13 个 CVE,笼罩 sched/iscsi_tcp/rxrpc/netfilter/tap 等模块,CVE 列表:ANCK-5.10:CVE-2023-3610,CVE-2023-2006,CVE-2023-2162,CVE-2023-35001,CVE-2023-31248,CVE-2023-3117,CVE-2023-1382。 ...

August 22, 2023 · 2 min · jiezi

关于高性能:高性能网络-SIG-月度动态联合-IBM-就-SMC-v21-协议升级达成一致ANCK-率先完成支持

高性能网络 SIG(Special Interest Group) :在云计算时代,软硬件高速倒退,云原生、微服务等新的利用状态衰亡,让更多的数据在过程之间流动,而网络则成为了这些数据流的载体,在整个云时代扮演着前所未有的重要角色。在这个万物互联的时代,云上的网络通信效率对各种服务至关重要,高性能网络趣味组致力于利用 XDP、RDMA、VIRTIO 等新高效通信技术,联合软硬件一体化的思维,打造高性能网络协议栈,晋升云计算时代数据中心利用的网络的性能。 01 SIG 整体停顿本月高性能网络 SIG 的次要工作聚焦在 ANCK 内核网络、SMC 和 virtio 上。 本月要害停顿: SIG 本月与 IBM SMC 团队就 SMCv2.1 协定的要害个性达成统一。SMCv2.1 较 SMCv1 具备更强的可拓展性,是 SMC 社区的将来发展趋势。SMCv2.1 相较 SMCv2 的次要差别是引入了 SIG 提出的:a) LGR 反对单 Link。b) LGR 反对协商最大连接数。c) 反对 RDMA write with immediate。d) 反对 vendor 特定个性等内容。 SIG 本月发动的 [Proposal] Relationship between XDP and rx-csum in virtio-net 提案解决了 virtio-net 反对 XDP 和 rx checksum 存在抵触的问题,实现了两者的共存。02 ANCK 内核网络修复修复了网卡多队列、大深度场景下产生 cpu stall 的问题:bugzilla 链接 https://bugzilla.openanolis.cn/show_bug.cgi?id=5383。 ...

June 19, 2023 · 2 min · jiezi

关于高性能:北邮基于焱融存储构建高性能智能医学研究平台

人工智能是引领新一轮科技反动、产业改革、社会倒退的战略性学科畛域,正在对人类生存、经济倒退和社会提高等方面产生重大深远的影响。北京邮电大学是国内最早从事人工智能人才培养和科学研究的单位之一,是中国人工智能学会(CAAI)的挂靠单位。“脑认知与智能医学系”是北京邮电大学人工智能学院的重要组成部分,正逐步倒退成为撑持该学院“智能+医学+X”交叉学科建设的重要力量,依靠脑认知与智能医学系,瞄准国家重大需要和人民生命衰弱,深度参加国家科技翻新2030-脑科学与类脑智能重大项目等。 AI 驱动 智能医疗大有可为当今信息技术蓬勃发展,医疗畛域的改革往往关乎着人类衰弱,数字医学正踊跃推动着医疗行业改革的步调,医疗人工智能适逢其时,撑持着丰盛的衰弱医疗利用,造福人类生命衰弱。在医学影像和病理图像智能剖析畛域,人工智能也有着广泛应用。人工智能在医学影像中的利用,其作用大体上可分为两个层面:一是加强成像成果,包含摄影和图像处理,提供更加可能诊断疾病的影像;二是剖析诊断,利用人工智能技术对影像进行剖析,从而给出诊断论断。简略来说,人工智能可赋能医学影像诊断,承当分类检出工作,进步诊断的效率和精准度,越来越多地帮忙医生欠缺临床决策中的暗藏见解,缩小医生的重复劳动,提供具备附加值的工作,将患者与资源分割起来进行全面治理,缓解看病难的问题,并从以前无法访问的非结构化数据资产中提取有意义的数据,进而进步综合医疗程度。医学成像数据是对于患者的最丰盛的信息起源之一,并且通常是最简单的信息之一。整顿并解读这些海量图像数据也是一项挑战,稳固牢靠的存储管理和服务系统对人工智能赋能医学图形影像解决和利用至关重要。 北邮 AI 医学图形图像钻研平台需要剖析本我的项目为人工智能学院医学图形图像钻研建设一套人工智能钻研平台,次要用于反对人工智能医学影像解决、智能医学图像了解、医学影像剖析等方面的科学研究工作。 智能医学平台数据存储的次要特点包含: 须要承载的文件量大,增速快,现有数据量在数百 TB 且数据以 TB 级 增长。海量的文件数量及快速增长驱使存储系统领有海量文件存储能力和弱小的扩大能力;大小文件混合场景,智能医学图形图像零碎中,蕴含了诸多类型的数据,大文件(医学影像、图片等)和小文件(形容信息、文本等)混合场景。对于存储系统来说须要兼顾大文件读写性能-带宽和小文件读写性能-IOPS;数据存量大、增量快的数据特点要求 AI 平台可能疾速地解决数据,同时,存储作为 AI 平台最重要组成部须要有足够高的性能,满足数据处理要求;每次运行 AI 训练任务,波及大量数据读写及运算,运行工夫较长。长时间运行的工作对于存储的稳定性提出了极高的要求,须要领有稳固的数据服务能力和稳固的零碎状态;原有的存储形式不能很好地满足科研工作的需要,次要体现在以下几个方面: 在整体架构方面,目前的存储形式是应用各个计算节点的本地硬盘来存储数据,这样带来了多方面的问题。例如,通过共享本地硬盘的形式可能反对的训练客户端十分无限,在这种存储形式中,本地硬盘的性能成为瓶颈,影响训练效率;其次,因为数据都寄存在独立的硬盘中,存在数据孤岛问题,节点与节点之间无奈实现数据共享,数据须要在节点间重复拷贝,浪费时间及存储空间;在性能方面,本地硬盘的性能难以满足高性能,海量文件的人工智能场景的存储需要,影响零碎效率。人工智能平台会解决海量数据,就须要存储系统可能高性能地提供待处理数据,同时 200Gb Infiniband 网络在 AI/HPC 场景中曾经遍及,存储系统必须能反对高速网络;在可扩展性方面,现有的存储形式不能很好的撑持海量的数据存储需要,也难以跟上数据激增的步调,平台的可扩展性也受限;YRCloudFile 构建国家级钻研平台建设为建设先进全面的科研模式,该院钻研平台抉择与焱融科技达成此次单干,共建高效的国家级钻研平台,为科研工作长足发展奠定根底。该人工智能学院过采纳焱融 YRCloudFle 分布式存储集群晋升 AI 平台整体效率,这带来了空谷传声的成果:新建的人工智能平台由计算集群,200Gb Infiniband 网络及 3 台焱融 YRCloudFile 分布式存储节点组成。在计算集群上运行医学解决剖析利用,通过 200Gb Infiniband 网络连接存储系统。业务平台建设计划架构图 焱融科技所提供的存储解决方案,该钻研平台建起大规模高速并行可扩大存储的数据平台,满足了根底钻研须要的同时,有了更多性能方面的晋升。 正当调配高效利用 采纳焱融分布式文件存储 YRCloudFile 反对目录配额治理和用户/组配额治理,应用一套存储集群满足不同用户的数据存储需要,多用户之间共享存储空间,实现了存储资源的正当调配和高效利用。采纳目录配额性能为不同用户设置独立的应用空间大小,防止了多个用户对于存储空间的抢占问题,实现了存储空间的正当调配;通过设置 QoS 性能解决了存储性能抢占问题,保障不同用户的不同业务获取正当的存储性能。 高性能线性扩大 存储集群通过 200Gb Infiniband 与前端计算节点相连,该平台具备了高性能的存储服务。焱融分布式文件存储 YRCloudFile 可将多台存储服务器上硬盘的读写能力聚合造成聚合带宽,搭建通用 X86 服务器,实现软硬件解耦,可按需部署,灵便扩大,使存储系统总体性能呈线性增长。实验室后续可通过减少服务器的形式,晋升整个存储系统的容量及性能。 海量文件反对 医学影像图片业务蕴含大量文件,这些文件既有大文件,如图片、图像等,也有海量小文件,如文本文件、形容信息文件等。作为数据的核心层,焱融分布式文件存储 YRCloudFile 具备海量结构化和非结构化数据管理能力,海量小文件操作和大文件解决的能力,深度优化的元数据服务提供了卓越的海量数据存储和拜访能力。不同科研人员可依据业务需要采纳相应存储接口对接到计算平台,YRCloudFile 所具备的大集群资源管理性能 QoS、配额治理等服务,可能更好地晋升整体存储服务能力。 北邮 AI 医学图形图像钻研平台采纳 YRCloudFile 提供的解决方案,打造了一套高性能、高可用、高扩展性的 IT 存储基础设施,在晋升海量文件数据存储能力的同时,智能医学平台也实现了全生命周期的数据管理能力,在保障百亿级文件操作性能晋升的根底上,全面晋升了数据管理效力,满足了钻研平台高并发拜访数据、数据共享平安及数据可扩大能力的需要,为钻研平台技术疾速落地提供了要害的存储撑持。北邮智能医学平台是学校增强新型交叉学科建设、助推“脑认知与智能医学”科研学术程度进步和推动医学迷信提高、促成人类衰弱倒退的重要依靠。 ...

June 13, 2023 · 1 min · jiezi

关于高性能:高性能网络-SIG-月度动态长期投入得到业界认可新增一位-virtio-reviewer

高性能网络 SIG(Special Interest Group) :在云计算时代,软硬件高速倒退,云原生、微服务等新的利用状态衰亡,让更多的数据在过程之间流动,而网络则成为了这些数据流的载体,在整个云时代扮演着前所未有的重要角色。在这个万物互联的时代,云上的网络通信效率对各种服务至关重要,高性能网络趣味组致力于利用 XDP、RDMA、VIRTIO 等新高效通信技术,联合软硬件一体化的思维,打造高性能网络协议栈,晋升云计算时代数据中心利用的网络的性能. 01 本月 SIG 整体停顿本月高性能网络 SIG 的次要工作聚焦在 Anolis OS 内核网络、SMC 和 virtio 上。 本月要害停顿: SIG 成员 Xuan Zhuo 成为上游 Linux kernel 社区 virtio core/virtio-net 子系统的 reviewer。Xuan Zhuo 过来三年在 virtio 社区的投入失去了宽泛的认可。SIG 本月实现了上游 virtio-net 对 XDP socket 零拷贝的反对,能够大幅晋升 virtio 下 XDP socket 的发包性能。该个性在龙蜥的 ANCK 内核上曾经反对了一年多的工夫,当初,咱们将该个性奉献到 Linux 上游社区,目前社区已实现 virtio-net XDP 重构局部的 review,预计 5.8 窗口期后合入。02 ANCK 内核网络本月网络方向新增安全漏洞修复:CVE-2023-1074 (SCTP 相干)。 03 高性能网络协议栈 SMC本月高性能网络 SIG 在 SMC 畛域的工作,次要聚焦在推动本机高性能通信,以及基于 eBPF 的策略替换两个计划在 Linux 上游社区的探讨。 ...

May 11, 2023 · 2 min · jiezi

关于高性能:性能最大提升60阿里云第八代企业级实例ECS-g8i正式上线

3月24日,阿里云发表新一代企业级弹性计算实例规格族ECS g8i正式上线,具备超高性能、全方位平安防护两大特色劣势。 从要害性能参数上看,g8i实例搭载了最新第四代英特尔® 至强®可扩大处理器(代号Sapphire Rapids,SPR),全核睿频p0n达到3.2GHz,相比上一代实例,整机核密度晋升50%,性能最大晋升60%以上。采纳CIPU+飞天的技术架构,网络标配阿里云自研eRDMA大规模减速能力,延时最低8微秒;存储方面全面搭载NVMe,反对共享盘,存储提早低至百微秒。同时,g8i反对可信计算与加密计算等个性,默认内存加密(TME),并在寰球范畴率先反对TDX秘密虚拟机能力。 阿里云弹性计算产品线负责人张献涛示意,阿里云第八代企业级实例g8i的正式上线,标记着阿里云自研的CIPU架构及其最新个性eRDMA能力全面开始商业化,将大幅晋升数据处理效率。阿里云CIPU+飞天的技术架构与第四代英特尔® 至强®可扩大处理器强强联合下,g8i规格族性能晋升了60%,并进行秘密虚拟机能力TDX在云上的首次实际,置信在单方的继续严密单干之下,将会给更多各行业的客户带来更具性价比的技术红利。 残缺内容请点击下方链接查看:https://developer.aliyun.com/article/1180147 版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。

April 24, 2023 · 1 min · jiezi

关于高性能:高性能存储SIG月度动态ANCK-ublk完成POC测试EROFS优化xattr元数据开销

高性能存储技术 SIG(Special Interest Group)指标:高性能存储技术趣味组致力于存储栈性能开掘,以后次要聚焦内核 io_uring 技术优化异步 IO 性能,应用长久化内存晋升业务单老本性能,容器场景存储技术优化等课题。冀望通过社区平台,打造规范的高性能存储技术软件栈,推动软硬件协同倒退。 01 本月 SIG 整体停顿本月合入 Anolis 主线 PR 26 个,蕴含多个重要组件的更新。erofs 反对精简的 long xattr name prefixes,优化 overlayfs 场景 xattr 元数据开销。ANCK 5.10 ublk 已实现 POC 测试,相比 tcmu 时延优化 1 倍。io_uring asio 协程优化计划曾经确定,预计性能优化 10%。DSMS 治理平台的开发根本实现,dsms-storage 适配 Anolis 23 进行中。感激中兴的同学提交了多个 bugfix。 02 我的项目具体停顿1、Anolis OSext4:修复 ext4_xattr_delete_inode hang(PR1362) xfs:xfs_qm 清理(PR1326),修复 xfs_sysfs_init 内存泄露(PR1332/PR1334),移除 xfs_rename 中不正确的 ASSERT(PR1351),修复 force shutdown UAF(PR1376) fuse:修复 fuse flush/resend 接口 bug(PR1302)nfs:修复 RECLAIM_COMPLETE EACCES 问题(PR1324/PR1325),修复 slot 调配失败的内存泄露(PR1346/PR1347),修复遍历 grace_list 短少锁爱护问题(PR1350),修复参数解析空指针(PR1370),解决 CREATE_SESSION NFS4ERR_NOSPC(PR1368/PR1360)misc:修复 hugetlbfs_parse_param 空指针(PR1352),修复 configfs_create_dir 内存泄露(PR1357),修复 nbd_start_device_ioctl hang(PR1356),修复 rbd_sysfs_init() 内存泄露(PR1372/PR1373),修复 md_cluster unlock_all_bitmaps 野指针(PR1367),修复 nvme_alloc_admin_tags 空指针(PR1405)vfio:Clear the caps->buf to NULL after free(PR1422/1427),修复 drbd_create_device UAF(PR1251)VFS:修复 ltp/openat04(PR1489) ...

April 17, 2023 · 2 min · jiezi

关于高性能:焱融科技荣获爱分析信创产品及服务创新奖

近日,“2023爱剖析·信创产品及服务创新奖”评选活动落下帷幕。流动伊始,各行业企业及科技公司积极参与,通过申报、初评、调研、终评多轮角逐,焱融科技胜利获评,入选具备参考价值的信创实际翻新案例。此次评选活动旨在探讨和总结目前企业数据智能实际中的翻新案例,为行业提供有参考价值和学习价值的实践经验,帮忙企业更无效地实现信创替换降级。 作为当今局势下我国经济倒退的新动能,信创产业是我国企业实现数字化转型、放弃外围竞争力的驱动引擎。构建安全可靠的信创产业体系,能无效解决核心技术和关键环节的“卡脖子”问题,保障我国信息技术平安、稳固、有序倒退,铸牢我国信息基础设施的平安之基。存储是企业 IT 基础架构的外围,是影响信息安全的要害组件,存储的性能和可靠性对企业发展要害业务和保障数据安全至关重要。分布式存储在实现架构降级的同时可实现信创转型,分布式存储可打消传统控制器架构瓶颈,晋升零碎并发性能和资源利用率;在信创技术栈,分布式的架构能够局部补救国产 CPU 性能有余的问题。 焱融科技作为一家软件定义存储产品和解决方案的国家高新技术企业,实现中关村高新、“专精特新”等企业认证。在分布式存储等关键技术上领有自主知识产权,焱融科技以分布式存储技术为外围,致力于打造面向云 +AI 时代的数据存储基石。其自主研发的分布式文件存储产品 YRCloudFile 实用于人工智能、智能汽车、国家实验室、教科研、政企、金融量化、能源、制作、生命科学、基因剖析、医疗影像、等场景。焱融科技全面适配国产化及周边生态,实现与多家信创平台 X86、海光、鲲鹏、统信等芯片及操作系统的兼容性互认证,推动信创产业倒退及数据安全可控。焱融分布式文件存储 YRCloudFile 可部署在大规模虚拟化、公有云、容器等环境中,反对多种计算平台,提供高可用、高性能、易扩大、易保护的存储解决方案,焱融分布式文件存储具备以下产品劣势: 焱融科技将继续在数据存储畛域深耕细作,帮忙企业构建高效、便捷、平安的基础设施,为金融数字化转型打造牢靠存储底座,为促成存储技术倒退、存储国产化贡献力量。

March 31, 2023 · 1 min · jiezi

关于高性能:YRCloudFile-V6100-功能新增对-NVIDIA-GPUDirect-与回收站的支持

近日,焱融科技公布分布式文件存储产品 YRCloudFile V6.10.0 版本。在该版本中,YRCloudFile 首次反对了 NVIDIA GPUDirect Storage(GDS)、新增回收站、数据加载热层清理等产品性能,继续优化并大幅晋升作为企业级存储产品的性能和可用性,进一步晋升用户应用体验。 YRCloudFile 是焱融科技基于软件定义存储自主研发的独立的混合云文件存储系统,基于灵便的 SDS 架构, 可提供 POSIX、NFS、SMB/CIFS 等丰盛的文件服务,不仅能够广泛应用于企业级文件共享,大容量数据存储、大数据等通用场景,还能更成熟的利用于智能汽车、多模态 AI 、HPC 高性能计算、生物信息、GIS 等高性能计算利用场景。 在 6.10.0 版本中,YRCloudFile 进行了以下重要更新: 国内首发反对 NVIDIA GPUDirect Storage(GDS): 焱融技术团队历时 6 个月的工夫实现对 NVIDIA GPUDirect Storage(GDS)的适配开发,实现以间接内存的存取形式,将数据传输至 GPU 内存上,显著升高 I/O 提早,晋升数据带宽。 反对回收站性能:通过 YRCloudFile 回收站性能可复原文件数据和相干元数据信息,防止因为误删除操作造成的文件数据失落问题,进一步晋升存储系统的可靠性及数据的安全性。 反对数据加载热层数据清理性能:数据加载反对了热层清理性能,用户通过对文件的冷热策略定义的形式来开释文件系统空间,而存储在文件系统 YRCloudFile 的元数据仍将保留,下次读取数据时,文件存储会从对象存储中主动拉取。同时,数据加载配额治理 (Quota) 解决了加载大量对象存储数据到文件系统内所造成的空间占用问题,减少对 Dataload 目录的配额设置反对。 元数据性能优化:针对 AI 训练中海量小文件读写场景,实现了客户端的轻量级只读 Open, 升高了元数据的拜访操作。可同时保障在文件系统语义的前提下,将局部逻辑 offload 到客户端,大幅升高元数据服务的压力,使集群的元数据性能失去很大的晋升。 功能丰富有温度 用户操作便捷更安心无需放心误删操作,回收站性能一键找回YRCloudFile 提供残缺的回收站性能,当误删除文件系统中的文件后,可通过回收站复原这些文件的数据与元数据信息。回收站性能默认处于开启状态,当相应的文件被系统命令或者程序行为删除后,将以就近准则的形式主动进入相应的回收站,该操作只是挪动元数据,所以不会带来存储空间则增大的问题。当用户须要复原回收站的数据时,可依照文件删除工夫、门路进行定位、查找,疾速实现数据恢复操作。 数据加载热层清理让存储空间应用更高效该版本的数据加载性能反对热层清理性能,依据对文件的冷热策略定义(例如:超过肯定工夫并未被拜访的文件),可采纳定时调度或者立刻清理的形式来开释被占用的文件系统空间,而对应的文件用户仍然能够拜访。当下次读取数据时,文件存储主动从对象存储内进行数据加载,这使得文件存储 YRCloudFile 的空间能够高效的轮转应用,既能保障高性能的数据拜访,又能升高整体存储老本。当加载大量对象存储数据到文件系统造成的的空间占用问题,用户可通过数据加载配额治理(Quota) 减少对 Dataload 目录的配额设置反对。当 Quota 空配额耗尽时,则无奈写入新文件;当读取对象存储新文件时,零碎采纳 by-pass 形式间接从对象存储取得数据返回给业务层。 性能晋升 高性能计算与AI 交融场景不容错过国内首家反对 GPUDirect® 分布式文件存储NVIDIA GPUDirect Storage(GDS) 技术通过 DMA 引擎将硬盘数据间接写入 GPU 显存,这种以间接内存的存取形式,防止了内存 bounce buffers 所带来的额定数据拷贝,进步了存储和 GPU 之间数据挪动的效率,大幅晋升 GPU 载入大型数据集的速度。焱融科技 YRCloudFile 通过对 NVIDIA GPUDirect Storage(GDS)的反对,可能更好地治理数据门路,使数据在应用程序和存储之间通过更短、更无效的门路传输,使反对 GDS 的应用程序可能充沛开释 GPU 计算能力,为人工智能和机器学习(AI/ML)以及数据分析等业务减速。 ...

March 30, 2023 · 1 min · jiezi

关于高性能:DatenLord前沿技术分享-No18

达坦科技专一于打造新一代开源跨云存储平台DatenLord,致力于解决多云架构、多数据中心场景下异构存储、数据对立治理需要等问题,以满足不同行业客户对海量数据跨云、跨数据中心高性能拜访的需要。高性能RDMA网络协议栈是RDMA高性能网络的外围组成部分之一,它提供了反对RDMA技术的网络协议和驱动程序。在本周的前沿科技分享中,咱们邀请到了湖南大学信息科学与工程学院的陈果传授来给咱们分享高性能RDMA网络协议栈的话题。 1、演讲题目高性能RDMA网络协议栈 2、演讲工夫2023年2月26日上午10:30 3、演讲人陈果,湖南大学信息科学与工程学院传授/博导,校园信息化办副主任,国家优青。博士毕业于清华大学计算机系,曾任微软亚洲研究院网络组副研究员。长期从事高性能数据中心网络方面钻研,在相干学术刊物和会议发表论文40余篇,申请国内外专利10余项,研究成果利用于华为鲲鹏芯片、腾讯自研交换机、腾讯CDN网络和百度无线搜寻等。入选国家优青、湖南省优青、长沙市杰青等人才打算,获华为最佳技术单干传授、湖南省科技进步二等奖、全国高校计算机专业优秀教师、湖南省信息化教学比赛一等奖等多个科研和教学奖项。 4、介绍RDMA网络协议栈具备极高的接入速度和极低的解决延时,已成为目前数据中心网络、超算网络等高性能网络的首选。然而, RDMA始终难以在大规模网络中部署。其面临的最大难点是,为保障解决性能,协定栈解决所需的中间状态须压缩至很小的高速缓存中,因而只能实现非常简略的协定性能,无奈应答大规模网络中丢包、多路径等简单状况。 针对此问题,报告人提出了一系列高性能、低开销的RDMA协定栈架构与技术,将RDMA中多路径拥塞管制、抉择重传位图和牢靠传输等重要性能的状态开销缩减为与并发流数目无关的常数级别,冲破RDMA在大规模高性能网络中部署的难题,其中局部技术已利用于华为鲲鹏芯片中。本次报告将介绍报告人近年来发表在NSDI、ICNP、ToN等会议和期刊上的一系列高性能RDMA网络协议栈方面的钻研工作。 5、直播预约欢迎您关注微信公众号:达坦科技DatenLord预约直播,或者登陆腾讯会议观看直播: 会议号:955-6910-3992

February 24, 2023 · 1 min · jiezi

关于高性能:高性能网络SIG月度动态virtio新设备进入virtio规范smc新特性IPC性能比tcp提升88-龙蜥SIG

高性能网络 SIG :在云计算时代,软硬件高速倒退,云原生、微服务等新的利用状态衰亡,让更多的数据在过程之间流动,而网络则成为了这些数据流的载体,在整个云时代扮演者前所未有的重要角色。在这个万物互联的时代,云上的网络通信效率对各种服务至关重要,高性能网络趣味组致力于利用 XDP、RDMA、VIRTIO 等新高效通信技术,联合软硬件一体化的思维,打造高性能网络协议栈,晋升云计算时代数据中心利用的网络的性能。 01 本月 SIG 整体停顿12 月高性能网络 SIG 的次要工作聚焦在 Anolis OS 通用内核网络、SMC 和 virtio 上。以下为要害停顿: 龙蜥社区高性能网络 SIG 提出的 virtio 设施:virtio-ism 的 spec 提交到 virtio 社区,相应的设施 ID 通过 virtio TC 的投票曾经进入 virtio 标准。龙蜥社区高性能网络 SIG 提出的 SMC loopback 设施的反对的 RFC 提交到 linux 社区探讨。ANCK-5.10 行将公布 013 版本,SMC 做了大量的优化和修复。02 Anolis OS问题修复12 月 ANCK 网络方向共计修复 33 个 CVE(蕴含一个高危 CVE-2022-4378),笼罩 tcp/netfilter/ip/tc/vsock/wifi/bluetooth/can 等模块,CVE 列表:CVE-2022-42895、CVE-2022-3435、CVE-2022-3633、CVE-2022-3535、CVE-2022-0812、CVE-2022-39190、CVE-2022-42719、CVE-2022-1015、CVE-2022-42895、CVE-2021-4203、CVE-2022-1204、CVE-2022-1012、CVE-2021-33135、CVE-2022-1012、CVE-2022-1966、CVE-2022-1966、CVE-2022-1679、CVE-2022-3028、CVE-2022-3028、CVE-2022-2663、CVE-2022-3567、CVE-2022-3586、CVE-2022-41674、CVE-2022-42722、CVE-2022-42721、CVE-2022-42720、CVE-2022-3566、CVE-2022-3521, CVE-2022-3524、CVE-2022-3435、CVE-2022-3564、CVE-2022-3625、 CVE-2022-4378。 性能加强PR908 5.10 内核 ipvs 反对通过 run_estimation sysctl 敞开 estimation。03 SMC版本公布12 月 SMC 最新稳定版将随着 ANCK 5.10-013 公布。本次公布的版本将包含如下更新: ...

January 11, 2023 · 2 min · jiezi

关于高性能:高性能存储SIG月度动态DSMS开始适配Anolis-OS将在ANCK-510中支持ublk-龙蜥-SIG

高性能存储技术 SIG 指标:高性能存储技术趣味组致力于存储栈性能开掘,以后次要聚焦内核 io_uring 技术优化异步 IO 性能,应用长久化内存晋升业务单老本性能,容器场景存储技术优化等课题。冀望通过社区平台,打造规范的高性能存储技术软件栈,推动软硬件协同倒退。 01 本月 SIG 整体停顿本月共合入 Anolis 主线 PR 16 个,蕴含多个次要组件的个性加强、CVE 修复,以及 bugfix 等。 继 11 月在 ANCK 5.10 加强 erofs over fscache,反对上游新个性 shared domain 和 failover 后,12 月在 ANCK 4.19 也反对这两个新个性,为 ANCK 4.19 erofs over fscache 镜像减速计划上生产环境铺平了路线。 xfs inode extent-to-btree 转换失败问题社区主线计划仍在探讨中,xfstests 用例更新已合入主线。 DSMS 开始适配 Anolis OS 的适配工作,我的项目文档同步开始更新至 SIG。 02 我的项目具体停顿1、Anolis OScve:CVE-2022-33981 / CVE-2022-1836(PR552) erofs:misc bug fixes for RAFS mode(PR967),cachefiles: add missing lock protection when polling(PR1004),support shared domain feature on ANCK 4.19(PR974),support failover feature on ANCK 4.19(PR975),cachefiles: fix potential NULL in error path(PR1023) ...

January 6, 2023 · 2 min · jiezi

关于高性能:存储性能加速引擎之预读

程序预读(prefetch,在Linux中也称为预读,read ahead)是一种用于晋升程序读性能的技术,用于放大存储设备和应用程序之间微小的效率差距。Linux内核在通用预读框架中执行程序文件预读,它被动拦挡VFS层中的文件读取申请,并将程序的申请转换为异步预读申请,为行将到来的申请引入数据块,并在大块中进行。 I/O预读背景带宽和提早是I/O性能的两个次要衡量标准。对于这两个规范,在磁盘、内存和处理器之间存在着微小的性能差距。例如,当今的DDR5内存的实践带宽通常为40GB/s以上,响应工夫为纳秒级,而一个希捷(R) 7200转SATA磁盘的最大继续传输速率为200MB/s,均匀寻道工夫为5ms。两者之间存在的性能差距,带宽相差数百倍,提早相差10^7倍。 I/O提早是影响磁盘I/O性能的一个次要因素,能够用一个简略的I/O模型来近似。典型的磁盘I/O有两个步骤:首先,磁头挪动到数据轨道,期待数据扇区在其下旋转;其次,开始数据读取和传输。相应的有两个操作工夫:均匀拜访工夫,典型值为8ms;数据传输工夫,大抵等于I/O大小和磁盘继续传输速率的乘积,对于目前的一般磁盘(HDD),均匀传输速率为200MB/s。 在一个残缺的I/O周期中,只有数据传输工夫能力真正利用磁盘数据通道。I/O大小越大,在数据传输上破费的工夫就越多,相对来说,在搜寻上节约的工夫就越少,因而咱们能够取得更多的磁盘利用率和I/O带宽。下图反映了上述磁盘I/O模型和代表性参数值的相关性。I/O预读的次要目标是将图中磁盘的工作点从左向右挪动,从而取得更好的I/O带宽。 应用较大的I/O大小能够更好地利用磁盘 随着数字信息的激增,提前读算法依然在持续施展重要作用。固态磁盘极大地缩小了耗时的寻道工夫,然而依然存在不小的拜访提早。特地是SSD存储器基本上是由许多并行操作的芯片组成,较大的预读I/O将可能利用并行芯片的劣势。从SSD存储取得齐全性能所需的最佳I/O大小与旋转介质不同,并且因设施而异。因而,即便是在SSD上,I/O预读也很要害。 总之,有程序拜访模式的中央,就有I/O预读的市场。无论是基于机械磁盘还是固态磁盘。 I/O优化和预读从利用角度,目前业界有四种根本的I/O优化策略: 防止从存储设备上IO。最好的抉择是完全避免或尽可能减少存储介质拜访频率。这能够通过文件内存缓存来实现。预读擅长于将小的读申请转换为大的读申请,这无效地缩小了存储介质拜访的数量,从而升高了昂扬的查找老本。具体的例子是家喻户晓的Linux VFS(虚构文件系统)挂载选项noatime和relatime,用于打消由mtime更新触发的不必要的向存储设备的写操作。 程序化。程序拜访能反对程序预读并最大化磁盘性能利用率。对于并发程序拜访,预读在将交织的小I/O聚合为大I/O方面起着至关重要的作用。对于非程序拜访,通过应用智能磁盘布局治理、告诉式预读、I/O排队和调度等技术,将磁盘寻址提早最小化。举几个通过程序化进行性能优化的例子:SCSI磁盘的TCQ(标记命令队列)和SATA磁盘的NCQ(本机命令队列);ext4/xfs的提早调配和预调配;xfs中的回写集群等。 异步化。异步拜访通过流水线化处理器和磁盘操作,暗藏应用程序的I/O提早的形式来进步I/O效率。AIO、非阻塞I/O、回写和预读是异步I/O的常用工具。 并行化。聚合多个磁盘的容量和带宽可晋升整体IO性能曾经是分布式存储的共识。在传统的RAID层之外,以zfs和btrfs为例的新兴文件系统能够本人治理大型磁盘池。另一方面,在SSD外部应用了设施级并发解决。例如,英特尔在其SATA固态硬盘中开拓了10个并行的NAND闪存通道,可提供高达500MB/s的读取带宽和50000以上的 IOPS。并发I/O申请和并行数据传输是上述并行零碎的I/O吞吐量的要害。被动预读在这个畛域中扮演着重要的角色:它们通常须要大型的异步预读I/O来填充并行数据通道。 预读有助于实现I/O异步和并行 显然,预读在四种I/O优化策略中都扮演着重要的角色。预读能够为应用程序、存储设备和存储池,甚至处理器资源带来性能改善。通过屏蔽较高的I/O提早,应用程序能够运行得更快更晦涩。大块I/O能够更好地利用磁盘,能够更好地并行化,也有助于摊薄整个I/O门路的解决开销。 预读的根本办法预读算法能够是预测式的,也能够是利用被动告诉式的。预测式算法试图基于过来的I/O预测将来将被拜访的I/O块,自动自发地执行预读决策,对下层利用是通明的,这种形式对算法的要求较高,存在命中率的问题。最胜利的一种做法是程序预读,这始终是操作系统的规范实际。新型的预测式预读能够基于灵便的AI算法或统计,晋升预读数据的命中率。 利用被动告诉式预读,应用来自各个应用程序对于其将来I/O操作的提醒,提醒能够由应用程序显式地管制。 缓存是另一种普遍存在的性能优化技术。共享预读内存和缓存内存是一种常见的做法,这为预读和缓存之间的交互关上了大门。 预读的设计衡量预读大小对I/O性能有很大影响,被认为是次要的预读参数。在确定预读大小值时,必须在吞吐量和提早之间进行衡量。个别的领导准则是:预读的大小应该足够大,以提供良好的I/O吞吐量,但同时也要避免预读块过大,从而防止不必要的过长的I/O提早。 不同的存储设备、磁盘阵列配置和工作负载具备不同的最佳预读IO大小。某些应用程序(如对I/O提早不敏感),能够平安地应用较大的预读大小;其余利用可能对I/O提早敏感,这时应该应用更激进的预读I/O大小。 除了吞吐量和提早之间的衡量之外,预读命中率是另一个常见的设计思考因素。为了放弃较高的预读命中率,须要应用自适应预读大小。这是因为,即便咱们确信应用程序正在进行程序读取,咱们也无奈预知程序读操作还会继续多久。例如,应用程序可能从头到尾读取一整个文件,而另一个应用程序只拜访这个文件中的前两个page。 侥幸的是,常见的I/O行为大多是能够推断的。首先,行将要读取的page数(不思考文件完结的状况)和已拜访的page数通常是正相干的。其次,读取的大小越大,反复的可能性就越大。因为较大的预读大小意味着研发人员要对预期的长时间预读进行优化。依据以上两条教训规定,能够预计以后拜访模式反复的可能性,并据此计算自适应预读大小。 进步预读命中率是预读算法设计的一个次要指标。低命中率意味着内存和磁盘I/O资源的节约,这样节约是昂扬和不可承受的。传统的预读算法偏向于只对严格的程序读取进行预读。它们对预读大小采纳激进策略,并采纳程序检测,以寻求较高的预读命中率。 然而,随着计算机硬件的疾速倒退,咱们也面临着新的束缚和要求。内存和磁盘的带宽和容量都有了很大的进步,但磁盘拜访工夫依然很慢,并且越来越成为I/O瓶颈。因而,预读命中的益处就减少了,它减少了预读的重要性,意味着底层存储应该更被动地进行预读。 因而,即便就义肯定的预读命中率,它也能够进步总体I/O性能。工作负载的预读命中率取决于IO模式识别和这种特定模式运行时长评估的准确性。 YRCloudFile Linux客户端预读YRCloudFile Linux客户端预读,对接了Linux内核预读机制,专门针对程序读的性能进行优化。 下图为用FIO测试工具,对小文件程序读、大文件程序读场景进行测试,在Linux客户端预读开启和敞开状况下,不同内核版本的不同性能体现。 预读对4K/1M程序读性能的影响 从理论测试数据看,YRCloudFile Linux客户端预读性能开启与否,在不同内核版本的下,程序读性能晋升2.5-20倍不等。 YRCloudFile Linux客户端预读机制很好地解决了文件程序读速度慢、拜访提早高的问题,帮忙AI利用,影视内容制作等利用轻松应答海量文件程序读拜访的性能挑战。 不可能有一种技术满足所有的需要,业务软件是单线程还是多线程、IO特点是一次写屡次读还是一直追加写、是程序读还是随机读等等。焱融技术团队通过一直的与客户的交换、碰撞,对不同场景,不同类型的利用进行剖析,一直推出新的性能,让YRCloudFile更趋于成熟,帮忙用户成就大数据与人工智能时代的企业外围竞争力。 参考资料1.https://bootlin.com/pub/readahead/doc/ols2007-readahead-paper.pdf\2.https://engineering.purdue.edu/~ychu/publications/tc07_pref.pdf\3.https://pdfs.semanticscholar.org

August 11, 2021 · 1 min · jiezi

关于高性能:EDA最强攻略如何为EDA选择存储

当今数字芯片技术飞速发展,数字半导体芯片曾经渗透到社会生存的各个领域,从生产电子产品、工业自动化设施到航天技术都能看到半导体芯片技术的身影。国家在芯片技术上的投入和器重水平也晋升到策略层面,芯片设计制作正在成为新一代的国之重器。 01 EDA是什么?EDA 是芯片之母,是芯片产业皇冠上的明珠,是集成电路设计最上游、最高端的产业。EDA(Electronic Design Automation)是电子设计自动化的简称,EDA的倒退经验了CAD、CAE等阶段,随着集成电路技术倒退,EDA 越来越被业界予以“芯片设计软件工具”的代名词。2018 年寰球集成电路产值近 5 千亿美金,中国集成电路进口金额超 3 千亿美金,EDA 是集成电路产业产能性能源头,从仿真、综合到幅员,从前端到后端,从模仿到数字再到混合设计,以及前面的工艺制作等,EDA 软件工具涵盖了 IC 设计、布线、验证和仿真等所有方面,是集成电路产业的“摇篮”。 利用EDA工具,工程师将芯片的电路设计、性能剖析、设计出IC幅员的整个过程交由计算机主动解决实现。在没有EDA工具之前,设计电路要依附手工,但对于大规模集成电路有上亿晶体管的设计用手工几乎是不可能的。能够说有了EDA工具,才有了超大规模集成电路设计的可能。 硬件描述语言(HDL-Hardware Description Language)是一种用于设计硬件电子系统的计算机高级语言,就是用软件编程的形式来形容简单电子系统的逻辑性能、电路构造和连贯模式。硬件描述语言是EDA技术的重要组成部分,是EDA设计开发中很重要的软件工具。 目前国内外的EDA软件次要供应商包含Synopsys、Cadencen、Mentor Graphics、华大九天、芯愿景、芯禾科技等,EDA利用涵盖了通用、专用芯片的设计制作等场景。 02 EDA工作流程和IO特点EDA典型的工作流程包含了以下几个阶段: —前端设计阶段(逻辑设计) 设计规范性能验证合成逻辑验证—后端设计阶段(物理设计) 布局和布线动态时序剖析物理验证—生产制作 流片这些阶段相互作用以造成EDA的数字设计流程: 在前端设计阶段,工程师通过将VHDL等源文件编译为芯片模型来实现芯片设计,而后通过在大型计算集群中散发工作来验证芯片设计。调度程序将仿真和模仿工作散发到不同的计算节点上,这些计算节点通过共享文件系统来拜访后端的芯片模型。在整个前端设计过程中,工程师须要不断改进设计,整个过程须要屡次迭代,因而,前端设计阶段会生成大量仿真工作。创立、调度和执行build和仿真作业的效率,决定了将芯片推向市场所需的工夫。 当大量作业并行运行时,会产生大量IO负载,EDA应用程序须要读取并编译数百万个小的源文件,用以构建和模仿芯片设计。后端的共享文件存储管理各种芯片设计目录和文件,以便不同的用户、脚本和应用程序能够拜访数据。 在前端验证阶段,数据拜访模式往往是随机的,并带有大量小文件。前端工作负载须要极高的并发性,从而满足大量作业并行拜访的须要,这些作业将生成大量随机拜访的IO。此外,因为随同着大量小文件拜访,这个阶段对元数据拜访性能是极大的考验。 从一些公开的数据上看,半导体芯片设计过程中,对元数据调用(包含GETATTR,ACCESS和LOOKUP)占所有调用的85%以上,而“读取”和“写入”不到15%。对于传统NAS阵列或单MDS的分布式文件存储架构而言,将会面临较大的挑战。 在后端设计和验证阶段,数据拜访模式将次要以程序拜访为主。后端设计阶段的工作负载往往由较少数量的工作组成,这些工作具备程序的IO拜访特点,并且运行工夫较长。在后端设计阶段的工作工作,次要考验后端文件系统的并行拜访带宽。 联合前端设计和后端设计两个阶段的IO拜访特点来看,EDA芯片设计和仿真过程中,对元数据和数据,小文件IOPS及大文件程序拜访带宽,都有极高的要求。这一过程与大型的程序(如Linux内核)并行编译过程中产生的IO特点类似。 芯片设计阶段波及的所有作业的输入都可能产生TB级的数据。只管有些数据是临时性(如时序仿真等)的,但这些数据依然须要最高级别的存储性能,能力对芯片设计整个流程进行保障。 半导体行业巨头Intel公布的一份报告显示,在过来10年,Intel用于半导体设计和制作的外部基础设施投入中,计算和存储的CAGR达到30%以上,并且没有缩小任何IDC站点。 只管英特尔在EDA场景中可能独占鳌头,但咱们从行业数据中能够看到,绝大多数的半导体设计企业对基础设施的投入年增长率都超过20%。 03 如何满足EDA场景的存储需要文件存储主导 在存储系统中,EDA工作流都是将大量的数据通过文件系统进行共享和拜访,并且在零碎中生成深层的目录构造,使得文件系统在EDA存储系统中占主导地位。 YRCloudFile高性能分布式文件存储,具备卓越的性能、灵便的程度扩展性、海量小文件存储能力等个性,能够满足EDA利用中大规模计算集群以文件形式并行拜访数据的需要。 超高并发性能 大多数EDA工作流须要极高的并发性,YRCloudFile可能满足数千高性能Linux计算群集的并发要求,提供远高于规范NAS协定(NFS、SMB)的并发能力。 EDA工作负载中产生的大量元数据操作,能够通过YRCloudFile灵便扩大的元数据服务进行满足和匹配,解决了EDA负载对元数据性能的要求。 灵便弹性扩大 EDA工作负载在执行过程中,会产生TB级的数据或两头后果,YRCloudFile分布式文件系统采纳分布式架构,将所有磁盘进行对立治理,提供对立命名空间,反对容量和性能的程度扩大,可按需实现疾速扩容,满足EDA对大容量存储的需要。

August 2, 2021 · 1 min · jiezi

关于高性能:如果说数据是推动自动驾驶的原动力那么存储扮演什么角色

近年来,互联网、IT技术正在带动整个汽车产业迎来粗浅改革。在此之前,信息技术帮忙汽车行业实现了设计、供应链、营销等体系的数字化和互联网化。在传统汽车厂商进行数字化转型的同时,新能源汽车、车联网、主动驾驶等新技术衰亡,特斯拉、蔚来、现实、小鹏等新厂商涌入汽车制作行业,汽车行业竞争愈发强烈,十年内实现全自动或“无人驾驶”汽车,成为了传统汽车制造商、新兴汽车制造商、业余主动驾驶解决方案供应商独特抢夺的新的技术制高点。 旨在加强乘客、车辆和路线安全性的主动驾驶,对汽车设计和制作过程的IT基础设施(尤其是存储系统)提出了革命性的新要求。 01 主动驾驶数据处理流程主动驾驶是人工智能,尤其是视觉辨认及自动化在汽车制作及运行畛域的细分利用。主动驾驶与视觉辨认的数据处理流程有肯定水平的相似之处,都是通过对海量数据的收集、特征分析、训练、验证,最终造成一个高度精准的数据处理模型,用于应答理论路线中实时变动的路况信息,从而实现主动驾驶。 数据收集 AI外围算法是主动驾驶的发动机,数据是AI引擎最不可或缺的燃料。测试车辆上携带的摄像头、声纳、雷达、LIDAR、GPS以及更先进的传感器设施,能够捕捉大量包含视频、图像、天气信息等信息在内的原始非结构化数据。 Figure 1: 开发和验证主动驾驶的典型数据处理流程 模型训练和开发 数据准备就绪后,主动驾驶工程团队应用来自所有传感器、GPS、天气、路线、环境等多因素交融的数据,提取数据特色,并联合这些数据特色下的正确行为,通过深度学习和迭代,取得主动驾驶中的模型和参数,造成初步的主动驾驶模型。 验证和测验 工程师通过在软件环境、汽车理论硬件环境上构建充沛的测试用例,对主动驾驶模型进行全方位仿真和理论测试,以期涵盖所有可能的路面状况。并将电子管制单元ECU所做的判断和决策与测试司机实际操作进行比照,二者差别视为主动驾驶模型潜在的bug,进而对模型进行修改。 归档 通过最终验证后,工程团队将主动驾驶的测试数据移至低成本的归档存储中。归档数据必须满足法定的监管要求,这些已经应用的测试数据可能须要保留数十年,以防在召回的状况下,对数据进行从新验证和计算。 02 主动驾驶数据处理面临的挑战主动驾驶数据处理过程须要PB级的高性能存储。随着数据量的增长,传统存储架构的局限性和有余将被放大,越来越难以漠视。 爆炸性数据增长 因为安全性对主动驾驶零碎至关重要,因而主动驾驶对设计制作过程中所经验的测试数据量要求很高,随着主动驾驶水平的增高,所必须的测试数据需要会成倍增加。在汽车工程师协会(SAE)定义主动驾驶的六个级别中,SAE 2-3级通常要求测试车辆累计收集20万至100万km的实在路测数据,用于主动驾驶软件开发和验证。SAE 4级将须要200万+公里的数据,随着行业向SAE 5级(全自动驾驶汽车)倒退,这一数据需要将减少到约2.4亿公里。 采集、寄存并剖析这么多里程的传感器数据,对于主动驾驶中的存储系统而言是微小的挑战。以一个典型的SAE 2级主动驾驶我的项目为例,以75km/h的平均速度收集20万km里程,将生成2,666个小时的数据,单个传感器须要大概3.8PB的存储空间,而主动驾驶测试车辆中须要有多个传感器。SAE 3级主动驾驶我的项目须要收集百万公里的数据,意味着传感器将生成19.3PB的原始数据。 大规模环境下的拜访性能 随着无人驾驶汽车向SAE更高级别倒退,存储的架构必须可能满足一直增长的性能需求。主动驾驶开发和验证零碎须要存储系统在确保存储容量能无缝扩大的同时,各个数据处理流程中在加载数据时,不存在加载速度瓶颈。 数据筹备阶段波及十分密集的数据预处理,用于读写原始视频数据和传感器二进制文件,这对存储系统提出了高带宽要求。而在训练过程中,AI训练须要解决海量的小文件(视频或图片),为了保障训练GPU处于满负荷运行的状态,存储系统须要提供足够的小文件拜访带宽和足够低的延时。此外,主动驾驶训练集群通常由几十甚至数百台GPU服务器组成,确保大规模的计算集群对数据的并发拜访晦涩,也是对存储系统的必要要求。 海量数据存储的总体老本 只管对主动驾驶数据保留的年限尚未造成国际标准,然而大多数汽车制造商要求主动驾驶数据必须保留数十年。如何高效、低成本地保留这些海量数据,同时保障下层利用无感知、高性能地拜访,是汽车制造厂商在存储架构面临的又一挑战。 03 如何应答主动驾驶数据存储挑战YRCloudFile是焱融科技面向云+ AI 时代的新型分布式存储产品,其卓越的性能、灵便的程度扩大能力能帮忙主动驾驶、人工智能等业务显著晋升效率;通过智能分层技术,使数据生命周期失去更精细化的主动治理,极大地升高数据存储老本。 YRCloudFile横向扩大架构非常适合主动驾驶开发和验证场景,可在一直扩大的单个命名空间中提供数百PB级的存储容量。YRCloudFile可通过10/40/100GbE或InfiniBand网络进行连贯和横向扩大。YRCloudFile可通过纯软件形式,部署在规范服务器上,缩小汽车制造商对传统存储厂商特定存储设备的依赖。 目前焱融科技已胜利与科大讯飞、依图等国内出名AI公司实现单干,并且在2020年获取了国内软件定义存储首个海内客户,实现了产品的国际化。

July 30, 2021 · 1 min · jiezi

关于高性能:CIOCTO必读-数字转型时代企业存储支出知多少

企业的CIO、CTO们除了关注业务撑持、技术演进之外,还有关怀一个永恒的话题:IT老本优化和投入产出比。对于这个话题,咱们最近在Gartner上读到一篇很有意思的报告,急不可待分享给大家《IT Key Metrics Data 2021 Infrastructure Measures — Storage Analysis》。 随着企业和组织进行数字化转型,IT老本治理将变得越来越重要,Gartner的这篇报告在2020年从寰球范畴内做了用户考察,蕴含了存储老本效率和存储反对人员的生产效率基准方面的均匀数字,这些调查结果能够作为CIO、CTO们思考老本治理时的一部分根据。考察的企业所治理的数据量散布如下图所示: Source:Gartner (2020)这些客户所应用的存储架构,横跨了不同的存储档次(包含DAS,网络存储,近线和离线存储)。报告所钻研的指标包含了老本效率和运维生产力的平均值,这些指标以存储的裸容量TB数为单位。 每TB存储裸容量的每年老本这个指标揭示了客户整体存储环境的绝对老本程度。在具体业务场景、SLA、存储利用率、企业内应用的整体存储计划以及整体存储管理策略不同时,这个老本程度有较大差别,CIO、CTO们应该依据本人的理论要求进行参考。 Source:Gartner (2020) 能够看到,在被考察企业内,大多数企业的每TB每年存储开销在416-1048美元,均值为652美元,环境规模越小,均匀开销越高(<3PB的均匀开销为1141美元,3-10PB的均匀开销为671美元,>10PB的均匀开销为484美元)。 企业在负责存储的全职工程师的均匀开销通过考察,企业在负责存储的全职工程师均匀开销为125美元/TB,该老本因工作地区、教训和专业知识而有所区别。大多数企业用于存储全职工程师的开销为每TB111-168美元,治理数据规模越大,用于存储工程师的每TB均匀收入越高,<3TB的环境均匀为117美元,3-10PB均匀为121美元,>10PB均匀为134美元。 Source:Gartner (2020) 存储全职工程师外包比例负责存储的企业内人员和外包工程师的比例为92:8。很多企业反馈,通过外包,能够放弃IT的灵活性和敏捷性。然而,如果企业没有造成很好的知识库、知识产权和流程治理,长期应用外包反而会减少老本,这也很好解释了企业内应用存储外包工程师的比例较低的起因。 Source:Gartner (2020) 每个全职的存储工程师治理的裸容量数量理解存储工程师治理数据量的均匀效率,对于建设“适合规模”的高效数据管理团队具备重要意义。存储工程师的管理效率与存储架构的复杂度、存储产品服务的反对有严密关系。 Source:Gartner (2020) 论断通过这篇报告,能够看到在企业外部,治理存储的人力老本还是十分高的,通过晋升存储工程师治理的数据规模,能够无效缩小数据管理团队的人力投入,这时候,存储软件和存储系统就起到要害的作用了。**在应用YRCloudFile的理论客户中,通过咱们的产品以及全面的服务反对,客户的单个存储工程师治理的数据量超过了30PB,这为客户升高总体的数据管理老本起到了十分大的作用。** 心愿这篇报告的解读能帮忙CIO、CTO们更好理解业界在数据存储上的投入和老本散布,进而无效晋升存储架构的投入和产出。

July 5, 2021 · 1 min · jiezi

关于高性能:RDMA打造存储利器

导读在数据一直增长的时代,数据的疾速解决对信息的无效利用至关重要。目前数据中心无论对存储读写带宽还是提早都有极致的要求,例如在线搜寻、挪动、游戏,视频直播畛域都须要以十分快的速度响应用户的申请,数据中心内任何一环导致提早,都会对用户体验产生极大的影响。 在高性能计算畛域,RDMA技术很早就曾经失去了验证,并且进行了肯定范畴的利用。随着大数据与人工智能的高速倒退,RDMA技术也将在企业内失去推广。 走进RDMA世界在TCP的网络世界里,收到一个网络数据包,要通过网络层和传输层,最初才可能被应用层解决。网络层和传输层会耗费CPU资源,因为CPU还要解决其余的计算工作,这一方面使得网络传输性能收到影响,同时也会影响其它计算工作的性能。此外,在进行传统的TCP协定解决时,所有的数据都须要在用户缓冲区与内核缓冲区之间进行屡次复制,须要耗费极大的内存带宽,同时带来肯定的延时。 RDMA技术就是为了升高网络传输中服务器端数据处理的提早而产生的。服务器网卡收到一个数据包,在网卡硬件上就能够实现网络层和传输层的解析,间接把数据传递给应用层,不须要CPU的干涉,从而开释内存带宽并缩小CPU耗费,进而晋升利用零碎性能。 为了无效利用RDMA技术的高带宽和低提早劣势,焱融云存储团队调研了反对RDMA技术的三种不同的网络协议: Infiniband(IB): 应用RMDA专用网卡与交换机,从硬件级别全面反对RDMA,保障传输可靠性RDMA OVER Converged Ethernet(RoCE):基于现有的以太网实现RDMA,底层网络包头部是一般的以太网包头,下层网络包头部是Infiniband包头,因而RoCE只须要专有的反对RoCE网卡,就能够在规范以太网基础架构(交换机)上实现RDMAInternet Wide Area RDMA Protocol(iWARP): iWARP间接将RDMA实现在了TCP上,这容许在规范以太网基础架构(交换机)上应用RDMA,这种计划须要配置反对iWARP的非凡网卡 比照三种协定实现,Infiniband性能最好,但须要额定配置较多的专用设备,零碎整体降级老本较高;RoCE只须要替换专用的网卡设施,在获取性能劣势的同时,将老本管制在肯定范畴;iWARP老本最低,但与TCP臃肿的协定栈相关联,性能上晋升无限。 焱融云分布式存储完满反对RDMA要实现反对RDMA网络的通信形式,须要应用RDMA verbs API(OFED 提供了蕴含libibverbs和RDMA-CM等用户态库函数)编程,对原有的通信模块进行改良,最终实现的网络传输模块既能兼容最后的TCP通信形式,又能够同时向客户端提供RDMA连贯服务。 焱融云技术团队在焱融高性能分布式存储里实现了RDMA传输的性能,反对通过InfiniBand,RoCE或TCP来实现客户端到存储服务端的数据交互,以及存储集群服务器之间的数据传输。 性能大幅晋升在性能上,咱们采纳Mellanox connect-X系列网卡以及Mellanox交换机基于以太网物理链路测试了RoCE的性能。从测试后果来看,绝对于TCP/IP通信协定, 小文件读写性能有了质的晋升。能够看到,基于RDMA技术的读写性能比基于一般交换机TCP传输的性能最高可晋升4倍。尤其是在小数据包的读写上,其性能劣势更为显著。 以上数据是基于RoCE形式实现的RDMA传输,如果应用专用的InfiniBand设施,其性能还会进一步晋升。有了RDMA这个利器,焱融云分布式存储在高性能计算、AI人工智能等畛域将更具劣势,满足用户在这些业务中对性能的更高要求。 在一个又一个的技术挑战背后,在谋求卓越的路线上,焱融云从未止步。

June 18, 2021 · 1 min · jiezi

关于高性能:针对-MySQL-IO-特点进行的存储优化揭秘

性能优化,是存储工程师们永远的谋求,在咱们看来,除了调整存储架构、优化IO门路,能对利用做出有针对性的优化,也是十分重要和有意义的事件,这意味着,除了要理解存储自身,还须要对下层利用或中间件有足够的意识。这次,咱们就来看看 MySQL 的 IO 特点和存储针对 MySQL 的优化思路。 MySQL 架构组件阐明MySQL 及其连续的 MariaDB 是目前市场上最风行的关系型数据库管理系统,在很多利用场景中,MySQL 都是用户首选的 RDBMS(Relational Database Management System关系数据库管理系统)。 MySQL大抵包含如下几大根底模块组件: MySQL客户端连贯组件(Connectors)系统管理和管制工具组件(Management Service & Utilities)连接池组件(Connection Pool)SQL组件( SQL Interface)解析器组件(Parser)查问优化器组件(Optimizer)缓存组件(Caches & Buffers)存储引擎(Pluggable Storage Engines)文件系统(File System) InnoDB 存储引擎存储引擎在 MySQL 的体系架构中位于第三层,负责对 MySQL 中的数据进行存储和提取,是与文件打交道的子系统,它是依据底层提供的文件拜访层形象接口定制的一种文件拜访机制,这个机制就叫作 MySQL 存储引擎。从 MySQL 5.5 开始,默认采纳 InnoDB 作为存储引擎。因而,优化底层存储对 MySQL 业务的的性能,就要从理解和剖析存储引擎如何与底层的存储系统进行交互开始。 下图是官网的 InnoDB 引擎架构图,InnoDB 存储引擎次要分为内存构造和磁盘构造两大部分。 InnoDB 磁盘次要蕴含 Tablespaces、InnoDB Data Dictionary、Doublewrite Buffer、Redo Log和 Undo Logs。Redo Log和 Binlog 是 MySQL 日志零碎中十分重要的两种机制,本文次要谈一下对 Redo Log 和 Binlog 进行的剖析及存储优化。 ...

June 16, 2021 · 1 min · jiezi

关于高性能:Serverless-over-Storage

什么是 Serverless?从英文的字面意思,跟 Serverful 比照,看起来如同是无服务器?但这显然不可能,毕竟无论如何,任何的程序最终都要在机器上执行。 要想了解 Serverless,咱们有必要回顾一下咱们通常的 Serverful 服务运行形式。 从 Serverful 到 Serverless 的演变物理机的应用形式仿佛素来都没有变动,无论是 10 年前,还是当初。典型的流程就是硬件洽购、拆箱、上电、做 Raid、插网线、调整交换机、做全面的配置查看,顺便还得查看一些内存、硬盘、固件的品质等等,因为说不定跑两天就挂了。整个环境上线,就是体力活。 虚拟化感触到了苦楚,就会促使工程师们去扭转。 曾经辛苦地筹备了硬件,当一个开发小哥须要一台机器的时候,作为 IT 管理人员,难道还要再次反复这个过程? 能够说虚拟化解放了 IT 管理者,通过在一台物理机上运行更多的虚拟机,晋升了资源利用率以达到更好的财务收益之外,虚拟化还给部署以及运行一台 “机器” 提供了极大的便当。 通过操作系统虚拟化一套硬件,再联合虚拟机模板镜像的机制,意味着在物理机上创立和挪动虚拟机也只是分分钟的事件而已。 以往的机器上线沉重、反复的膂力工作隐没殆尽。 云单机的虚拟化无奈满足大规模的场景,包含对调度,网络虚拟化的需要等等。此时,云横空出世,你既能够抉择私有云,也能够抉择本人搭建公有云,如 OpenStack。 甚至你都不须要关怀底层的硬件,只有是通用的架构即可,操作系统、网络、存储等均能够自动化装置、扩大进去。 然而,即便在云时代,应用软件的运行形式也没有变动,无非是软件看到的是一个虚构的硬件环境而已。对于使用者而言,不同的一点只是为软件筹备根底环境的过程变快了。 容器化只管虚拟化充分利用了资源,极大的进步了便利性,但技术倒退的车轮滚滚向前,工程师们总是得寸进尺。虚拟化仍旧存在比拟 “重” 的问题,镜像太大,多个虚拟机根本都蕴含反复的操作系统,物理机上无奈运行过多的虚拟机。 容器化,尤其是 2017 年以来 Kubernetes 的风行,又一次带来了扭转。容器只是一个轻量级的过程,而软件提供者只有保护一个 Dockerfile , 生成一个小得多的镜像,在容器平台部署即可。利用的上线不再关怀依赖、抵触,以及诸如 “我这里运行没问题,必定是你的环境问题” 等等困扰。 Serverless,更容易了解的一个名字是 functions-as-a-service,我想这样起名的一个初衷是让你不再关怀服务器,也不须要思考他们,只有执行你的代码就好。 构想一下即便是在容器化加持的状况下,利用开发者仍然要关注诸如 RestAPI 框架如何搭建、工作流怎么解决、压力来了怎么进行负载平衡、消息中间件如何解决等问题,有可能还要关怀平安降级、破绽扫描这些与业务逻辑关联不大的琐事。 2019,UC 伯克利大学发表了一篇“ Cloud Programming Simplified: A Berkeley View on Serverless Computing”的论文(https://www2.eecs.berkeley.ed... 论文中有一个很形象的比喻,形容如下: In the cloud context, serverful computing is like programming in low-level assembly language whereas serverless computing is like programming in a higher-level language such as Python. An assembly language programmer computing a simple expression such as c = a + b must select one or more registers to use, load the values into those registers, perform the arithmetic, and then store the result. This mirrors several of the steps of serverful cloud programming, where one first provisions resources or identifies available ones, then loads those resources with necessary code and data, performs the computation, returns or stores the results, and eventually manages resource release. The aim and opportunity in serverless computing is to give cloud programmers benefits similar to those in the transition to high-level programming languages. ...

June 1, 2021 · 2 min · jiezi

关于高性能:支持多套对象存储冷热数据分层又添新功能

传感器、爬虫、激光雷达、摄像头等前端设施和软件,以及大量用户,每天都在往企业外部输出大量非结构化数据,为了保留和保护好数据这个新型的生产因素,企业每年领取用于非结构化数据存储上的老本也在快速增长。 对于大多数企业用户而言,数据具备阶段性热点拜访的特点,超过肯定工夫后,80% 以上的数据逐渐转冷。热数据的拜访性能要求较高,通过肯定工夫周期之后,热数据逐步变冷,利用拜访这些冷数据的频率会变得很低。 如何解决海量非结构化数据存储及拜访性能,同时兼顾企业用户对非结构化数据的整体应用老本,是 CIO 们面临的次要问题。 YRCouldFile 文件存储系统的智能分层性能,能够依据用户须要,自定义冷热数据策略,冷数据主动流动至低成本的私有云对象存储并实现压缩,向上依然为业务提供规范的文件拜访接口,并放弃目录构造不变,数据在冷热数据层之间流动对业务齐全通明,能无效地对老本和性能做好均衡。 近期,焱融科技公布了 YRCloudFile 新版本,该版本对智能分层性能做了全面的降级,将分层策略细粒度到目录级别。例如目录 A 的冷数据下刷到阿里云 OSS,目录 B 的冷数据下刷到AWS 的 S3,目录 C 的冷数据下刷到本地对象存储。 细粒度的分层策略有什么益处呢? 冷数据定义更灵便 家喻户晓,私有云的对象存储的应用老本,有三局部组成,存储容量费用、API 调用费用、网络流入流出费用。很多时候,API 调用或者网络流入流出费用,往往比存储容量的费用要大的多。 数据趋冷是个逐渐的过程,在数据趋冷的过程中,有可能还是会被拜访,这部分费用加起来也是一笔收入。YRCloudFile 目录级智能分层性能推出,就能很好的解决这个问题。它能帮忙用户对冷热数据的辨别更细化,对于趋冷数据,寄存入本地对象存储,这部分数据可能还会有大量的拜访;对于更冷数据,能够设置目录连贯至有限容量的私有云对象存储上以作归档,这部分数据根本不再被调用。 So easy,不同利用,不同策略,不同对象存储厂商 对于数据中心而言,不同的利用,对冷数据的定义是不同的,对数据寄存的要求也不同。例如,数据安全要求高的冷数据要求寄存在本地;数据安全要求低的数据能够寄存在私有云。又如,训练数据在被频繁的训练 2 周之后就不再拜访,趋冷;训练后果数据则会在很长的时间段内始终须要频繁拜访。 基于不同利用类型以及不同数据安全的思考,咱们也须要更灵便,更简略的策略。YRCloudFile 能够对不同的场景、要求,定义不同的冷数据策略以及冷数据存储的地位。 任性,想存哪里就存哪里 冷数据不再被某家厂商绑定,您能够将冷数据寄存在寰球范畴内的各大公有云对象存储平台上,也能够抉择公有部署的商业对象存储,或者开源的 Ceph 等。对接了不同的平台,并不象征应用难度会减少,您能够应用简略的 UI 界面,轻松简略地解决 YRCloudFile 和不同对象存储平台的对接。 https://www.bilibili.com/vide... YRCloudFile 在谋求极致高性能的同时,也在一直的优化海量数据生命周期的治理。将来,咱们还会在数据生命周期治理上实现更多创新性的性能,敬请期待……

May 25, 2021 · 1 min · jiezi

关于高性能:并行文件存储和分布式-NFS-文件存储有何不同

文件存储作为存储三个接口状态中占比最高的一个(块、文件、对象),也有进一步的细分,不少用户困惑于并行文件系统和传统分布式 NFS 文件存储之间的区别,明天咱们来剖析一下二者有何不同。 在大多数状况下,用户在应用计算机时,不论是游戏、视频、文档编辑的一般应用程序,还是 AI、渲染、高性能计算的利用,这些利用应用的都是操作系统的“文件系统”。操作系统的“文件系统”模块提供了一个直观的界面(不光指咱们肉眼所看到的可视化的用户界面,同时也指从应用程序角度的 SDK 拜访接口)来拜访数据,而不会让您或应用程序记住数据在硬盘上的物理或逻辑地位(磁道,扇区号等)。 任何文件系统中都存在三个要害的形象: 文件:文件的实在数据可能不会在硬盘中的间断地位,但最终用户能够将文件以一长串间断字节的模式进行拜访(这是因为文件系统对硬盘的数据分布进行了形象和治理)。文件名:用户或应用程序能够通过诸如 doc01.txt 这类直观的文件名称拜访文件,而无需记住任何物理的存储信息。目录树:文件系统(不论是本地的 ext4、xfs 文件系统,还是近程的共享文件系统)以目录树的模式治理所有文件。 NFS NFS(Network File System,网络文件系统),是 Sun 基于 C/S 架构开发的一个文件系统,它容许用户通过网络拜访文件,用户在应用的时候,感觉这些文件就像是位于本地文件目录中。这是通过 NFS 服务器导出(/etc/exports),并提供相应的文件拜访权限,和 NFS 客户端挂载(使文件系统可用于应用程序所处的操作系统)的过程来实现的。 并行文件系统 并行文件系统中,文件数据被切分并搁置到多个存储设备中(各个被切分的数据如何搁置,由并行文件系统通过算法来管制,能够基于元数据服务或相似一致性哈希的形式实现),零碎应用全局名称空间来进行数据拜访。并行文件系统的客户端能够同时应用多个 IO 门路将数据读/写到多个存储设备。 并行文件系统 vs 分布式文件系统 并行文件系统是分布式文件系统的一种。分布式文件系统和并行文件系统都能够将数据分布在多个存储服务器上,可横向扩大从而包容PB级数据,并反对高带宽。 分布式文件系统通常也像并行文件系统一样,反对共享的全局名称空间。然而对于分布式文件系统而言,即便局部文件数据被调配和搁置在不同服务器上,客户端在拜访数据或元数据时,依然须要通过指定的协定服务器来实现,协定服务器可能会成为 IO 路由的瓶颈。当初市场上支流的分布式文件存储为了解决这个协定服务器瓶颈的问题,应用 DNS 技术将不同的客户端连贯至多个协定服务器,实现肯定水平的负载平衡,但即便通过负载散发,也只是将不同客户端的 IO 拆分至多个协定服务器,协定服务器依然须要进行一次 IO 转发,从而带来肯定水平的性能损耗。应用并行文件系统,客户端零碎能够间接拜访所有存储节点以进行数据传输,而不用通过协定服务器。 其余区别还包含: 分布式文件系统通常应用规范的网络文件拜访协定(例如 NFS 或 SMB )来拜访存储服务器。并行文件系统通常须要装置基于客户端的软件驱动程序(甚至推出基于 Windows 的客户端程序,例如 YRCloudFile、Panasas 等),通过以太网或 InfiniBand 等高速网络访问共享存储,因为只有基于这些客户端程序,能力实现区别于 NFS 的多 IO 门路拜访。局部分布式文件系统将单个文件存储在单个存储节点上,而并行文件系统通常将文件合成并跨多个存储节点对数据块进行条带化。分布式文件系统偏向于带宽型或归档型应用程序。并行文件系统专一于高并发、高IOPS、海量数据的高性能工作负载。分布式文件系统通常应用诸如三正本或纠删码等技术来提供数据可靠性,而许多并行文件系统还反对后端挂载磁盘阵列(例如 Lustre、Spectrum Scale、YRCloudFile 等)。

May 21, 2021 · 1 min · jiezi

关于高性能:深入浅出分布式存储性能优化方案

Latency指标对于存储系统性能的重要性咱们剖析一套分布式存储系统,次要从可靠性、易用性和性能三个维度着手剖析。 可靠性:是存储系统的基石,一款存储系统至多须要提供99.99%的数据可靠性,数据失落或者错乱对于存储系统是致命的,对大数据、云存储这样大规模的分布式集群 易用性:是系统管理员最关怀的问题,次要体现产品设计、故障解决和零碎的扩展性 性能:如果可靠性是存储系统的基石,那么性能是存储系统的灵魂,对一款优良存储系统,高牢靠与高性能缺一不可 本文将从性能的维度剖析分布式存储系统,那么如何剖析一款分布式存储系统的性能呢? 让咱们先理解评测存储系统的主要参数:IO Type、IO Mode、IO Size和IO Concurrency;这些参数的值的不同组合对应了不同的业务模型,场景的模型如下表所示: 表一:罕用业务类型 注1:SPC-1,次要掂量存储系统在随机小IO负荷下的IOPS,而SPC-2则次要掂量在各种高负荷间断读写利用场合下存储系统的带宽。 注2:SPC-1将测试区域形象为ASU,ASU分为三类:ASU1长期数据区域,ASU2用户数据区域和ASU3日志区域。 依据上表可知,因为业务类型是多种多样的,很难做到全面笼罩,通常应用三个性能指标:IOPS、Throughput和Latency来测评一款存储系统。通常,大IO应用指标Throughput来评测零碎性能;小IO应用IOPS来评测零碎性能。那么,性能指标:Latency的作用是什么?并且Latency指标往往容易在性能评测中被忽视。在这里介绍一下性能指标Latency的作用,用户评测一款存储系统之前,测试零碎的IOPS和Throughput都很称心,但上线后,反映业务零碎卡顿,其外围便是Latency过高。 上面援用一段网络博文:“即便供应商新型的存储系统在60/40混合读写条件下能奇迹般地实现1,000,000 4K随机IOPS,我还是想晓得它的提早是多少。Dimitris Krekoukias在最近的一篇对于IOPS和提早的博客中写道:某供应商的零碎能实现15000的IOPS,均匀提早为25ms。然而数据库引擎还是提醒高水平I/O等待时间。 一位批评家在Krekoukias's Ruptured Monkey博客中具体叙述了只有在提早小于4ms的状况下,信用卡处理器才不会减慢防欺骗或提款受权等过程。”同样,冬瓜哥在博文中解说了如何了解时延,这里简略复述下:“每秒执行 1000 个 IO ,均匀每个 IO 的执行消耗了 1000ms/1000IOPS=1ms ,所以每个 IO 的均匀时延就是 1ms,这有什么不对呢?”下面的计算疏忽了并发度这个因素。对于异步、高并发的业务,这个存储系统能够满足业务需要。但基于OLTP和OLAP的业务个别是同步的且低并发的业务,这款存储系统是否满足业务需要,这仍是一个问号。 通过下面的材料咱们得出:实现高性能的要害是高IOPS和低Latency的联合。当存储系统提供更高的IOPS时,单IO的时延不应同步进步过多,否则将影响业务零碎的性能。比方JetStress倡议均匀时延应小于20ms,最大值应小于100ms。 分布式存储中的Latency问题咱们先看下传统存储的时延,在传统存储系统中,其IO时延有着人造的劣势。劣势一是物理IO门路较短,通常为机头控制器后端再挂载JBOD;劣势二是应用Raid5、RAID10或者RAID 2.0等数据保护算法,这些算法是基于Disk或者Chunk,比基于故障域的正本模式开销小很多。 图一:传统SAN IO架构 图二:Raid 2.0原理 在分布式存储中,由多台或者上百台的服务器组成,且应用正本模式。所以一个IO通过网络,在多个正本服务器上解决,且每个正本都有数据一致性查看算法,这些操作都将减少IO的时延。 图三:分布式集群IO流 从上图可知,三正本的分布式存储系统,一个写IO,须要从写Leader和写两个Follower实现后才返回给user; 分布式存储的正本模式对性能的影响到底有多大呢?为了理性的意识,咱们先看两个性能比照: 图四:在本地存储跑OLTP业务 图五:在分布式存储上跑OLTP业务 依据下面两图的性能数据,分布式存储的IO时延确实很高。 分布式存储系统的另一个性能问题是IO的抖动,体现在时延上是均匀时延与最小时延和最大时延偏离值很大,呈现这个问题的次要起因是散布零碎的架构原理与IO申请处理不当引起;比方,正本之间的强一致性,只有有一个正本响应稍慢,整个IO的时延将减少或者一致性算法引起IO短暂沉积,IO都发送到雷同的存储节点。 焱融自研分布式存储cache引擎对于如何升高分布式存储Latency,其实是一个零碎又简单的事件,牵一发而动全身,让咱们先来看看阿里云云存储和华为的闪存阵列都做了哪些工作: 阿里云ESSD硬件降级:服务器、SSD、网络(40GB/s, 25GB/s)、网络交换机、RDMA协定网络通信框架:Luna, RDMA+用户态驱动+公有I/O协定线程模型改良:用户态驱动,退出co-routine协程,加run to completion模式数据布局:采纳追加写,批改元数据模式(元数据记录数据的地位)更粗疏的分层和形象;针对不同的IO属性,提供更定制化的策略模块,满足不同的IO Profile需要 华为闪存OceanStor Dorado V3硬件优化,硬盘框采纳12Gbps的SAS直连管制框模式;精简NVMe SSD协定对时延敏感的要害解决不被频繁打断、不被其余工作阻塞处理器分组技术,将处理器中的各个核依照业务需要划分成不同的分区,要害业务在各个分区上运行,不被打断为了保障申请的稳固低时延,读申请和写入cache的写申请能够在存储系统内优先领有各种要害的解决资源,包含:cpu、内存、访盘并发等;cache异步刷盘的申请优先级低无效聚合,保障大块程序写入SSD,实现申请解决效率最优冷热数据分区,缩小写放大,晋升性能充分发挥SSD的垃圾回收机制,在擦除块时缩小数据搬移量,较少对SSD的性能和寿命的影响 等等。。。 可见通常进步性能,优化时延的次要办法概括起来有以下几个方面: 硬件降级,诸如NVMe,RDMA优化IO门路,通信框架优化每个模块的解决工夫优化磁盘布局减少数据缓存层以NVMe为例,NVMe驱动层间接透过SCSI协定栈,由驱动层与通用块层间接交互,以达到升高IO时延的指标,同时应用通用块层的多队列机制,进一步的晋升性能。不过这种形式的弊病是对于客户的成本上升较高。 图七:通用存储设备协定栈与NVMe协定栈 个别存储厂商的通用无效形式是利用减少数据缓存层来升高提早,即利用在存储节点给多块HDD配置一块SSD,再应用开源BCache计划,此种计划是一种通用的经济实惠解决方案。如下图所示,不过这种计划对性能晋升无限,次要起因还是IO门路过长,分布式存储核心层逻辑过于简单,同时采纳开源BCache计划也存在着很多问题诸如:BCache尽管开源,但如果呈现问题,根本没有保护的能力;BCache减少运维难度;BCache对成员盘的故障解决能力较弱。 ...

May 19, 2021 · 1 min · jiezi

关于高性能:文件系统中的锁

在多过程共享的应用程序中,通过“锁”来对同一个计算资源进行协同是十分常见的做法,无论在单机或多机的零碎、数据库、文件系统中,都须要依赖“锁”机制来防止并发拜访导致的不确定后果,明天咱们就来讲讲文件系统中的“锁”。 首先,文件锁也是一种互斥机制,可确保多个过程以平安的形式读取/写入同一个文件。之所以要对这些多过程业务进行管制,就是因为这些过程的调度是不可预期的,这种时序上的不可预期会对同一个文件资源产生竞争性拜访,从而带来预期外的后果。 咱们能够看一个例子,以便更好地了解这个问题。 假如咱们有一个 account.dat 文件,用于存储帐户余额,其初始值为“200”。并发零碎有两个过程来更新这个文件上的余额值: 过程 A:读取以后值,减去 20,而后将后果保留回文件中。过程 B:读取以后值,加 80,而后将后果写回到文件中。显然,在程序执行完这两个过程后,咱们冀望文件具备以下值:200-20 + 80 = 260。 然而,如果过程的执行不是按预期的程序直径,在以下这种状况下,可能会呈现不一样的后果: 过程 A 读取文件的以后值(200),并筹备进行进一步的计算。这时,过程 B 读取雷同的文件并取得以后余额(200)。过程 A 计算 200-20 并将后果 180 保留回文件。过程 B 不晓得余额已更新。因而,它仍将应用过期的值 200 计算 200 + 80,并将后果 280 写入文件。后果,account.dat 文件中保留的余额就是 280 而不是预期值 260。 Linux 中的文件锁 像后面提到的,文件锁是一种在多个过程之间限度文件并发拜访的机制。它仅容许一个过程在特定工夫内拜访文件,从而防止更新问题。 咱们都晓得 rm -rf /在 Linux 中是十分危险的命令。如果咱们以 root 用户身份执行该命令,它甚至能够删除正在运行的零碎中的所有文件。这是因为 Linux 通常不会主动给关上的文件加锁,所以即便是正在运行的文件,依然有可能被 rm 命令删除。Linux 反对两种文件锁:协同锁(Advisory lock)和强制锁(Mandatory lock)。 协同锁(Advisory lock) 协同锁定不是强制性锁计划,仅当参加的过程通过显式获取锁进行合作时,它才无效。否则,如果某个过程基本不晓得锁,则这个协同锁会被疏忽掉(意味着各个过程间必须协商并恪守这个协同锁的机制,能力施展锁的作用)。 上面这个例子能够帮忙咱们更容易地了解协同锁机制。让咱们先回顾一下咱们之前提到的账户文件的例子。 首先,咱们假如文件 account.dat 仍蕴含初始值 “200”。 过程 A 获取 account.dat 文件的排他锁,而后关上并读取该文件以获取以后值:200。 ...

May 10, 2021 · 1 min · jiezi

关于高性能:从根上理解高性能高并发二深入操作系统理解IO与零拷贝技术

1、系列文章引言1.1 文章目标作为即时通讯技术的开发者来说,高性能、高并发相干的技术概念早就了然与胸,什么线程池、零拷贝、多路复用、事件驱动、epoll等等名词信手拈来,又或者你对具备这些技术特色的技术框架比方:Java的Netty、Php的workman、Go的nget等熟练掌握。但真正到了面视或者技术实际过程中遇到无奈释怀的纳闷时,方知自已所把握的不过是皮毛。 返璞归真、回归实质,这些技术特色背地的底层原理到底是什么?如何能通俗易懂、毫不费力真正透彻了解这些技术背地的原理,正是《从根上了解高性能、高并发》系列文章所要分享的。 1.2 文章源起我整顿了相当多无关IM、音讯推送等即时通讯技术相干的资源和文章,从最开始的开源IM框架MobileIMSDK,到网络编程经典巨著《TCP/IP详解》的在线版本,再到IM开发纲领性文章《新手入门一篇就够:从零开发挪动端IM》,以及网络编程由浅到深的《网络编程懒人入门》、《脑残式网络编程入门》、《高性能网络编程》、《鲜为人知的网络编程》系列文章。 越往常识的深处走,越感觉对即时通讯技术理解的太少。于是起初,为了让开发者门更好地从根底电信技术的角度了解网络(尤其挪动网络)个性,我跨专业收集整理了《IM开发者的零根底通信技术入门》系列高阶文章。这系列文章未然是一般即时通讯开发者的网络通信技术常识边界,加上之前这些网络编程材料,解决网络通信方面的常识盲点根本够用了。 对于即时通讯IM这种零碎的开发来说,网络通信常识的确十分重要,但回归到技术实质,实现网络通信自身的这些技术特色:包含下面提到的线程池、零拷贝、多路复用、事件驱动等等,它们的实质是什么?底层原理又是怎么?这就是整顿本系列文章的目标,心愿对你有用。 1.3 文章目录1)《从根上了解高性能、高并发(一):深刻计算机底层,了解线程与线程池》2)《从根上了解高性能、高并发(二):深刻操作系统,了解I/O与零拷贝技术》(* 本文)3)《从根上了解高性能、高并发(三):深刻操作系统,彻底了解I/O多路复用 (稍后公布..)》4)《从根上了解高性能、高并发(四):深刻操作系统,彻底了解同步与异步 (稍后公布..)》5)《从根上了解高性能、高并发(五):高并发高性能服务器到底是如何实现的 (稍后公布..)》1.4 本篇概述接上篇《深刻计算机底层,了解线程与线程池》,本篇是高性能、高并发系列的第2篇文章,在这里咱们来到了I/O这一话题。你有没有想过,当咱们执行文件I/O、网络I/O操作时计算机底层到底产生了些什么?对于计算机来说I/O是极其重要的,本篇将带给你这个问的答案。 2、本文作者应作者要求,不提供真名,也不提供集体照片。 本文作者次要技术方向为互联网后端、高并发高性能服务器、检索引擎技术,网名是“码农的荒岛求生”,公众号“码农的荒岛求生”。感激作者的自私分享。 3、不能执行I/O的计算机是什么?置信对于程序员来说I/O操作是最为相熟不过的了,比方: 1)当咱们应用C语言中的printf、C++中的"<<",Python中的print,Java中的System.out.println等时;2)当咱们应用各种语言读写文件时;3)当咱们通过TCP/IP进行网络通信时;4)当咱们应用鼠标龙飞凤舞时;5)当咱们拿起键盘在评论区指点江山亦或是埋头苦干致力制作bug时;6)当咱们能看到屏幕上的丑陋的图形界面时等等。以上这所有,都是I/O! 想一想:如果没有I/O计算机该是一种如许干燥的设施,不能看电影、不能玩游戏,也不能上网,这样的计算机最多就是一个大号的计算器。 既然I/O这么重要,那么到底什么才是I/O呢? 4、什么是I/O?I/O就是简略的数据Copy,仅此而已! 这一点很重要! 既然是copy数据,那么又是从哪里copy到哪里呢? 如果数据是从外部设备copy到内存中,这就是Input。 如果数据是从内存copy到外部设备,这就是Output。 内存与外部设备之间不嫌麻烦的来回copy数据就是Input and Output,简称I/O(Input/Output),仅此而已。 5、I/O与CPU当初咱们晓得了什么是I/O,接下来就是重点局部了,大家留神,坐稳了。 咱们晓得当初的CPU其主频都是数GHz起步,这是什么意思呢? 简略说就是:CPU执行机器指令的速度是纳秒级别的,而通常的I/O比方磁盘操作,一次磁盘seek大略在毫秒级别,因而如果咱们把CPU的速度比作战斗机的话,那么I/O操作的速度就是肯德鸡。 也就是说当咱们的程序跑起来时(CPU执行机器指令),其速度是要远远快于I/O速度的。那么接下来的问题就是二者速度相差这么大,那么咱们该如何设计、该如何更加正当的高效利用系统资源呢? 既然有速度差别,而且过程在执行完I/O操作前不能持续向前推动,那么显然只有一个方法,那就是期待(wait)。 同样是期待,有聪慧的期待,也有傻傻的期待,简称傻等,那么是抉择聪慧的期待呢还是抉择傻等呢? 假如你是一个急性子(CPU),须要期待一个重要的文件,不巧的是这个文件只能快递过去(I/O),那么这时你是抉择什么事件都不干了,深情的凝视着门口就像盼望着你的哈尼一样分心期待这个快递呢?还是临时先不要管快递了,玩个游戏看个电影刷会儿短视频等快递来了再说呢? 很显然,更好的办法就是先去干其它事件,快递来了再说。 因而:这里的关键点就是快递没到前手头上的事件能够先暂停,切换到其它工作,等快递过去了再切换回来。 了解了这一点你就能明确执行I/O操作时底层都产生了什么。 接下来让咱们以读取磁盘文件为例来解说这一过程。 6、执行I/O时底层都产生了什么在上一篇《深刻计算机底层,了解线程与线程池》中,咱们引入了过程和线程的概念。 在反对线程的操作系统中,实际上被调度的是线程而不是过程,为了更加清晰的了解I/O过程,咱们临时假如操作系统只有过程这样的概念,先不去思考线程,这并不会影响咱们的探讨。 当初内存中有两个过程,过程A和过程B,以后过程A正在运行。 如下图所示: 过程A中有一段读取文件的代码,不论在什么语言中通常咱们定义一个用来装数据的buff,而后调用read之类的函数。 就像这样: read(buff);这就是一种典型的I/O操作,当CPU执行到这段代码的时候会向磁盘发送读取申请。 留神:与CPU执行指令的速度相比,I/O操作操作是十分慢的,因而操作系统是不可能把贵重的CPU计算资源节约在无谓的期待上的,这时重点来了,留神接下来是重点哦。 因为外部设备执行I/O操作是相当慢的,因而在I/O操作实现之前过程是无奈持续向前推动的,这就是所谓的阻塞,即通常所说的block。 操作系统检测到过程向I/O设施发动申请后就暂停过程的运行,怎么暂停运行呢?很简略:只须要记录下以后过程的运行状态并把CPU的PC寄存器指向其它过程的指令就能够了。 过程有暂停就会有继续执行,因而操作系统必须保留被暂停的过程以备后续继续执行,显然咱们能够用队列来保留被暂停执行的过程。 如下图所示,过程A被暂停执行并被放到阻塞队列中(留神:不同的操作系统会有不同的实现,可能每个I/O设施都有一个对应的阻塞队列,但这种实现细节上的差别不影响咱们的探讨)。 这时操作系统曾经向磁盘发送了I/O申请,因而磁盘driver开始将磁盘中的数据copy到过程A的buff中。尽管这时过程A曾经被暂停执行了,但这并不障碍磁盘向内存中copy数据。 留神:古代磁盘向内存copy数据时无需借助CPU的帮忙,这就是所谓的DMA(Direct Memory Access)。 这个过程如下图所示: 让磁盘先copy着数据,咱们接着聊。 实际上:操作系统中除了有阻塞队列之外也有就绪队列,所谓就绪队列是指队列里的过程准备就绪能够被CPU执行了。 你可能会问为什么不间接执行非要有个就绪队列呢?答案很简略:那就是口多食寡,在即便只有1个核的机器上也能够创立出成千上万个过程,CPU不可能同时执行这么多的过程,因而必然存在这样的过程,即便其所有准备就绪也不能被调配到计算资源,这样的过程就被放到了就绪队列。 当初过程B就位于就绪队列,万事俱备只欠CPU。 如下图所示: ...

December 28, 2020 · 1 min · jiezi