首页 文章 精选 留言 我的

精选列表

搜索[优化],共10000篇文章
优秀的个人博客,低调大师

MaxCompute MapReduce的7个性能优化策略

1. 输入表的列裁剪 对于列数特别多的输入表,Map阶段处理只需要其中的某几列,可以通过在添加输入表时明确指定输入的列,减少输入量; 例如只需要c1,c2俩列,可以这样设置: InputUtils.addTable(TableInfo.builder().tableName("wc_in").cols(newString[]{"c1","c2"}).build(), job); 设置之后,你在map里的读取到的Record也就只有c1,c2俩列,如果之前是使用列名获取Record数据的,不会有影响,而用下标获取的需要注意这个变化。 2. 减少中间环节 如果有多个MR作业,之间有关联关系,前一个作业的输出是后一个作业的输入,可以考虑采用Pipeline的模式,将多个串行的MR作业合并为一个,这样可以用更少的作业数量完成同样的任务,一方面减少

优秀的个人博客,低调大师

MySQL 优化从库延迟的一些思路

作者:孙绪宗,新浪微博 DBA 团队工程师,主要负责 MySQL、PostgreSQL 等关系型数据库运维。 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 本文约 1000 字,预计阅读需要 3 分钟。 引言 在数据库运维过程中,无论是迁移扩容还是生产投量,都必不可少的会遇到从库迁移追不上的问题。这些问题令人头疼。 以下列举几个我个人遇到过的原因: buffer_pool 设置过大,导致 MySQL 使用 SWAP 备份导致 SQL_THREAD 回放等待 MDL 大事务 慢查询导致从库性能低下 并行复制导致从库延迟监控一直为 1s 网络问题 具体情况具体分析,这里不赘述。 如果你在常规排查之后,依然无法解决。接下来,我将根据自身的一些经验,提供一些参数调整思路,供大家参考。 思路一:sync 相关 我们在追延迟的情况,可以调整一下参数,增加日志落盘效率。后续上线从库可以再设置回来。 sync_binlog=0 sync_master_info=10000 #default sync_relay_log=10000 #default sync_relay_log_info=10000 #default 思路二:buffer 和并发等相关 可以考虑增加一下 buffer_pool,SQL_THREAD 回放执行的更快。 如果内存空间不足的话,可以适当调整 change buffer 的比例(前提是无读,正常情况下延迟库均为无业务连接)。 innodb_buffer_pool_size=24G #24*1024*1024*1024 innodb_change_buffer_max_size=50 innodb_thread_concurrency=0 innodb_adaptive_hash_index=0 增大 innodb_buffer_pool_size 风险点: 内存过度分配导致 SWAP 触发或 OOM,需预留足够内存给系统和 MySQL 其他组件,建议缓冲池不超过物理内存的 70%; 调整需分步进行,结合系统内存监控,避免一次性设置过大。 思路三:slave 相关 考虑开启并行复制 开启并行复制,8.0+ 版本考虑用 writeset。复制线程可以多观察一下,如果没够的话,可以考虑增加。但不建议超过 CPU 核心数或者 innodb_thread_concurrency 参数值。 slave_preserve_commit_order 会加一层锁,追延迟的时候建议关闭,后续上线从库可以再打开。 slave_parallel_type=LOGICAL_CLOCK slave_parallel_workers=16 slave_preserve_commit_order=OFF 个人不建议修改以下参数 ,性能虽然会有所增长,但同时会导致主库 commit 等待。当然部分非实时类业务可以调整。 binlog 的组提交的两个有关参数: binlog_group_commit_sync_delay 参数,表示延迟多少微秒后才调用 fsync 刷盘; binlog_group_commit_sync_no_delay_count 参数,表示累积多少次以后才调用 fsync。 考虑关闭 log_slave_updates log_slave_updates 这个需要重启生效。但是有 gdb 经验的小伙伴可以 gdb 修改,不需要重启,只需要重启 slave 复制即可生效。无 gdb 经验可能会导致 crash 不建议。 同时注意需要了解架构,没有 binlog 备份或者级联库,且无业务连接,建议可以关闭。 思路四 MGR 架构可以考虑先改为异步复制,关闭 slave_preserve_commit_order,待延迟追完后再加入到集群。 思路五 其他性能参数按照模板理论上不会有太大问题,这套操作下来延迟大概率会有所下降,降为 0 只是时间问题。 附录 并行复制积压日志解析: 2021-01-10T16:08:39.947611+08:00 85441 [Note] Multi-threaded slave statistics for channel '';seconds elapsed = 120;events assigned = 4005889;worker queues filled over overrun level = 0;waited due a Worker queue full = 0;waited due the total size = 0;waited at clock conflicts = 6918018179200 waited (count) when Workers occupied = 0 waited when Workers occupied = 0 -------------------------------- Multi-threaded slave statistics for channel ": seconds elapsed = 120; 每隔120s输出 eventsassigned = 4005889; 总共有多少个event被分配执行 queues filled over overrun level = 0; 多线程同步中,worker 的私有队列长度超长的次数 waited due aWorker queue full = 0; 因为worker的队列超长而产生等待的次数 waited due the total size = 0; 超过最大size的次数 waited at clock conflicts= 6918018179200;因为逻辑时间产生冲突的等待时间,单位是纳秒 waited (count) when Workers occupied = 0 因为workder被占用而出现等待的次数。(总计值) waited when Workers occupied = 0 因为workder被占用而出现等待的总时间,总计值,单位是纳秒

优秀的个人博客,低调大师

ip2region 3.11.1 发布 - Java 服务构建优化

Ip2region是一个离线的 IP 数据管理框架和定位库,同时支持 IPv4 和 IPv6,支持亿级别的 IP 断管理,10 微秒级别的查询性能,提供了很多主流编程语言的 xdb 数据格式的生成和查询实现。 ip2region 官方社区已正式上线旨提强化 IP 相关的工具链和数据服务,目前提供了稳定的商用离线数据、在线查询测试、xdb 使用 / 技术文档。 ip2region 3.11.1 详细更新如下: 1,java xdb 内部的 String xdbPath 全部替换为 File xdbFile,支持通过 File 创建查询对象。 2,java xdb.Searcher 增加通过 InputStream 加载整个 xdb 文件 / header / vectorIndex / 验证。 3,java service.ConfigBuilder 增加 setXdbInputStream 和 setXdbFile,支持通过 InputStream 和 File 构建 service.Config。 如果通过 setXdbInputStream 来指定 xdb 数据源,此时的缓存策略只能指定为 Config.BufferCache,该方式仅方便从 jar 包中加载 xdb 文件的内容,虽然我一直建议 xdb 文件不要打包到 jar 包里面,调用方式如下: import org.lionsoul.ip2region.service.Config; import org.lionsoul.ip2region.service.Ip2Region; final Config v4Config = Config.custom() .setCachePolicy(Config.VIndexCache) // 指定缓存策略: NoCache / VIndexCache / BufferCache .setSearchers(15) // 设置初始化的查询器数量 // .setXdbInputStream(InputStream) // 设置 v4 xdb 文件的 inputstream 对象 // .setXdbFile(File) // 设置 v4 xdb File 对象 .setXdbPath("ip2region v4 xdb path") // 设置 v4 xdb 文件的路径 .asV4(); // 指定为 v4 配置 4,maven pom 版本更新为 3.3.1,最新坐标如下: <dependency> <groupId>org.lionsoul</groupId> <artifactId>ip2region</artifactId> <version>3.3.1</version> </dependency>

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册