第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

學(xué)架構(gòu)筆記4:高性能復(fù)雜

標(biāo)簽:
架構(gòu)
单机复杂度

计算机内部最关键的地方是操作系统,操作系统和性能最相关的就是进程和线程。

批处理程序的计算机一次只能执行一个任务,如果某任务需要从IO设备读取数据,CPU在此时则是空闲的。因此为了提升CPU利用率,引入了进程。为了达到多进程并行运行的目的,采取了分时的方式。

多进程每个进程数据不共享,如果两个进程需要通信,则需要依托中间存储介质,效率低且程序复杂。引入进程间通信,包括管道、消息队列、信号量、共享存储。

多进程的每个进程内部只能串行,也需要并行处理。引入线程,同时为了保证数据的正确性,引入互斥锁机制。从此,线程是操作系统调度的最小单位,进程是操作系统分配资源的最小单位。

多线程、多进程本质上还是分时系统,引入多个CPU实现真正意义上的多任务并行,有解决方案:对称多处理器结构SMP、非一致存储访问结构NUMA、海量并行处理结构MPP,其中SMP最常见。

集群复杂度

计算机硬件的发展速度远远比不上业务的发展速度。单机性能无法支撑业务,必须采用机器集群。

任务分配

不同的任务分配到不同的机器上执行,拆分业务的复杂度体现在:

  1. 需要增加任务分配器,可能是硬件网络设备(F5、交换机),可能是软件网络设备(LVS),可能是复杂均衡软件(Nginx、HAProxy),如果自研系统则还需要更多的维护成本。
  2. 任务分配器和业务服务器之间有连接交互
  3. 任务分配器需要新增分配算法。
  4. 任务分配器在大量请求下也需要多台,结构会更复杂

任务分解

通过以上任务分配可以突破单台机器性能的瓶颈,但是随着业务增长,单纯的任务分配和增加机器已经不能获得相应的收益,引入“任务分解”。

将一个业务的任务或者功能从逻辑的角度分解成不同的小功能,独立出来一个个业务子系统。

虽然代码量可能不减反增,但能提高性能的原因如下:

  1. 子系统简单而容易优化
  2. 易扩展

但是分解的粒度必须要把握好,而度量的关键在于网络的延迟不占主要延时 —— 如果粒度过细,则需要消耗太多的时间作连接和传输的工作。

总结

学习了软件中高性能带来的复杂度,一是体现在单机内部的复杂度,例如多线程多进程,另一个体现在集群的复杂度。

先这样吧

若有错误之处请指出,更多地关注煎鱼

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消