谈谈MYSQL那点事_commit 1 0 0 代表日志只大约每秒写入日志文件并且日志文件 刷新到磁盘 ; 1 为执行完没执行一条 SQL 马上 commit; 2 代表日志写入日志文件在每次提交 后 , 但是日志文件只有大约每秒才会刷新到磁盘上 . 对速度影响比较大,同时也关系数据完整性 innodb_log_file_size 8M 512M 在日志组中每个日志文件的大小 , 一般是 innodb_buffer_pool_size innodb_buffer_pool_size 的 25% ,官方推荐是 innodb_buffer_pool_size 的 40-50%, 设置大 一点来避免在日志文件覆写上不必要的缓冲池刷新 行为 innodb_log_buffer_size 128K 64M 用来缓冲日志数据的缓冲区的大小 . 推荐是 8M , 官方推荐该值小于 16M ,最好是 1M-8M 之间 设计合理的数据表结构:适当的数据冗余 设计合理的数据表结构:适当的数据冗余 MySQL MySQL 技巧分 技巧分 享 享 MySQL MySQL 技巧分享 技巧分享 常用技巧 常用技巧 使用 使用 Explain/ DESC Explain/ DESC 来分析 来分析 SQL SQL 的执行情况 的执行情况 使用 使用 SHOW PROCESSLIST SHOW PROCESSLIST 来查看当前 来查看当前 MySQL MySQL 服务器线 服务器线0 码力 | 38 页 | 2.04 MB | 1 年前3
Zadig 面向开发者的云原生 DevOps 平台Zadig 优势、使用场景、解决问题域 Zadig 解决问题域 Zadig 云原生开放性:极简、 0 负担接入 Zadig 业务架构 Zadig 系统架构 1 Zadig 行业方案 对比分析 职能 传统 DevOps 方案 ZadigX 云原生 DevOps 方案 降本提效 组织能力提升 业务负责人 研发不透明,规划凭感觉: • 发版时间靠运气 • 团队熬夜冲进度 研发 / 高效率 / 低成本 • 人在系统之上 / 高效交互 • 复杂性下沉到单一平台 整体人效提升 1-5 倍 解除组织 / 流程 / 系统 孤岛,打造成长型组织 企业收益分析 现存方案 典型代表 方案特点分析 Zadig 方案优势 传统 Jenkins 方案 GitLab + Jenkins + 脚本化 运行效率低,管理维护成本高 方案局限性大,安全性风险高 无法支持敏捷交付模式;手工维护成本 • 自动化测试效益分析 高效协同的测试管理 • 一套 YAML/Chart 模板管理数百微服务 • 每个技术栈抽象一套构建模板 • 运维统一工作流规范,开发自主使用 • 跨多项目复用模板 扫码查看易快报案例 强大免运维的模板库 • 系统纬度:集群、项目、服务、环境、工作流 • 项目纬度:构建、测试、部署, DevOps 指标 • 迭代纬度:需求到发布效率、质量分析 • 效能度量:耗时分析、通过率统计、趋势分析0 码力 | 59 页 | 81.43 MB | 1 年前3
Zadig 产品使用手册使用门槛极低 现存做法大多以「单点工具 + 写脚本」或运管类平台为主, Zadig 则是面向开发者视角,中立,云原生一体化价值链平台。 与现存 DevOps 方案对比: 现存方案 典型代表 方案特点分析 Zadig 优势 传统 Jenkins 方案 GitLab + Jenkins + 脚本化 运行效率低,管理维护成本高 方案局限性大,安全性风险高 无法支持敏捷交付模式 支持从需求到发布全流程敏捷交付。尤其面向 Sprint 发布 测试验证 变更发布 产品规划 需求开发 服务的调试——查看环境和服务状态 Sprint 发布 测试验证 变更发布 产品规划 需求开发 服务的调试——查看服务实时日志 Sprint 发布 测试验证 变更发布 产品规划 需求开发 服务的调试——进入容器调试 Sprint 发布 测试验证 变更发布 产品规划 需求开发 服务的调试——临时替换镜像 工作流更新环境进行集成验证 包括步骤:构建 -> 部署 sit 环境 -> 接口测试 -> IM 通知 Sprint 发布 需求开发 变更发布 产品规划 测试验证 自动化测试——测试结果分析 Sprint 发布 需求开发 变更发布 产品规划 测试验证 uat 发布——执行 uat 工作流做预发布验证 步骤包含:质量门禁 -> 构建 ->nacos 变更 -> 部署 uat0 码力 | 52 页 | 22.95 MB | 1 年前3
Rust分布式账务系统 - 胡宇可靠性 丢数据 = 资损 允许数据丢失 性能 超低延迟 + 高吞吐 超高吞吐 交易日志 审计,监管 调试使用 分布式账务系统 Fintech 领域中的软件与互联网软件的不同 需求分析 支付处理: ● 转账 ● 冻资 / 解资 ● 账户限额 ● 批处理事务 正确性:无双花或少付 审计监管:交易日志不可篡改,交易历史可回溯 条件事务:根据一定的条件决定事务执行与否 高可用:在部分节点失效的情况下,依旧可以提供正确的0 码力 | 27 页 | 12.60 MB | 1 年前3
新一代分布式高性能图数据库的构建 - 沈游人银行证券保险 企业、公安部、上海市公安局、武汉市公安局等 100+ 公安机构,国家电网、 国信通产业集团等电力能源行业提供数据智能产品解决方案及长期服务。 海致专注为政府、金融、能源等客户提供大数据处理、分析、挖掘服务,在互 联网技术基础上,打造专业、易用的企业级大数据实战应用产品及解决方案。 北京中关村总部 武汉运维中心 深圳研发中心 上海应用中心 专注于数据智能技术赋能中国数字经济发展 AtlasGraph 大规模图数据分析平 台”荣获中国计算机学会( CCF : China Computer Federation )“ 2021 年 CCF 科 学技术奖科技进步卓越奖”。 伴随市场对于知识图谱应用的不断深入,图数据规模和应用性能之间的矛盾愈 加凸显,海致针对以上背景展开了系统性的技术攻关,解决了图数据的高效存 储、索引及复制难题,提出了基于图缩减的高效分析方法,并孵化出了一个大 规模图数据分析平台 AtlasGraph 。 5 获得 2022 年中国电子学会科学技术奖科技进步一等奖 中国电子学会发布的《 2022 中国电子学会科学技术奖公告》,海 致星图与北京邮电大学、蚂蚁科技集团有限公司、中移动信息技术 有限公司联合研发的“大规模复杂异质图数据智能分析技术与规模化 应用”项目,斩获“科学技术奖科技进步一等奖”,这也是国内电子信 息领域的最高奖项。 该奖0 码力 | 38 页 | 24.68 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起6. fmtlib/fmt - 格式化库,提供 std::format 的替代品(需要 -DFMT_HEADER_ONLY ) 7. gabime/spdlog - 能适配控制台,安卓等多后端的日志库(和 fmt 冲突!) • 只需要把他们的 include 目录或头文件下载下来,然后 include_directories(spdlog/include) 即 可。 • 缺点:函数直接实现 为例)的源码放到你工程的根目录: • 这些库能够很好地支持作为子模块引入: 1. fmtlib/fmt - 格式化库,提供 std::format 的替代品 2. gabime/spdlog - 能适配控制台,安卓等多后端的日志库 3. ericniebler/range-v3 - C++20 ranges 库就是受到他启发 4. g-truc/glm - 模仿 GLSL 语法的数学矢量 / 矩阵库 5. abseil/abseil-cpp0 码力 | 32 页 | 11.40 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 性能优化之无分支编程 Branchless Programminge 等于 equal ne 不等于 not equal http://unixwiz.net/techtips/x86-jumps.html 手动进行无分支优化的方法 无分支优化:从汇编角度分析 • 发生了什么?让我们把源码和汇编逐个对应。 • x 是第一个参数(通过 edi 传入,被存入 rbp 指向的堆 栈) • 比较 x 和 0 的大小( cmp 命令把刚存入堆栈的 x 和 0 3 字节 填充零) • 返回类型 int 占据 4 字节( eax 寄存器就是 4 字节的) • 返回值都放 eax 寄存器(刚刚算得的就在 eax ,直接返 回) 无分支优化:从语法角度分析 • 刚刚其实是利用了 C 语言把 bool 类型的 true 当做 1 , false 当做 0 的特性。 • (int)true == 1 (int)false == 0 • 例如: • ifelse 的。 “ 摆大烂”的效果和 ifelse 几乎一样,也就是说根本没用,三目运算符还是生成了 低效的跳转指令,自己不上进,还指望编译器来救你?你还不如坐等天上掉馅饼。 从汇编角度分析( -O0 ) 从汇编角度分析( -O3 ) 因为 clamp 用了两次分支, if-else-if-else ,刚才 -O0 时是需要连续两次条件跳转指令的。 但是在 -O3 的淫威下,编译器把其中一个条件跳转自动优化掉了(0 码力 | 47 页 | 8.45 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化二级缓存有 256 KB , 6 个物理核心每个都有一个, 总共 1.5 MB 。 • 三级缓存由各个物理核心共享,总共 12 MB 。 通过图形界面查看拓扑结构: lstopo 根据我们缓存的大小分析刚刚的图表 • 也可以看到刚刚两个出现转折的点,也是在 二级缓存和三级缓存的大小附近。 • 因此,数据小到装的进二级缓存,则最大带 宽就取决于二级缓存的带宽。稍微大一点则 只能装到三级缓存,就取决于三级缓存的带 实战案例:矩阵乘法 • 分析访存规律: • a(i, j) 始终在一个地址不动(一般)。 • b(i, t) 每次跳跃 n 间隔的访问(坏)。 • c(t, j) 连续的顺序访问(好)。 • 因为存在不连续的 b 和一直不动的 a , 导致矢量化失败,一次只能处理一个标量 , CPU 也无法启动指令级并行( ILP )。 解决:寄存器分块(类似于循环分块) • 分析访存规律: • a(i0 码力 | 147 页 | 18.88 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 08 CUDA 开启的 GPU 编程这样,在 cudaDeviceSynchronize() 以后 ,应该可以获取数据了吧? • 结果令人失望,尽管给 kernel 传了指向 ret 的指针,但 ret 的值并没有被改写成 功。 分析返回的错误代码 • CUDA 的函数,如 cudaDeviceSynchronize() 。 • 他们出错时,并不会直接终止程序,也不会抛出 C++ 的异常,而是返回一个错误代码,告诉你出的具体什么 没有冲突,并行访问↓ 出现冲突,串行访问↓ 回到矩阵转置的案例:如何解决区块冲突? • 而刚刚那个矩阵转置的例子,这里的 blockSize 是 32 。可以看到第一个对 tmp 的访问是没冲突的。 • 而分析一下第二个对 tmp 的访问: threadIdx=(0,0) 的线程 0 会访问 tmp[0] 位于 bank 0 ; threadIdx=(0,1) 的线程 1 会访问 tmp[32] 也位于 的板块共享内存,线程之 间自动并行,没有像 CPU 那样用循环。 下一课主题? GPU vs CPU • cudaStream 异步编程(流水线式并行) • Nsight profiler 性能分析(和 Vtune 类似) • texture 与 constant 内存(为啥要他们?) • 动态内存分配( GPU 上调用 malloc/free ) • curand 、 cufft 、 cublas0 码力 | 142 页 | 13.52 MB | 1 年前3
基于 Rust Arrow Flight 的物联网和时序数据传输及转换工具 霍琳贺• OOXML - Excel 解析库 • xlsx2csv - Excel 转 CSV 工具 • Unqlite - 单文件非关系型数据库 • Wisecondor - 生物信息 CNV 分析 • mdsn - A Multi-address DSN(Data Source Name) parser. TDengine 应用开发组 • Python/Rust/Go 连接器 • 数据可视化 模块之间关联性不高但模块组成复杂,可维护性差 • 大量设备大量数据归集存储,存储压力大 • 数据总线 / 消息队列消息接入,定制化程度要求高 • 数据业务逻辑自定义需求强 • 一定的实时数据分析能力 taosX - 功能路线图 集群运维 数据接入 流式处理 流式处理 数据分享 开放平台 • Backup/Restore • Replication • Migration •0 码力 | 29 页 | 2.26 MB | 1 年前3
共 19 条
- 1
- 2













