1.5 Go 语言构建高并发分布式系统实践
具有go特⾊色的运维 问题与瓶颈 问题与瓶颈 单机内存占⽤用 ⾼高达69G GC 3~6s 瓶颈 散列在协程⾥里⾯面的io buffer和 对象不复⽤用 问题与瓶颈 问题与瓶颈 瓶颈 散列在协程⾥里⾯面的io 问题与瓶颈 奔放的协程使⽤用 ⺴⽹网络环境不好 ⺴⽹网络环境不好 引起激增 问题与瓶颈 2~3s的GC 瓶颈 散列在协程⾥里⾯面的io 问题与瓶颈 奔放的协程使⽤用 接⼝口响应速度 降低,重试 增多,压⼒力倍增 问题与瓶颈 2~3s的GC 瓶颈 散列在协程⾥里⾯面的io 问题与瓶颈 奔放的协程使⽤用 内存暴涨 内存暴涨 问题与瓶颈 io阻塞, 协程激增 瓶颈 问题与瓶颈 问题与瓶颈 如何应对的? go语⾔言在基础服务开发领域的优势? 我遭遇了哪些挑战? ⺫⽬目录 具有go特⾊色的运维 go语⾔言程序开发需要找到⼀一种平衡,既利⽤用协程带来的便利性⼜又做适当 集中化处理 套路:任务池集中数据合并请求、连接池+pipeline0 码力 | 39 页 | 5.23 MB | 1 年前3阿里云云数据库 Redis 版 产品简介
为单核能力,性能在8万 QPS 的业务建议使用。如果需要更 高的性能要求,请选用集群版配置。 Redis 命令相对简单,排序、计算类命令较少 由于 Redis 的单线程机制,CPU 为主要瓶颈。如排序、计算类较多的业务建议选用集群版配置。 开放地域 开放单节点的售卖地域有华北1、华北2、华南1、华东1、华东2。 Redis 标准版-双副本 简介 Redis 命令相对简单,排序、计算类命令较少 由于 Redis 的单线程机制,CPU 会成为主要瓶颈。如排序、计算类较多的业务建议选用集群版配置。 Redis 集群版-双副本 简介 云数据库 Redis 提供双副本集群版实例,轻松突破 Redis 自身单线程瓶颈,可极大满足对于 Redis 大容量或高 性能的业务需求。 云数据库 Redis 集群版内置数据分 28、256 GB 集群版 ,可以有效的满足数据扩展需求。 QPS 压力较大 标准版 Redis 无法支撑较大的 QPS,需要采用多节点的部署方式来冲破 Redis 单线程的性能瓶颈。 Redis 集群版提供16、32、64、128、256 GB 五款集群版配置,提供8节点及16节点的部署模式。 相对标准版可以将 QPS 提升8倍或16倍。 吞吐密集型应用0 码力 | 33 页 | 1.88 MB | 1 年前3Greenplum 精粹文集
据,数据在爆发式增长,这些海量数据急需新的计算方式,需要一场 计算方式的革命。 传统的主机计算模式在海量数据面前,除了造价昂贵外,在技术上也 难于满足数据计算性能指标,传统主机的 Scale-up 模式遇到了瓶颈, SMP(对称多处理)架构难于扩展,并且在 CPU 计算和 IO 吞吐上不 能满足海量数据的计算需求。 分布式存储和分布式计算理论刚刚被提出来,Google 的两篇著名论文 发表后引起业界的关注,一篇是关于 建立在 Share-nothing 无共享架构上,让每一颗 CPU 和 每一块磁盘 IO 都运转起来,无共享架构将这种并行处理发挥到极致。 相比一些其它传统数据仓库的 Sharedisk 架构,后者最大瓶颈就是在 IO 吞吐上,在大规模数据处理时,IO 无法及时 feed 数据给到 CPU, CPU 资源处于 wait 空转状态,无法充分利用系统资源,导致 SQL 效 率低下: 一台内置 16 块 SAS 16-11-22 下午3:38 Greenplum 精粹文集 11 最 后, 也 许 你 会 有 问 题,Greenplum 采 用 Master-slave 架 构, Master 是否会成为瓶颈?完全不用担心,Greenplum 所有的并行任务 都是在 Segment 数据节点上完成后,Master 只负责生成和优化查询 计划、派发任务、协调数据节点进行并行计算。 按照我们在用户现场观察到的,Master0 码力 | 64 页 | 2.73 MB | 1 年前3MySQL 8.0.17 调优指南(openEuler 20.09)
如何使 用编译器的选项,如何发挥硬件最大的性能等等。 在性能优化时,我们必须遵循一定的原则,否则,有可能得不到正确的调优结果。主 要有以下几个方面: ● 对性能进行分析时,要多方面分析系统的资源瓶颈所在,因为系统某一方面性能 低,也许并不是它自己造成的,而是其他方面造成的。如CPU利用率是100%时, 很可能是内存容量太小,因为CPU忙于处理内存调度。 ● 一次只对影响性能的某方面的一个参数进行调整,多个参数同时调整的话,很难 统某方面的资源瓶颈情况更加严重。 MySQL 8.0.17 调优指南(openEuler 20.09) 1 调优概述 2020-10-15 1 ● 必须保证调优后的程序运行正确。 ● 调优过程是迭代渐进的过程,每一次调优的结果都要反馈到后续的代码开发中 去。 ● 性能调优不能以牺牲代码的可读性和可维护性为代价。 1.3 调优思路 性能优化首先要较为精准的定位问题,分析系统性能瓶颈,然后根据其性能指标以及 需要具体深入的分析。 瓶颈点 说明 硬件/规格 一般指的是CPU、内存、磁盘I/O方面的问题,分为服务器硬件瓶 颈、网络瓶颈(对局域网可以不考虑)。 操作系统 一般指的是Windows、UNIX、Linux等操作系统。例如,在进行性 能测试,出现物理内存不足时,虚拟内存设置也不合理,虚拟内 存的交换效率就会大大降低,从而导致行为的响应时间大大增 加,这时认为操作系统上出现性能瓶颈。 数据库 一般0 码力 | 11 页 | 223.31 KB | 1 年前3C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化
因此,对 fill 这种没有任何计算量,纯粹只有访存的循环体,并 行没有加速效果。称为内存瓶颈( memory-bound )。 • 而 sine 这种内部需要泰勒展开来计算,每次迭代计算量很大的 循环体,并行才有较好的加速效果。称为计算瓶颈( cpu- bound )。 • 并行能减轻计算瓶颈,但不减轻内存瓶颈,故后者是优化的重点 。 浮点加法的计算量 • 冷知识:并行地给浮点数组每个元素做一次加法反而更慢。 可以最小化对缓存的污染,但是必须很快被用上。 重新理解 mem-bound :延迟隐藏 • 之前提到, 1 次浮点读写必须伴随着 32 次浮点加法的运算量,否则和只有 0 次加法的耗时没有任何区别,即内 存带宽成唯一瓶颈的 mem-bound 。可是按我们理解,“ 1 次读写 +0 次加法”应该会比“ 1 次读写 +8 次加法”快一 点点吧,因为 8 次加法尽管比 1 次读写快很多,但是毕竟还是有时间的啊,为什么会几乎没有任何区别? a[1] a[2] 重新理解 mem-bound :延迟隐藏 • 之前提到, 1 次浮点读写必须伴随着 32 次浮点加法的运算量,否则和只有 0 次加法的耗时没有任何区别,即内 存带宽成唯一瓶颈的 mem-bound 。可是按我们理解,“ 1 次读写 +0 次加法”应该会比“ 1 次读写 +8 次加法”快一 点点吧,因为 8 次加法尽管比 1 次读写快很多,但是毕竟还是有时间的啊,为什么会几乎没有任何区别?0 码力 | 147 页 | 18.88 MB | 1 年前3Rust并行编译的挑战与突破
挑战:缓存系统访问热点效率瓶颈 thread1 thread2 thread3 threadN ... 多线程调用查询 type_of typeck borrow_ck impl_trait adt_def impl_defaul tness param_env fn_sig ... 查询互相调用 查询缓存系统 查询依赖信息 查询结果缓存 查询执行状态 查询保存文件 性能瓶颈点 频繁访问查询系统,成为效率瓶颈点 频繁访问查询系统,成为效率瓶颈点 挑战:缓存系统访问热点效率瓶颈 Sharded —— 接口统一,存储分离 cache1 cache2 cache3 cacheM ... thread1 thread2 thread3 threadN ... 根据Key哈希值决定索引 Sharded数据结构设计 Rust并行编译的未来 · 抹平共享数据结构造成的性能差距 · 多线程环境下的编译器度量方案 多线程环境下的编译器度量方案 · 针对并行环境的编译器测试 · 深化编译器并行化 从并行编译到并行程序设计 用巧妙的数据结构设计化解效率瓶颈 • thread_local • specialization • WorkerLocal • 线程级缓存 用优秀的设计消减数据同步代价 读写分离 限制作用范围 COPY-WRITE机制 优化并行粒度 任务粒度与并行效率的关系 rayon库中的粒度控制函数0 码力 | 25 页 | 4.60 MB | 1 年前3Moonshot AI 介绍
…在这次深度访谈中,他再次证明⾃⼰是个真 正“懂”⼤模型的创业者,所以本⽂中有许多反共识的观点:杨植麟觉得微调最终会不存在, tokenizer最后也不⼀定是必须的;硅⾕⼤模型训练者们担⼼数据瓶颈和能源限制,他反⽽觉得所有问 题都是互相关联的,多模态可以缓解数据短缺,合成数据则可以通过改变计算范式解决能源问题。 本⽂还试图回答另⼀个外界普遍关⼼的问题:⼀家新创⽴的AGI公司如何超越OpenAI?杨植麟的答案 esentation其实有差距。架构其实解决的是这个问题。 通过AI⾃我进化克服数据稀缺性的瓶颈是第⼆层的另⼀个问题。今天的AI其实像⼀个⿊盒,这个⿊盒 有两个输⼊:电源线和数据线,输⼊这两个东西后,盒⼦就能产出智能。随后⼤家意识到,数据线的 输⼊是有限的,这就是所谓的数据瓶颈问题,下⼀代AI需要拔掉数据线,做到只要源源不断地输⼊电 ⼒,就能源源不断地输出智能。 这两个核 leup,但如果只看语⾔模型 和⽂本,basemodel的scaling效果仍然远远超过⽤⼾的,但我认为最终会转移到⽤⼾的scaling law,只是个时间问题。 现在⾯对数据瓶颈,这⼀点尤为重要。特别是⼈类偏好数据,它⾮常有限,但没有它⼜不⾏。我觉得 这也是每⼀个AI-Native产品现在最值得思考的问题之⼀。所以,⼀个不⾜够关⼼⽤⼾的公司最终可能 也没法实现AGI。0 码力 | 74 页 | 1.64 MB | 1 年前3TiDB v6.1 中文手册
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 737 10.2.1 定位查询瓶颈· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 优化法,按照自上而下的性能分析方法论对 TiDB 的性能指标做了重新梳理,为 TiDB 用户提供一个系统 级别的总体性能诊断入口。通过 Performance Overview 面板,你可以直观地看到整个系统的性能瓶颈在哪 里,数量级地缩短了性能诊断时间并降低了性能分析和诊断难度。 用户文档 2.2.1.3 性能 • 支持自定义 Region 大小 从 v6.1.0 起,你可以通过coprocessor.region-split-size 采集可能会对集群资源造成挤压,影响业务的稳定运行。TiDB 从 v6.1.0 开始提供系统变量tidb_max_auto �→ _analyze_time 用来控制后台统计信息采集的最长执行时间,默认为 12 小时。当业务没有遇到资源 瓶颈的情况时,建议不要修改该参数,确保数据对象的统计信息及时采集。但是当业务压力大,资源 不足的时候,可以通过该变量减少统计信息采集的时长,避免统计信息采集对核心业务造成资源争抢。 用户文档 2.20 码力 | 3572 页 | 84.36 MB | 1 年前3Istio 与 Knative 踩坑实录
踩坑实录 付铖 (花名:橙子) 酷家乐 技术专家1/25 从3D Mesh 到Service Mesh2/25 /01 /02 /03 实践进展 Istio的价值和问题 Knative的实践和瓶颈3/25 分享主题:字号 实践进展 /01 酷家乐在服务网格和FAAS方向上的实践进展汇总4/25 生产环境Istio稳定运行 酷家乐于2018年8月29日在国际站生产环 境开始全面使用Istio %15/25 Pilot、Mixer 性能瓶颈 Istio 的价值和问题16/25 总结 Istio 的价值和问题 • 已经可以稳定用在生产环境 • 工程架构收益 >> 性能资源损耗 • 根据组织和业务情况推广或改造,新旧体系可并存 • 超大规模应用,几个架构问题有待社区或业界解决17/25 分享主题:字号 Knative 的实践和瓶颈 /03 酷家乐在使用 Knative 作为 镜像源问题 • RevisionUnkown 状态(0.8版本) • Queue-proxy 内存增长(0.8版本) • Activator 重复创建并占用大量资源22/25 Knative 当前瓶颈 FAAS 实践进展 • 还未发布 Production-ready 版本 • Queue-proxy 过重 • 冷启动时间亟待优化 • 支持代码级更新?23/25 展望-推动组织变革0 码力 | 26 页 | 1.35 MB | 5 月前34 Python机器学习性能优化
Python机器学习性能优化 以BERT服务为例例,从1到1000 刘欣 ⽬目录 CONTENTS 1. 优化的哲学 2. 了解你的资源 3. 定位性能瓶颈 4. 动⼿优化 1. 优化的哲学 "There ain't no such thing as a free lunch" Ahmdal’s Law • 系统整体的优化,取决于热点部分的占⽐比和该部分的加速程度 No Free Flask Production Server • gunicorn 多进程解决多核利利⽤用率问题 • gevent 协程替代多线程⽹网络模型 • 更更⾼高效的序列列化lib 3 定位性能瓶颈 Profile before Optimizing Python Profilers • time.time() • cProfile • line profiler • pyflame 放个截图 cProfile • 倒序打印 & graph pyflame • 插桩 or 采样 • 放个flamegraph • 开源地址 wrk • 制造压⼒力力 • 挖掘整体性能瓶颈 • 实现⾮非常精妙的压⼒力力⼯工具,强烈烈安利利(要不不要写个py binding) 4 动⼿优化 多线程服务器的问题 • 每个请求单独进GPU,利利⽤用率不不⾼高 • ⼤大量量请求并⾏行行,CUDA会爆0 码力 | 38 页 | 2.25 MB | 1 年前3
共 304 条
- 1
- 2
- 3
- 4
- 5
- 6
- 31