设备云服务平台性能优化总结

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 明天就要离职了,下家也没有确定,心里还是有些不安的,只能希望自己有一个好的前途啦。月初已经明确跟老大说要离职了,但因为项目较赶,且存在性能问题,老大一直不给批。我只能硬着头皮上了,解决目前项目中存在的性能问题。
明天就要离职了,下家也没有确定,心里还是有些不安的,只能希望自己有一个好的前途啦。月初已经明确跟老大说要离职了,但因为项目较赶,且存在性能问题,老大一直不给批。我只能硬着头皮上了,解决目前项目中存在的性能问题。很多时候真的是把人给逼出来的,在摸索中成长。谈谈最近项目上遇到的一个问题吧。

设备端往云平台发送日志信息,由于设备数量较大,导致上送的日志信息较大,在前期设计的过程中更新数据库都是采用直接插入的方式,在设备数量达到一定量之后,性能急剧下降,同时上送的过程占用了IO的性能,导致读写数据库都非常的慢,为了解决这个问题,我将数据库部署在另一台服务器上,而服务器端只接收数据,解析数据,计算,保存,这个过程减小了服务器端的压力,但是毕竟两台设备处理,提高性能是必然的。

目前测试基本确认,将数据库和服务器分离之后,5分钟内,数据库插入数据量超过100W条,因此基本满足目前的功能需求。

为了实现这个100万条的数据量采用了如下的一些优化点,主要采用了内存提高性能的方式:
   >> 服务器端的修订
         1.1 在接收到包的过程中加快数据的处理能力,采用队列的方式将待处理的数据分发给不同的日志处理线程,该队列需要根据部署设备的参数进行调整,同时需要进行互斥同步,防止设备端无限制的上传信息。未来考虑采用内存文件系统,减少维护内存的代价,同时不能很好的解决服务器重启的问题。

         1.2 服务器与数据库的交互过程中采用了队列,该队列根据不同信息的数量进行合理的判断和设计。插入操作的过程对于每种不同的日志类型分别进行更新数据库操作。因此在日志处理线程需要和数据库更新线程进行同步,尽量使得更新数据库的过程中采用批量更新或插入。
      整体而言,服务器端采用了内存换性能的方案。
      
      第一版开发中采用了从硬盘读日志的方式,该方案基本已经被重写了,原因是硬盘的IO存在一定的瓶颈,导致对其他各阶段的处理都提高不大。因此在数据量较大的服务器中尽量减少硬盘的使用,能使用内存的情况下尽量使用内存。也可以使用内存文件系统,但是文件系统的容量大小需要进行合理的设计。

      >> 数据库部分的修订
         1.1 选择合适的主键,在mysql中选择合适的主键,在进行数据库操作的过程中将有大幅度的提升,比如需要更新设备当前的位置信息,采用设备的表示作为主键,则可以直接使用mysql中提供的replace代替先查询在insert、update的方式,同时replace支持批量的操作,在大设备量的情况下采用replace会有一定程度的性能提示,毕竟mysql内部的机制能够保证数据的快速操作。
         1.2 在主键不方便选择的情况下,建议采用id作为主键,并设置为自动增长,这样在插入数据库的过程中就能较好的维护主键,能够支持多批量的插入。
         1.3 选择表的合适引擎,在Mysql中Innodb的是行锁,而MyISAM是表锁,但是innodb的插入性能相比MyISAM性能差不少,因此在设计表的过程中需要考虑当前表的使用情况,若插入多,查询少,更新少,则建议采用MyISAM引擎,若更新频繁或者查询频繁,则建议采用Innodb的类型。具体的根据实际情况选择。

经过一系列的处理后,目前性能有了一定的提高,且给出了一些可优化的点,基本算是达标,终于可以解放啦。

这一段时间的工作总算有了个结果,今晚和同事小聚了一下,也算是把一些剩余工作交接一下吧,后天出发回来的地方,南京我要回来啦。
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
弹性计算 运维 监控
带你读《云上自动化运维宝典》——提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具(2)
带你读《云上自动化运维宝典》——提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具(2)
|
4月前
|
消息中间件 弹性计算 运维
带你读《云上自动化运维宝典》——提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具(1)
带你读《云上自动化运维宝典》——提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具(1)
|
2月前
|
弹性计算 运维 安全
提升云上资源稳定性的两大利器,事件驱动体系构建&自诊断工具
阿里云弹性计算团队十三位产品专家和技术专家共同分享云上运维深度实践,详细阐述如何利用CloudOps工具实现运维提效、弹性降本。
|
2月前
|
监控 小程序 开发者
【3月开发者日回顾】“小程序加速审核能力”即将上线!
【3月开发者日回顾】“小程序加速审核能力”即将上线!
22 0
|
4月前
|
弹性计算 运维 安全
带你读《云上自动化运维宝典》——提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具(3)
带你读《云上自动化运维宝典》——提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具(3)
带你读《云上自动化运维宝典》——提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具(3)
|
4月前
|
弹性计算 运维 监控
提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具
阿里云弹性计算技术专家王子龙和阿里云弹性计算技术专家樊超在本次课程中带来了题为《提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具》的主题分享, 课程涵盖基于事件构建可观测体系、基于事件的云上运维、ECS事件驱动最佳实践、使用ECS遇到故障时的痛点分析、一眼排障ECS健康状态、一键定位ECS健康诊断等内容。
|
缓存 安全 算法
CleanMyMacX2023功能优势介绍
CleanMyMac更新最新版本x4.12,完美适配新版系统macOS10.14,拥有全新的界面。CleanMyMac可以让您安全、智能地扫描和清理整个系统,删除大型未使用的文件,减少iPod库的大小,最精确的应用程序卸载,卸载不必要的应用程序或修复不能正常工作的程序,管理所有的扩展和做更多的事情-所有从一个新设计和美丽简单的界面。
124 0
|
设计模式 自然语言处理 数据可视化
管理平台优势
介绍 DM 是一个完全开源的项目,源代码全部托管在 Gitee 上,项目源码和核心插件源码放在 https://gitee.com/xiaomagenb/dlvm
110 0
管理平台优势
|
存储 容灾 安全
如何利用工具低成本构建阿里云灾备方案?
如何利用工具低成本构建阿里云灾备方案?
如何利用工具低成本构建阿里云灾备方案?
|
安全 应用服务中间件 PHP
云上部署的便利性和方案
低门槛上云的可选部署方案
248 0
云上部署的便利性和方案