本文是我从业多年开发生涯中针对线上业务的处理经验总结而来,这些业务或多或少相信大家都遇到过,因此在这里分享给大家,大家也可以看看是不是遇到过类似场景。 本文大纲如下, 后台上传文件 线上后台项目有一个消息推送的功能,运营新建一条通知消息时,需要一起上传一列包含用户 id 的文件,来给文件中包含的指定用户推送系统消息。 但是 CSV 文件针对复杂电子表格操作的支持就没 Excel 功能那么强大了,不过在这个只有一列的文件上传业务里够用了。 海量日志采集 公司线上有一个项目的客户端,采用 tcp 协议与后端的一个日志采集服务建立连接,用来上报客户端日志数据。 在业务高峰期下,会有同时成千上万个客户端建立连接,实时上报日志数据。 最后聊两句 到这里本文所介绍三个线上业务优化实战就讲完了,其实这种实战案例还有很多,但是碍于篇幅本文就没讲那么多拉,后续有机会也会继续更新这类文章,希望大家能够喜欢。
如何优化线上WebAssembly WebAssembly部署使用 HTTPS : 为什么? 项目第二次加载无需加载程序集,只需要等待WebAssembly预热完成,基本上在1.5s左右(因电脑而已 i7 11代CPU测试,因为WebAssembly会使用本机性能所以会因为电脑性能导致加载时间过长) 优化第一篇参考 : 如何将WebAssembly优化到1MB?
线上的SQL优化案例(一) 今天上班的时候,业务方询问了一个问题,说是某一服务每次在查询的时候会有0.5s的延迟,让DBA帮忙查一查到底是什么原因,听到0.5s的这个数字的时候,我感觉问题倒不是很严重 4、初步修改意见 有了对表结构的认知和SQL语句,我当时的第一反应是这个SQL写的是否满足需求,问了一下业务方,他们说是为了查询uid写出来的SQL,那么其实这个SQL中的select *是不必要的 5、这样测试了一把之后,业务方反馈说是并没有明显的降低查询时间。时间还是在0.3s左右,还是不能满足需求。 最终的优化前后对比结果如图: 优化之前: ? 优化之后: ? 可以看到,效果还是很明显的。 今天的文章就到这里了。
本篇文章面向已经完成集成并准备或已经上线的开发者,介绍了一系列能在应用层进一步提升用户体验与可维护性的优化措施,涵盖缓存与加载策略、IndexedDB 管理、离线及弱网支持、监控与反馈及性能测试等维度。 上线后常见痛点与优化方向在项目正式上线并有了一定的用户规模后,使用者往往会遇到以下痛点:首次加载过慢:.wasm 文件可能体积较大,如果没有合适的缓存策略或在首屏就全量加载,用户体验会受影响。 下面将针对这些问题,给出应用层面可执行的优化方案。3. 然而,真正的用户体验优化不只关乎 SDK 本身,而是更多地取决于应用层面的策略设计和周边配置,比如:缓存与加载:合理利用 HTTP 缓存、懒加载来提升加载速度,减少带宽浪费。 希望通过这篇文章提供的思路和建议,能够帮助你在上线后快速完成应用层面的优化,让最终用户获得更加流畅、稳定的实时通讯体验。
defender的特点就是敏感度很高,存在一定的误报率,如果没有业务漏洞、系统没有弱密码并且及时打补丁,一般来说很难从系统层面攻破。 defender跑起来时CPU利用率升高符合预期,如果不需要业务程序被扫描,可以从defender里信任过滤,参考https://www.87com.com/post-6.html defender相关计划任务
在线下业务无法开展的现在,捉紧时间把业务转到线上开展,才能够抢占市场份额,让企业扭转乾坤,成为第二个“马云”。现在,耐思智慧送您5大在线办公锦囊,祝您提升工作效率,无惧疫情影响开展业务。 锦囊三:线上业务平台 线上展现.jpg 对于企业,特别是实体店来说,受疫情影响最大,无法线下开铺,顾客无法访店,导致产品无法销售,经济损失惨重。 工具:建站宝盒 线上展示平台,不但能让企业和实体店多了一个销售的渠道,更能够在线下无法经营时,及时利用线上营销,进行业务渠道的切换。 在互联网发展越来越快的今天,线上平台,一定会变成主流。 锦囊四:线上业务推广 线上业务推广.jpg 对于线下走访、派传单、刊登报纸广告等方式的线下走访业务,很多人都纷纷表示难以看到效果。 因此,大家也可以尝试从网站的seo推广方式入手,如“千城千站”ai智能推广系统,能够从优化网站开始,帮助您的企业网站稳定、快速地登上搜索引擎的首页,覆盖大量互联网人群,获取更多的客户。
金融企业经过20几年的发展,大部份业务都由线上业务系统支撑,业务数字化主要包括业务线上化、数据业务化、业务智能化三个方面。 业务线上化是基于连接、数据、赋能的数字化思维,对成熟的业务场景进行业务重塑,沉淀企业数字化能力,让业务和技术相互融合,扩展业务边界,增加支撑创新业务的能力。 业务线上化不仅仅是指将线下业务操作转移到线上系统,关键是业务在线化与业务数据化,需要关注:数据在线、产品研发在线、业务运营在线、渠道在线、客户在线、风控在线六个在线。 注:本篇杂谈从前面的数字化业务、数字化管理、数字化技术上进行细化,重点围绕重塑业务流程,业务线上化。 5.客户在线:优化客户体验,从满足功能向重塑客户体验转变 客户需求将更加多样化与个性化,企业需从原来“以满足业务功能为主”的建设思路向“主动优化客户体验”转变。
所以这个要进行优化。 优化步骤 创建一个支付接口,提供两个方法 public interface Pay { PayResponse pay(PayRequestType payRequestType); T> getBeansOfType(Class<T> clazz) { return applicationContext.getBeansOfType(clazz); } 优化后代码
前几天我把我们小程序登录接口性能优化了,优化之前登录接口响应时间大概是 300 ms 左右,优化后的响应时间大概在 70 ms 左右。 我们小程序登录接口涉及到的业务操作除了基本的登录验证功能外还加了个用户小程序openid的获取和保存操作。
线上数据量 merchant_member_info:7000W 条数据。 member_info:3000W。 不要问我为什么不分表,改动太大,无能为力。 ④SQL 执行效率 优化前,如下图: ? 优化后,如下图: ? type 由 index→ref,ref 由 null→const: ? 最终的分页查询优化 上面的 SQL 虽然经过调整索引,虽然能达到较高的执行效率,但是随着分页数据的不断增加,性能会急剧下降。 ? 最终的 SQL 优化思路:先走覆盖索引定位到,需要的数据行的主键值,然后 INNER JOIN 回原表,取到其他数据。
数据库性能优化的常见手段有很多,比如添加索引、分库分表、优化连接池等,具体如下: 图1 数据库性能优化的常见措施 02 MySql性能优化 理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板 从设计稿出发,提升页面搭建效率,亟需解决的核心问题有数据来源:交易数据的来源,包含业务信息、联系人、数据接入协议 2.1 MySql底层架构 首先了解一下数据的底层架构,也有助于更好地优化。 idx_rx_create_time` (`rx_create_time`) 当时这张表的量级是2000多万,而当这条慢SQL执行较少的时候,数据库的CPU也就恢复到了49.91%,基本可以恢复线上业务 当线上业务逻辑复杂的时候,很难第一时间知道到底是由于哪条SQL引起的,这个就需要对业务非常熟悉,对SQL很熟悉,否则就会白白浪费大量的排查时间。 ,也就说线上29,000,000的数据量被分成了不到10份,rx_status=5的值是其中一份,因而通过这个索引就可以命中很多行,这是业务规则,再套用MySQL的特性,主要是以下几条: 1.
这时可能发现突然莫名线上DB执行某查询SQL就突然性能出现抖动,平时只要几十ms查询,这次一下子要几s,毕竟你要等待大量脏页flush磁盘,然后语句才能执行。 所以此时假设你在执行大量更新语句,可能突然发现线上DB莫名很多更新语句短时间内性能都抖动了,可能很多更新语句平时就几ms执行完,这次要等待1s才能执行完。 综上,导致线上DB的查询和更新语句莫名出现性能抖动,很可能就是上述两种情况导致的执行语句时大量脏缓存页刷入磁盘,你要等待他们刷完磁盘才能继续执行。 但若将那批缓存页刷盘的时间优化到100ms,该SQL总执行时间就只需300ms,性能提升很多。所以关键之一就是尽可能减少缓存页刷盘的时间开销到min。 关于这比例,这里的优化其实不用关注,核心就是把innodb_io_capacity设为SSD的IOPS,即随机I/O速率。
MySQL线上日志库迁移优化案例 说说最近的一个案例吧,线上阿里云RDS上的一个游戏日志库最近出现了一点问题,随着游戏人数的增加,在线日志库的数据量越来越大,最新的日志库都已经到50G大小了,在线变更的时间非常长 之前之所以没有发现,是因为之前一直没有进行过日志库的变更,但是随着业务的深入,需要增加一些游戏属性,要对之前的日志库进行变更,这样一来,长时间的维护窗口让业务方和DBA都望而却步,日志优化迫在眉睫。 首先看日志库的情况: 1、日志库中数据量大于5000w的大表有5张; 2、这5张表开量前每个月的数据量大概在2000w左右,开量后会更多; 3、有2个表的索引大小已经超过数据文件大小 询问了业务方和运营对这些表的要求 ,具体如下: 1、保留最近这3个月的数据,其他的数据可以进行流转,避免影响线上业务的性能。 6、设置定时任务,按照一定的周期清理线上的过期数据,确保线上只保留最近3个月的数据,不会对rds的磁盘存储空间产生压力。
所以,在使用图片的时候,需要对图片进行优化。图片优化是指对图片进行相应的设置,让搜索引擎更加容易的收录和抓取。 如果图片链接了相关的文章,而文章又对图片起到了说明作用,那么只要图片被收录,也意味着文章也被收录了,这样就可以达到理想的优化效果。
优化"Using filesort"的目标是减少排序所需的资源和时间,从而提高查询效率。聊聊 order by 是怎么实现的? 因此,当执行计划中出现"Using filesort"时,这是我们可以优化的一个方向。(但是,并不是说一定要优化! 要看是否有必要以及收益是否够大)针对"Using filesort"的优化,可以有以下几个方向:优化方向尽量使用索引排序:索引是天然有序的,所以当我们在使用 order by 的时候,如果能借助索引,那么效率一定是最高的 优化 MySQL 配置:我们还可以调整 sort_buffer_size 参数。这个参数决定了排序操作可以使用的内存量。 此时可以利用我之前的文章(首先想到的优化方式就是提升这个 sort 的性能。):聊聊 order by 是怎么实现的?
在面临系统故障时,可以迅速恢复业务流程,避免因数据丢失导致的业务中断。- 优化建议:设置合理的备份策略和灾备恢复机制,确保在出现故障时,业务能够迅速恢复,减少系统停机时间。5. 在业务流程中,通过角色和权限管理,可以精细化控制不同用户对数据的访问权限。- 优化建议:根据业务需求,设置合理的访问权限控制,避免不必要的安全隐患,同时满足合规性要求。7. 根据业务需求,选择合适的数据模型可以提高存储和查询效率。- 优化建议:根据业务需求,选择最合适的数据模型进行存储和处理。例如,对于社交网络业务,可以使用图数据模型来存储用户关系数据,提升查询效率。 总结:通过合理配置 YashanDB 的各项功能,可以在数据存储、处理、备份、安全等方面优化业务流程。 具体来说,优化分片策略、索引设计、并发控制、事务管理以及定期监控性能等,都会对业务流程的效率和稳定性产生积极影响。
我相信很多程序员都会有这种“线上服务器老是卡”等烦恼,那我今天给大家讲讲该如何优化线上服务器老是卡的问题。 听多了架构优化,数据库优化,今天我们来聊聊服务器优化。 以一个订单业务为例,经过测试后,一台配置为4核 CPU 、16GB内存、10Mbps带宽、50GB机械磁盘的服务器的测试结果为:支持50并发量和300TPS吞吐量(增大并发量后会出现超时报错)。 TCP相关设置 修改TCP相关参数,可以优化TCP高并发通信,编辑/etc/sysctl.conf文件,添加以下内容 # 为防止洪水攻击,高并发系统需要将此项关闭 net.ipv4.tcp_syncookies
尝试优化 既然CPU占用这么低,那么有没有可能从CPU占用这个角度进行优化呢,提升CPU占用,提高服务处理能力,这样就能加快其加载速度了。 对于这种,一般稍微有点经验的,就会知道该怎么优化,对,就是使用多线程。 既然决定使用多线程,那么就得彻底点,多线程处理订单,在每个订单中,又采用多线程进行数据加载和处理,我们暂且称之为M*N多线程设计模型,如下: 在上图中,采用多线程方式对Retargeting服务进行优化 开始上线,上线完成,看了下CPU利用率,完美: 数据说话,对比下优化前后同一个订单的处理时间: 性能提升接近30倍,符合预期。。。 结语 需求,总是自我技术提升,架构升级优化的动力源。 有时候,一个简单的小优化,就能达到事半功倍的效果。 最近在跟某友提到此事的时候,对方随即来了一句祖传屎山,只能跟其解释,这是6年前自己造的,含着泪也要进行优化,哈哈哈哈。
前段时间,博主线上项目的几个后端接口执行耗时达到了三、四秒钟以上,查看接口代码,发现 sql 语句执行过慢,于是开始分析 sql 执行 这里把比较经典的优化案例分享给大家。 二、update 批量更新优化博主以前线上项目(Spring Boot + Mybatis)有一个接口需要批量更新库存,当时博主本着不能再代码 for 循环中执行更新逻辑的初衷,决定再 xml 文件中使用 三、多线程优化大批量数据插入速度博主线上有一个 cdk 兑换码业务,运营在后台创建一批 cdk 码时,系统会将这批码插入数据库中保存,这样可以保证用户兑换 cdk 时,码在数据库存在才能兑换,保障安全性 当运营创建十万条cdk记录时,线上耗时达到了十几秒。 总结到这里,本文所分享的3个优化案例就介绍完了,希望对大家日常开发有所帮助,喜欢的朋友们可以点赞加关注。
“ 前几天跟某互联网主题旅游网架构师聊起性能调优的话题,那个时候正好遇到一些线上调优的一些困惑,希望一起探讨一下。 ? 图片来自 Pexels 他跟我说,他们公司的系统从来没有经过性能调优,功能测试完成后就上线了,线上也没有出现过什么性能问题呀,为什么要进行调优呢?? ? 可谓底气十足啊!!! 一款线上产品如果没有经过性能测试,那它就好比是一颗定时炸弹,你不知道它什么时候会出现问题,你也不清楚它能承受的极限在哪儿。 这时候,产品经理一般会提供线上预期数据,我们在提供的参考平台上进行压测,通过性能分析、统计工具来统计各项性能指标,看是否在预期范围之内。 在项目成功上线后,我们还需要根据线上的实际情况,依照日志监控以及性能统计日志,来观测系统性能问题,一旦发现问题,就要对日志进行分析并及时修复问题。