服務(wù)器性能優(yōu)化
分布式服務(wù)
服務(wù)器性能優(yōu)化方式性能調(diào)優(yōu)關(guān)注點(diǎn)系統(tǒng)負(fù)載連接數(shù)CPU內(nèi)存IO網(wǎng)絡(luò)硬件資源操作系統(tǒng)服務(wù)端架構(gòu)演進(jìn)1微服務(wù)2分布式數(shù)據(jù)庫3注冊(cè)中心Zookeeper1單機(jī)結(jié)構(gòu)2集群結(jié)構(gòu)3分布式結(jié)構(gòu) 服務(wù)器性能優(yōu)化方式:空間換時(shí)間:對(duì)熱點(diǎn)數(shù)據(jù)緩存,減少數(shù)據(jù)查詢時(shí)間。分而治之:將大任務(wù)切片,分開執(zhí)行。HDFS、MapReduce類似原理。異步處理:若業(yè)務(wù)鏈中某一環(huán)節(jié)耗時(shí)嚴(yán)重,則該環(huán)節(jié)將拉長業(yè)務(wù)鏈的整體耗時(shí),可以將耗時(shí)業(yè)務(wù)采用消息隊(duì)列異步化,從而縮短業(yè)務(wù)鏈耗時(shí)。并行處理:采用多線程、多線程同時(shí)處理,提升處理速度。離用戶更近一點(diǎn):如CDN技術(shù),將靜態(tài)資源放到離用戶更近的地方,從而縮短請(qǐng)求靜態(tài)資源的時(shí)間。提升可擴(kuò)展性:采用業(yè)務(wù)模塊化、服務(wù)化的手段,提升系統(tǒng)的可擴(kuò)展性,從而可根據(jù)業(yè)務(wù)需求實(shí)現(xiàn)彈性計(jì)算。性能調(diào)優(yōu)關(guān)注點(diǎn):
硬件資源
CPU
CPU使用率過高的原因:
計(jì)算量大非空閑等待過多的系統(tǒng)調(diào)用過多的中斷內(nèi)存
內(nèi)存使用率過高的原因:
過多的頁交換可能存在內(nèi)存泄漏IO
IO繁忙的原因:
讀寫頻繁;磁盤的讀寫過程是物理動(dòng)作,頻繁的讀寫勢必會(huì)使IO來不及處理。網(wǎng)絡(luò)
要關(guān)注服務(wù)器的出入口帶寬。
操作系統(tǒng)
系統(tǒng)負(fù)載
系統(tǒng)負(fù)載指的是CPU就緒隊(duì)列中任務(wù)數(shù)。若該值超過6,則表示系統(tǒng)負(fù)載較高了。
連接數(shù)
操作系統(tǒng)處于安全考慮,會(huì)限制操作系統(tǒng)的最大TCP連接數(shù),所以如果服務(wù)器需要提供大齡服務(wù)的話,就需要修改TCP最大連接數(shù)。服務(wù)端架構(gòu)演進(jìn)
1:單機(jī)結(jié)構(gòu)
當(dāng)系統(tǒng)訪問量較小時(shí),使用單機(jī)即可滿足需求。
所謂單機(jī),即應(yīng)用程序、數(shù)據(jù)庫均放在一臺(tái)服務(wù)器上完成。
但單機(jī)的處理能力有限,當(dāng)系統(tǒng)的訪問量增加使,單機(jī)無法滿足需求,從而就出現(xiàn)了集群結(jié)構(gòu)。
2:集群結(jié)構(gòu)
集群結(jié)構(gòu)中,將數(shù)據(jù)庫、應(yīng)用程序分別放在多臺(tái)服務(wù)器上,那么用戶的請(qǐng)求究竟由哪臺(tái)服務(wù)器處理呢?
這就由負(fù)載均衡服務(wù)器來控制。
負(fù)載均衡服務(wù)器分為兩種:分別是TCP/IP的四層、七層進(jìn)行負(fù)載分發(fā)。
四層負(fù)載分發(fā)常用的手段有:
LVS:免費(fèi)開源,性能不如F5;F5:硬件交換機(jī),價(jià)格昂貴,性能較高。七層負(fù)載分發(fā)常用的手段有:
TengineNginxATSVanishSquidHarproxy集群結(jié)構(gòu)基本滿足中小企業(yè)的業(yè)務(wù)需求,但它存在如下幾個(gè)缺點(diǎn):
所有業(yè)務(wù)均在一個(gè)war包中,耦合度過高。所有業(yè)務(wù)均在一個(gè)war包中,代碼不易于維護(hù)。為了解決上述問題,因此出現(xiàn)了分布式結(jié)構(gòu)。
3:分布式結(jié)構(gòu)
3.1微服務(wù)
在分布式結(jié)構(gòu)中,將業(yè)務(wù)進(jìn)行服務(wù)化。
所謂服務(wù)化,就是將一個(gè)完整的應(yīng)用,根據(jù)邏輯功能拆分成多個(gè)子應(yīng)用,每個(gè)應(yīng)用都有各自獨(dú)立的war包,部署在不同的服務(wù)器上。
服務(wù)化優(yōu)點(diǎn):
系統(tǒng)邏輯清晰,耦合度低??梢愿鶕?jù)服務(wù)的業(yè)務(wù)量合理分配計(jì)算資源。問題更容易排查。3.2分布式數(shù)據(jù)庫
分布式數(shù)據(jù)庫就是對(duì)數(shù)據(jù)庫進(jìn)行分庫分表、將數(shù)據(jù)片存儲(chǔ)在不同數(shù)據(jù)庫的不同表中,并在數(shù)據(jù)庫存儲(chǔ)層之上增加了數(shù)據(jù)訪問層,可通過hash找到數(shù)據(jù)所處的庫與表。
大多公司基于Mariadb開發(fā)自己的分布式數(shù)據(jù)庫,改數(shù)據(jù)庫之上建立數(shù)據(jù)訪問層,用來實(shí)現(xiàn)分庫分表,并對(duì)上層透明。
3.3注冊(cè)中心Zookeeper
注冊(cè)中心用來管理所有的分布式服務(wù)。
當(dāng)A服務(wù)需要請(qǐng)求B服務(wù)時(shí),A服務(wù)首先會(huì)從注冊(cè)中心獲取B服務(wù)的IP,然后向該IP發(fā)起請(qǐng)求。
除此,當(dāng)服務(wù)不可用,或增加新的服務(wù)時(shí),配置中心就會(huì)相應(yīng)地在服務(wù)列表中刪除、增加該項(xiàng)服務(wù)。
Tags:分布式服務(wù),服務(wù)器性能優(yōu)化
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。