互联网系统性能优化方向

之前弄过一个门户系统,其最初每天只有几百个用户会访问使用,后来在公司业务各种推广后,这个门户系统在最高峰的时候,每秒并发1000,

而在这期间,进行了许多分析和优化,作以此文记录。

本文将从代码层面,硬件层面进行分析

代码层面:

许多业务系统性能不够,其在代码层面其实有很大的优化空间。

例如一个对常用业务进行分析,很多时候,我们开发这个功能的时候,并没有考虑到其性能,尤其是在当初功能急着上线的时候,这类只实现功能,却性能比较差的模块,到处都是,面对庞大的功能模块,我们如何定位是哪里消耗时间最多?

这个时候,我们可以用最古老的方式,打印时间,通过对常用业务流程,进行记录进入代码的时间,和离开此段代码的时间,就可以得出业务执行消耗的时间。一般超过5秒才执行完的业务就要仔细分析,CPU的处理业务能力的很强的,如果一段逻辑需要处理5秒,就得考虑这个模块是否存在优化空间,可以从业务场景去分析,例如如下的场景:

1.此模块频繁对数据库进行IO

分析是否有相关属性值可以预存到内存中,而不用每次都从数据库去获取。

2.是否有些业务并非需要实时

许多业务,只是为了更新数据库做记录,类似场景不需要实时去处理,可以考虑延时处理。即弄个定时器,每次数据过来,先存在缓存,一定时间再存回数据库。

3.代码是否写的性能低下

如果一段简单的功能,当初实现时可能只为了赶时间,可能会写的复杂离谱,可以考虑重新写过,尽量减少多层循环。

4.功能剥离

有些高并发的场景,可能只是一个特殊的场景,如抢红包功能,每天只是某个时候,特别多人前来,可以考虑将这个功能单独抽离出来,这样即便红包出现严重高并发,对原系统都不会什么影响。

5.恶意攻击:

如果一个系统有金钱派送,可能会有许多羊毛党通过一些恶意刷工具,进行攻击套利,这个时候需要考虑能否从业务场景去限制流量,或者对用户进行拉黑处理,终究不能因小失大。

关于代码层还有很多优化空间,前面只是列举了大方向。真正对于系统的优化,还需要具体问题,具体分析。

硬件层面:

如果对于代码层的优化已经达到无能为力的时候,硬件层还是需要扩展,终究你不能在一台小霸王机器上运行windows。

集群的方案在网上已经有相当多了,这里就不说什么,只是提醒各位,在对硬件进行集群升级的时候,原来代码层面还是有许多地方需要考虑更改,例如写在内存的变量和定时任务等等这些。

今天就先更新到这里了。

时间: 2024-10-14 22:23:21

互联网系统性能优化方向的相关文章

为迷茫的互联网金融指明方向,平安天下通社交金融引发业界讨论

近年来,互联网金融呈现了迅猛增长的势头,从当前形势来看,互联网金融大致呈现了以下两种主要的模式,一种是以余额宝为代表的宝宝类产品,另一种则是P2P网贷平台.不过,由于余额宝收益下滑严重,加上P2P网贷平台倒闭潮涌现,使得业界对互联网金融未来发展产生了质疑,一些业界人士甚至直接称互联网金融为"硬骨头",难啃. 其实出现上述问题并不奇怪,金融是一个非常专业的行业,而互联网金融则兼具互联网特性和金融的专业性,这意味着,目前很多打着互联网金融旗号的企业大多数只是浑水摸鱼而已,一旦行业从疯长回归

存储性能优化方向整理

0概述 0.1 存储性能优化指标 io速率:速率提升数值和百分比 iops:iops提升数值和百分比 0.2 优化方向概述 块存储优化方向:优化的工作,基本上都是在底层,上层只是一些配置. 这些底层的技术适用于ceph块设备,主要是ceph还有自身的一些配置.缓存方案可以拿过来用,在最后补充一下. 底层包括qemu/kvm/kernel三个层面,kernel又主要是filesystem.scsi和block这部分和存储关系最大,也是存储系统由上而下的三部分.我认为如果优化的话,主要工作在这几个方

MySQL优化方向&思路

硬件级别         操作系统和硬件级别的优化着眼点: 1.对于CPU密集型的应用场景要使用更快速度的CPU甚至更多数量的CPU,为有着更多查询的场景使用更多的CPU等.基于多核以及超线程(hyperthreading)技术,现代的CPU架构越来越复杂.性能也越来越强了,但MySQL对多CPU架构的并行计算能力的利用仍然是有着不太尽如人意之处,尤其是较老的版本如MySQL 5.1之前的版本甚至无法发挥多CPU的优势.不过,通常需要实现的CPU性能提升目标有两类:低迟延和高吞吐量.低延迟需要更

大型电商互联网性能优化案例

大型电商互联网性能优化案例 理论基础 The Theory 平台设计 Platform Design 业务结果 Business Impact 双11优化 架构思考 Architecture Takeaways   ----------------------------------------------------------------------------------------------------------------------------------------------

唤醒亮屏速度优化方向

MT6753 在开了自动背光,唤醒亮屏速度不是很理想.客户提供了以下优化方向: 1.缩短初使化硬件的时间,优化autosuspend 和earlysuspend过程.2.调整lcd,tp,各种sensor的唤醒顺序.优先初始化光感和lcd. 先不去考虑具体器件IC上的延时因素,在MTK平台,若要按上面两点方向进行优化,平台这边具体code 如何修改? 若修改上面有此什么风险也请指出. 测试用例:adb logcat -v threadtime | grep -r "Excessive delay

oracle 性能优化方向

1调优设计 架构设计(RAC/单机).应用设计(模块设计.E-R模型设计) 2调优应用 代码调优.应用存储对象调优 3条用内存 数据高速缓存区.共享池.重做日志缓存区.大池 4.调优I/O RAID模式.文件系统与裸设备.存储缓存.表空间数据文件划分. 存储对象分布等 5.调优竞争 回滚段.Lock \Latch oracle 性能优化方向,布布扣,bubuko.com

后端系统性能优化(第一季:改掉那些坏代码)

我们核心业务系统的中心服务每天承载着上千万金额.几十万笔的订单量,在数据量高速增长,公司业务节节攀升的客观因素下,以及面对即将到来的6月份世界杯的流量\交易 高峰的压力,核心业务系统性能优化以及重构显得越发重要而又迫在眉睫. 时刻准备着 在进行性能优化之前,我们做了很多的准备工作,包括 压力测试,数据库sql提取,性能监控日志数据,请求量等数据的收集,分析整体的性能瓶颈,请求量的波动特点,数据库负载波动情况. 压力测试,几个部门通力的合作,把系统在极端并发的情况下所表现出来的性能瓶颈收集出来,分

后端系统性能优化(第一季 3 sql优化)

昨天的博文介绍了如何去发现坏代码,如何优雅的去实现一个应用内的监控程序. 博文地址:后端系统性能优化(第一季 2 找出坏代码) 当然发现了坏代码之后,我们还是要想办法来改掉它,也许它会很顽固.今天说说性能优化的一个非常重要的部分:sql的优化 今天要说的不是怎么来写优秀的,性能好的sql,这些DBA们会比我更加专业.在我们公司,凡是DBA能优化的sql,DBA都在内部消化了,需要反馈给我们的,说明他们可能也束手无策.也是我们该出手的时候了. insert,update这类型的sql,性能一般不会

后端系统性能优化(第一季 2 找出坏代码)

昨天开了个头 博文链接:后端系统性能优化(第一季:改掉那些坏代码) 今天,来说说 什么样的代码才是坏代码,怎么来找出这些坏代码. 不少猿在吐槽烂代码.但是我们今天说的不是烂代码,坏代码只需要改动很小的一部分,把它的坏的地方改掉,他依然是好代码 .而烂代码,只有重新写过了,才会让你觉得浑身轻松,压力瞬间释放,而且在写之前你还得花90%的时间去看懂它.所以我说改掉坏代码,因为只有坏代码才能改,而烂代码是用来看.我很庆幸我在的这个团队的代码驾驭能力都还不错,很少有烂代码.但为什么还会有坏代码?坏代码不