互联网程序员必备的性能优化技术 互联网程序员必备的性能优化技术是
gaoyangw 2024-10-04 16:52 11 浏览 0 评论
互联网的发展推动了越来越多的企业加入互联网,越来越多的产品出现在互联网,越来越多的网民涌现在互联网,除了提供基本的服务之外,还需要提供更好玩、更便捷稳定的服务,就像手机一样,我们对它最基本的性能要求就是待机时间长,在互联网的性能要求就是不慢不卡,因此性能优化技术是互联网程序员必须掌握的技术。
一套应用程序能运行起来,除了最上层的前端服务、业务层算法之外,还有数据库、操作系统,因此性能优化技术包含了负载均衡技术、缓存技术、数据库技术、RPC技术(RemoteP)、进程通信技术、IO多路复用技术、IO零拷贝技术,互联网程序员掌握了这些技术,就像学好了数理化一样,走到哪里都是香饽饽。
所谓负载均衡技术,就是用来将计算资源、存储资源、网络资源根据实际情况进行分配的一种技术,通过多个节点承载服务,用来达到最优的资源利用、最快的响应时间,实现了性能优化。负载均衡的分类也有很多,有客户端负载均衡、服务器端负载均衡、软件负载均衡、硬件负载均衡。以服务端负载均衡为例,用户在前端发起请求后,经过网络传输给服务端,再通过服务端的负载均衡算法去选择对应的服务器提供服务,最常见的就是nginx算法了。
在负载均衡之后,便是缓存技术,它是通过将访问的热数据提前存起来供业务访问,降低了数据库压力、降低了用户响应时间,实现了性能优化。负载均衡把请求分担为多个节点执行,每个节点都承载着服务的提供,当用户请求从前端经负载均衡算法分配过来后,如果直接去访问获取磁盘的数据库数据,就会非常慢。如果有了缓存,在用户请求到达之后,业务线程就会先访问缓存,如果缓存命中就直接返回用户,如果没有命中,则继续请求磁盘数据库数据,获取后返回用户,同时将磁盘获取的数据结果回写到缓存系统,为下次请求做好准备。
在缓存之后便是数据库技术,缓存访问热点数据后,执行的交易操作需要对数据库中的表进行增删改查,通过将数据库分为主库、读库、大表分为小表,让每个用户请求都能快速访问到数据、快速执行操作,降低了用户延迟,实现了性能优化。数据库的读写分离,使用一台数据库服务器作为主数据库(master),把业务数据都写入该数据库,再另外使用另一台数据库服务器来作为从数据库(slave),将业务数据同步到该数据库上,当业务进行读操作时就读取备数据库的数据即可,这样即缓解了数据库压力,又实现了备份。
在数据库技术之后,便是操作系统级别的IO多路复用技术。我们知道一个程序运行时是一个进程,而程序里有很多的方法要去执行,每个方法就是一个线程,通过并发处理客户端的多个线程请求,并同时等待多个连接发送的请求,减少系统的开销、降低用户延迟,实现了性能优化。此外,IO多路复用也不需要额外创建和维护线程监听客户端的大量连接,减少了服务器的开发和维护成本。典型的线程级别优化技术有java线程池、数据库连接池、PHP内存池。
在IO多路复用技术之后,便是IO零拷贝技术。在操作系统一般把内核划分成内核空间、用户空间,Linux操作系统中读取数据操作都是基于数据拷贝完成的,也就是说数据会在内核地址空间的缓冲区和用户地址空间的缓冲区进行拷贝,数据读取流程一般包含四部分,
1.操作系统需要先从磁盘里读取文件到内核页面的缓存;
2.用户态的应用程序从内核态读取数据到用户空间缓存区,由于内核态的资源比较宝贵会经常释放;
3.用户态的应用程序还需要将数据写回内核空间并放入socket缓冲区;
4.最后操作系统将数据从socket缓冲区复制到网卡接口,再经由网络发送给到消费者进程。
零拷贝技术,将磁盘文件的数据复制到页面缓存中,然后将数据从页面缓存直接发送到网络给到不同的订阅者,避免了重复拷贝操作,极大的提高了速度,实现了性能优化。
从负载均衡、缓存、数据库到IO多路复用、IO零拷贝技术,完成了单服务从业务级到操作系统级的性能优化,但微服务技术的出现将单服务拆分成了多个微服务,对于云原生、微服务时代的性能优化,那便是RPC远程调用技术。
远程是相对本地而言的概念,本地调用存在的场景是在一个服务中有不同的函数实现不同的功能,一个函数要使用另一个函数的功能,那必然要调用它。在本地函数调用时,一般会经过这几个步骤,即函数返回地址入栈、函数参数入栈、堆栈空间提升、函数参数复制、开始函数调用、堆栈情况。
当服务拆分成了微服务之后,函数是在不同的微服务、不同的机器上运行,一台机器想要调用另一台机器的函数执行某个功能,只能通过网络请求来实现(借助两个服务共同维护的关联式容器stub),不能再像本地调用一样使用函数指针实现了。有了RPC,不仅是微服务与微服务之间的调用变得简单,不同语言之间的调用也变得简单了。
以前JAVA语言想要调用C++语言,那是不可能的事,因为用不同语言写的代码,根本无法通信啊。而现在有了RPC,只要框架上支持该语言的解析,那么就可以了。Java语言传递过来函数1的参数1、参数2,通过RPC框架解析为C++语言可以识别的参数1、参数2。RPC技术通过降低了网络延迟从而降低了用户延迟,实现了性能优化。
互联网从网页时代走向互联网时代、移动互联网时代、物联网时代,基础设施从物理机走向虚拟机、容器,技术架构也从单体式服务走向SOA、微服务、分布式,一切技术都在不断的进化演变,唯一不变的便是性能优化技术。从单服务的负载均衡、缓存、数据库,到操作系统级别的IO多路复用、IO零拷贝技术,再到微服务的RPC技术,掌握了之后,任尔技术如何变迁,我自岿然不动~
相关推荐
- 如何找到满意的工作:定位,技能与实践的三要素
-
在当今竞争激烈的职场环境中,找到一份满意工作是许多职场人追求的目标。它不仅是经济收入的来,更是实现个人价值,获得成就感的途径。然而,如何才能在众多求职者中脱颖而出,找到那份心仪的工作呢?关键在于明确职...
- 网络营销板块大涨 值得买涨幅居前
-
来源:新浪证券-红岸工作室04月14日消息,截止10:15,网络营销板块大涨,新华都、齐心集团、实益达、广博股份涨停,值得买、壹网壹创、凯淳股份、丽人丽妆、青木科技、星徽股份等个股涨幅居前。...
- 强化网络销售监管、保障公众药械安全,国家药监局发布管理规范
-
为规范医疗器械网络销售行为,保障公众用械安全,国家药品监督管理局今天正式发布《医疗器械网络销售质量管理规范》(以下简称《规范》)。该《规范》将于2025年10月1日起施行,从资质审核、信息展示、风险防...
- 优化SEM着陆页面的几点感悟(sem优化策略)
-
如果我们想在着陆页上,实现更好的转化,一定让访客把眼光专注于利益,尽量避免强调需要访客做的事情。相反,要强调他们通过做了以后可以获得的利益。比如将“填写申请表”(听起来像工作的这句话,改为“今天就开始...
- 重庆网络营销优化公司浅谈SEM技巧品牌词到底投还是不投
-
在SEM技巧中,品牌词是否要购买?这是重庆网络公司很多客户在建站推广初期都会问到的问题,如果品牌知名度不高,会不会白花钱呢?其实类似话题已经有很多人讨论过了,一般如果品牌知名度比较低,没有别的同行投你...
- 原创:沃尔玛自助搜索引擎营销(SEM)
-
“本公众号主要分享北美跨境电商平台运营类教程,所有教程都是原创,旨在为新手卖家提供更多更准确的信息,如果您也是Amazon、Walmart、wayfair、Homedepot卖家,欢迎一起交流。”...
- 3大方向,有效提高SEM推广咨询量(sem推广策略的关键点)
-
在咨询行业,不管你是刚接手一个新账户,还是要自己从零开始搭建账户,老板都会问你能带来多少咨询量,什么时候能够见成效。今天仅以我自己的经验给大家提供一点思路,希望以后大家能多多交流。1账户层级...
- 砂轮修整需要调转速吗?美国发明砂轮修整技术,实现摩擦力提升
-
文\万物知识局编辑\万物知识局砂轮修整是一种常用的金属表面处理技术,广泛应用于航空、汽车、机械等行业。将重点讨论砂轮修整对钛合金Ti-6Al-4V的可磨性的影响。Ti-6Al-4V合金是一种...
- 竞价员日常工作内容,资深sem优化师需要做什么?
-
很多初入竞价行业的小白对竞价员日常工作内容,资深sem优化师需要做什么一直抱有疑问,不知道合格的竞价员每天都应该做些什么工作,或者迷茫的看着账户消费和查排名调价。所以下面就来给大家聊一聊竞价员的一天!...
- 东莞推广公司详细解析:SEM竞价推广如何优化关键词质量度?米可
-
在SEM竞价推广中,关键词质量度是影响广告效果的关键因素之一。然而,很多企业却常常遇到关键词质量度不高,导致广告点击率和转化率下降的问题。那么,如何SEM竞价推广优化关键词质量度呢?今天,东莞推广公司...
- SEM案例-如何快速在3个月降低50%的转化成本?
-
今天分享一个招聘行业的sem案例。此项目是一个老账户,客户的KPI要求是在3个月内降低50%的注册成本,可是客户并不打算给我们之前的转化数据,以防我们根据之前的数据做预估,做成本,而不是尽力降成本。那...
- GEO vs SEO:AI时代如何让内容既上搜索榜又进AI回答?
-
1.什么是GEO?GEO(生成引擎优化)就像给AI“投简历”——它专门优化内容,让AI在回答用户问题时优先引用你的信息。比如,当你问AI“德国展会搭建哪家好”,AI可能会直接推荐你优化过的内容,而不...
- 百度推送收录工具【2025最全教程】
-
目录第一步:百度推送token获取...
- 百度jingj优化流程(百度点击优化)
-
首要在这儿我先普及一下本钱概念。许多人在调价时下意识会觉得账户里核心的关键词一定要排到榜首,笔者在这想要提醒的是,一切的排名都是和本钱挂钩的,排榜首的出价本钱永远是最高的。 假如你并没有核算你的R...
- 百度SEO必备:无害化WordPress数据库优化与索引添加策略"
-
前提描述表现症状cpu和负载100%或者mysql占用直接超过100%,wordpress的慢日志提示如下。...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 网站建设 (107)
- 网站开发 (47)
- 网络推广哪个平台好 (47)
- 百度收录 (50)
- 搜索引擎排名优化 (49)
- 关键词优化工具 (51)
- 外贸网站建设 (56)
- seo整站优化吧 (50)
- 广州seo (47)
- 苏州网站建设 (59)
- 百度搜索推广 (61)
- 关键词优化公司 (51)
- 网页制作 (47)
- 广州网站建设 (48)
- 电商网站建设 (49)
- 百度站长平台 (48)
- 网站模板 (51)
- 厦门网站建设 (52)
- 百度快照推广 (51)
- 免费网页在线客服系统 (53)
- 雷神代刷网站推广 (53)
- 长尾关键词 (47)
- 手机网站建设 (53)
- 网站维护 (53)
- 网页制作教程 (66)