四虎影院在线,亚洲熟妇AV乱码在线观看,成在线人视频免费视频,亚洲Av无码Av日韩Av网站

哈爾濱今日靈圖

[其他技能培訓(xùn)]
獵學(xué)網(wǎng)訂閱號
獵學(xué)網(wǎng)官方企業(yè)微信
位置: 獵學(xué)網(wǎng) > 學(xué)校機(jī)構(gòu) > 哈爾濱今日靈圖 > 學(xué)習(xí)資訊> 程序員必知的企業(yè)系統(tǒng)性能與擴(kuò)展

程序員必知的企業(yè)系統(tǒng)性能與擴(kuò)展

53 2017-04-19

前言

企業(yè)應(yīng)用需要以盡可能快的速度來存儲并檢索盡可能多的數(shù)據(jù),在應(yīng)用的性能管理中有兩個(gè)重要的指標(biāo),它們分別是響應(yīng)時(shí)間與吞吐量。

其中響應(yīng)時(shí)間越短,應(yīng)用的響應(yīng)度就越高,因此響應(yīng)時(shí)間是衡量性能的指標(biāo);而擴(kuò)展則指的是在保持響應(yīng)時(shí)間較短的同時(shí),提升系統(tǒng)的負(fù)載能力,因此吞吐量是可擴(kuò)展性的衡量指標(biāo)。

響應(yīng)時(shí)間與吞吐量

“事務(wù)響應(yīng)時(shí)間”是根據(jù)系統(tǒng)完成一個(gè)事務(wù)所花費(fèi)的時(shí)間來計(jì)算的,因此包含下面這些種類的分段時(shí)間:

獲取數(shù)據(jù)庫連接的時(shí)間;

將所有數(shù)據(jù)庫語句通過無線發(fā)送完畢的時(shí)間;

執(zhí)行所有輸入語句的時(shí)間;

將結(jié)果發(fā)回?cái)?shù)據(jù)庫客戶端所花費(fèi)的時(shí)間;

在釋放數(shù)據(jù)庫連接前,由于執(zhí)行應(yīng)用級計(jì)算而導(dǎo)致事務(wù)呈空閑狀態(tài)的時(shí)間。

程序員必知的企業(yè)系統(tǒng)性能與擴(kuò)展

吞吐率是根據(jù)輸入工作的完成速率來定義的。在數(shù)據(jù)庫概念中,吞吐量可以根據(jù)指定時(shí)間間隔內(nèi)所執(zhí)行的事務(wù)數(shù)量來計(jì)算。

程序員必知的企業(yè)系統(tǒng)性能與擴(kuò)展

從這個(gè)定義我們能夠推斷出:只要減少事務(wù)在執(zhí)行時(shí)所花費(fèi)的時(shí)間,系統(tǒng)就能處理更多的請求。

減少響應(yīng)時(shí)間會讓釋放數(shù)據(jù)庫連接的速度變得更快,因此每秒能處理的事務(wù)就越多。但在高并發(fā)環(huán)境中,只減少響應(yīng)時(shí)間是不夠的。為了保持響應(yīng)時(shí)間有一個(gè)固定的最大值,必須根據(jù)輸入請求的吞吐量相應(yīng)地增加系統(tǒng)的容量。增加更多的資源可以在一定程度內(nèi)提升可擴(kuò)展性,直到容量增益開始下降為止。

容量規(guī)劃使用了反饋驅(qū)動機(jī)制,需要持續(xù)對應(yīng)用進(jìn)行監(jiān)控,因此任何優(yōu)化都必須通過應(yīng)用的性能指標(biāo)來執(zhí)行。

向上擴(kuò)展與橫向擴(kuò)展

擴(kuò)展就是通過增加更多資源以提高容量。垂直擴(kuò)展(即向上擴(kuò)展)指的是在單臺機(jī)器上增加更多資源,而水平擴(kuò)展(即橫向擴(kuò)展)指的是增加可用機(jī)器的數(shù)量。

傳統(tǒng)上來說,為數(shù)據(jù)庫服務(wù)器增加更多的硬件資源是增加數(shù)據(jù)庫容量的最佳方案。關(guān)系數(shù)據(jù)庫是在70年代末出現(xiàn)的,25年之后根據(jù)摩爾定律的發(fā)展趨勢,數(shù)據(jù)庫供應(yīng)商搭上了硬件發(fā)展的東風(fēng)。

分布式系統(tǒng)比集中式系統(tǒng)更難管理,復(fù)雜度大大增加,這就是為什么水平擴(kuò)展比垂直擴(kuò)展更具有挑戰(zhàn)性的原因。另一方面,配置一臺專用的高性能服務(wù)器,其價(jià)格足以購買多臺商品機(jī)——而后者可用資源(CPU、內(nèi)存、硬盤存儲器)加起來遠(yuǎn)比單個(gè)專用服務(wù)器要多得多。在決定哪種擴(kuò)展方法更適合指定的企業(yè)系統(tǒng)時(shí),價(jià)格(包括硬件與證書授權(quán))與固有的開發(fā)運(yùn)營費(fèi)用都要納入考量。

構(gòu)建在許多開源項(xiàng)目(比如PHP,MySQL)之上的Facebook就使用了水平擴(kuò)展的架構(gòu),以適應(yīng)它那巨大的流量。而StackOverflow則是垂直擴(kuò)展架構(gòu)的最佳范例,在一篇博文里,JeffAtwood解釋道:Windows與SQLServer授權(quán)的價(jià)格也是他們不選擇水平擴(kuò)展方式的原因之一。

無論效果有多強(qiáng)大,一個(gè)專用的服務(wù)器仍只是一個(gè)單獨(dú)的故障點(diǎn),若系統(tǒng)可用性出了問題,吞吐量就會降到零。因此在大多企業(yè)系統(tǒng)中,對數(shù)據(jù)庫復(fù)制是有強(qiáng)制要求的。

主從復(fù)制

主從復(fù)制方案很適合讀寫比例較高的企業(yè)系統(tǒng),可以提高其可用性。

主節(jié)點(diǎn)負(fù)責(zé)記錄,它也是唯一接受寫入的節(jié)點(diǎn),在主節(jié)點(diǎn)上執(zhí)行的所有記錄修改會復(fù)制到從節(jié)點(diǎn)上。二進(jìn)制復(fù)制使用了主節(jié)點(diǎn)預(yù)寫式日志(WAL),而基于SQL語句的復(fù)制則在從節(jié)點(diǎn)上完全重演主節(jié)點(diǎn)的操作。

異步復(fù)制非常常見——特別是在有許多從節(jié)點(diǎn)要更新的情況下。雖然從節(jié)點(diǎn)的更新速度可能會落后于主節(jié)點(diǎn),但最終結(jié)果是一致的。在主節(jié)點(diǎn)崩潰的情況下,整個(gè)集群會從可用的從節(jié)點(diǎn)中選出新的主節(jié)點(diǎn)(一般是更新記錄最新的那個(gè)節(jié)點(diǎn))。

因?yàn)橹鞴?jié)點(diǎn)不會立刻進(jìn)行選舉,因此異步復(fù)制拓?fù)浣Y(jié)構(gòu)也被稱為熱備用。

大多數(shù)據(jù)庫系統(tǒng)允許有一個(gè)同步的從節(jié)點(diǎn),代價(jià)是增加響應(yīng)時(shí)間(主節(jié)點(diǎn)必須無停頓地同步通知從節(jié)點(diǎn)進(jìn)行復(fù)制)。在主節(jié)點(diǎn)發(fā)生故障的情況下,自動故障轉(zhuǎn)移機(jī)制可以將同步的從節(jié)點(diǎn)提升為新的主節(jié)點(diǎn)。

擁有一個(gè)同步的從節(jié)點(diǎn)可以在主節(jié)點(diǎn)發(fā)生故障的情況下確保系統(tǒng)數(shù)據(jù)一致,因?yàn)檫@個(gè)同步從節(jié)點(diǎn)是完全復(fù)制主節(jié)點(diǎn)的。同步主從復(fù)制也被稱為熱備份拓?fù)洌驗(yàn)橥綇墓?jié)點(diǎn)時(shí)刻準(zhǔn)備著頂上主節(jié)點(diǎn)的位置。

如果只有異步從節(jié)點(diǎn)可用,新選舉出來的從節(jié)點(diǎn)可能會比發(fā)生故障的主節(jié)點(diǎn)更新速度慢,在這種情況下系統(tǒng)用一致性與持久性換取了更低的延遲與更高的吞吐量。

除了解決單點(diǎn)故障的問題之外,數(shù)據(jù)庫復(fù)制也能增加事務(wù)的吞吐量。在主從拓?fù)渲?,從?jié)點(diǎn)可以接受只讀事務(wù),因此可以分流讀取的流量。增加從節(jié)點(diǎn)的可用只讀連接,可以減少主節(jié)點(diǎn)的資源競爭,反過來也能減少讀寫事務(wù)的響應(yīng)時(shí)間。如果主節(jié)點(diǎn)不能再與一直增加的讀寫流量同步,使用多個(gè)主節(jié)點(diǎn)進(jìn)行復(fù)制也許是更好的選擇。

多個(gè)主節(jié)點(diǎn)復(fù)制

在多個(gè)主節(jié)點(diǎn)的復(fù)制方案中,所有節(jié)點(diǎn)都是平等的,都可以接受只讀與讀寫事務(wù)。這樣一來將負(fù)載量分配到多個(gè)節(jié)點(diǎn)上,就可以只增加事務(wù)的吞吐量,并減少響應(yīng)時(shí)間了。

然而,由于分布式系統(tǒng)都是與權(quán)衡相關(guān)的,在多主節(jié)點(diǎn)復(fù)制方案中想要確保數(shù)據(jù)的一致性是很有挑戰(zhàn)性的,因?yàn)閱我豢尚诺膩碓纯刹恢挂粋€(gè)。由于同樣的數(shù)據(jù)可以在不同節(jié)點(diǎn)上同時(shí)修改,因此可能會造成更新沖突的問題。在這種復(fù)制方案中,可以考慮采用避免沖突的方式,或者在檢測到?jīng)_突發(fā)生后,自動應(yīng)用沖突解決算法的方式來解決問題。

主節(jié)點(diǎn)負(fù)責(zé)記錄,它也是唯一接受寫入的節(jié)點(diǎn),在主節(jié)點(diǎn)上執(zhí)行的所有記錄修改會復(fù)制到從節(jié)點(diǎn)上。二進(jìn)制復(fù)制使用了主節(jié)點(diǎn)預(yù)寫式日志(WAL),而基于SQL語句的復(fù)制則在從節(jié)點(diǎn)上完全重演主節(jié)點(diǎn)的操作。

異步復(fù)制非常常見——特別是在有許多從節(jié)點(diǎn)要更新的情況下。雖然從節(jié)點(diǎn)的更新速度可能會落后于主節(jié)點(diǎn),但最終結(jié)果是一致的。在主節(jié)點(diǎn)崩潰的情況下,整個(gè)集群會從可用的從節(jié)點(diǎn)中選出新的主節(jié)點(diǎn)(一般是更新記錄最新的那個(gè)節(jié)點(diǎn))。

因?yàn)橹鞴?jié)點(diǎn)不會立刻進(jìn)行選舉,因此異步復(fù)制拓?fù)浣Y(jié)構(gòu)也被稱為熱備用。

大多數(shù)據(jù)庫系統(tǒng)允許有一個(gè)同步的從節(jié)點(diǎn),代價(jià)是增加響應(yīng)時(shí)間(主節(jié)點(diǎn)必須無停頓地同步通知從節(jié)點(diǎn)進(jìn)行復(fù)制)。在主節(jié)點(diǎn)發(fā)生故障的情況下,自動故障轉(zhuǎn)移機(jī)制可以將同步的從節(jié)點(diǎn)提升為新的主節(jié)點(diǎn)。

擁有一個(gè)同步的從節(jié)點(diǎn)可以在主節(jié)點(diǎn)發(fā)生故障的情況下確保系統(tǒng)數(shù)據(jù)一致,因?yàn)檫@個(gè)同步從節(jié)點(diǎn)是完全復(fù)制主節(jié)點(diǎn)的。同步主從復(fù)制也被稱為熱備份拓?fù)?,因?yàn)橥綇墓?jié)點(diǎn)時(shí)刻準(zhǔn)備著頂上主節(jié)點(diǎn)的位置。

如果只有異步從節(jié)點(diǎn)可用,新選舉出來的從節(jié)點(diǎn)可能會比發(fā)生故障的主節(jié)點(diǎn)更新速度慢,在這種情況下系統(tǒng)用一致性與持久性換取了更低的延遲與更高的吞吐量。

除了解決單點(diǎn)故障的問題之外,數(shù)據(jù)庫復(fù)制也能增加事務(wù)的吞吐量。在主從拓?fù)渲?,從?jié)點(diǎn)可以接受只讀事務(wù),因此可以分流讀取的流量。增加從節(jié)點(diǎn)的可用只讀連接,可以減少主節(jié)點(diǎn)的資源競爭,反過來也能減少讀寫事務(wù)的響應(yīng)時(shí)間。如果主節(jié)點(diǎn)不能再與一直增加的讀寫流量同步,使用多個(gè)主節(jié)點(diǎn)進(jìn)行復(fù)制也許是更好的選擇。

多個(gè)主節(jié)點(diǎn)復(fù)制

在多個(gè)主節(jié)點(diǎn)的復(fù)制方案中,所有節(jié)點(diǎn)都是平等的,都可以接受只讀與讀寫事務(wù)。這樣一來將負(fù)載量分配到多個(gè)節(jié)點(diǎn)上,就可以只增加事務(wù)的吞吐量,并減少響應(yīng)時(shí)間了。

然而,由于分布式系統(tǒng)都是與權(quán)衡相關(guān)的,在多主節(jié)點(diǎn)復(fù)制方案中想要確保數(shù)據(jù)的一致性是很有挑戰(zhàn)性的,因?yàn)閱我豢尚诺膩碓纯刹恢挂粋€(gè)。由于同樣的數(shù)據(jù)可以在不同節(jié)點(diǎn)上同時(shí)修改,因此可能會造成更新沖突的問題。在這種復(fù)制方案中,可以考慮采用避免沖突的方式,或者在檢測到?jīng)_突發(fā)生后,自動應(yīng)用沖突解決算法的方式來解決問題。

為了避免沖突,可以使用兩階段提交協(xié)議,以確保在分布式事務(wù)中,要么所有的參與進(jìn)程都提交事務(wù)成功,要么都取消事務(wù)。這種設(shè)計(jì)允許所有節(jié)點(diǎn)隨時(shí)執(zhí)行同步,不過相對的,也會造成事務(wù)響應(yīng)的時(shí)間增加(由于降低了寫入操作的速度)。

如果節(jié)點(diǎn)分布在廣域網(wǎng)(WAN)上,同步延遲可能會大幅增加。如果由于某個(gè)節(jié)點(diǎn)變得不可訪問而造成同步失敗,那么所有主節(jié)點(diǎn)上的事務(wù)都會執(zhí)行回滾。

盡管從數(shù)據(jù)一致性的角度來看,避免沖突是更好的辦法,但同步復(fù)制可能會導(dǎo)致事務(wù)響應(yīng)的時(shí)間很長。而異步復(fù)制在吞吐量方面更為優(yōu)秀,前提是必須要解決更新沖突的問題。異步多主節(jié)點(diǎn)復(fù)制需要有檢測沖突的機(jī)制以及自動解決沖突的算法,一旦檢測到?jīng)_突,自動解決方案就會嘗試合并這兩個(gè)沖突分支,在失敗的情況下會請求人工介入。

分片

如果數(shù)據(jù)的規(guī)模超出了復(fù)制多節(jié)點(diǎn)環(huán)境的總?cè)萘浚蟹謹(jǐn)?shù)據(jù)就會變得無可避免。分片指的是將數(shù)據(jù)分布到多個(gè)節(jié)點(diǎn)上,這樣每個(gè)實(shí)例就只包含整體數(shù)據(jù)的一個(gè)子集。

一般來講,關(guān)系數(shù)據(jù)庫提供了水平分區(qū)的方式,即在同一個(gè)數(shù)據(jù)庫服務(wù)器上將數(shù)據(jù)分布到多個(gè)表格中。與水平分區(qū)相反,分片則需要一個(gè)分布式的系統(tǒng)拓?fù)浣Y(jié)構(gòu),以便數(shù)據(jù)可以分布在多臺機(jī)器上。

每個(gè)分片必須是獨(dú)立的,因?yàn)橛脩羰聞?wù)只能使用單個(gè)分片內(nèi)的數(shù)據(jù)??绶制B接一般是不允許的,因?yàn)榉植际郊渔i和網(wǎng)絡(luò)開銷的成本都可能會導(dǎo)致事務(wù)的響應(yīng)時(shí)間很長。

通過減少每個(gè)節(jié)點(diǎn)的數(shù)據(jù)大小,就能減少索引所占的空間。請求的數(shù)據(jù)越少,事務(wù)的響應(yīng)時(shí)間也就越短。

典型的分片拓?fù)浣Y(jié)構(gòu)至少包括兩個(gè)單獨(dú)分開的數(shù)據(jù)中心:

每個(gè)數(shù)據(jù)中心都可以提供一個(gè)專門的地理區(qū)域,這樣就可以跨地理區(qū)域來平衡負(fù)載。并非所有表格都需要執(zhí)行跨分片分區(qū),較小的那些會復(fù)制到每個(gè)分區(qū)上。為了保持分片同步,需要采用異步復(fù)制機(jī)制。

在之前的圖表中,系統(tǒng)將國家表格從一個(gè)數(shù)據(jù)中心鏡像到另一個(gè),分區(qū)只在用戶表格中實(shí)現(xiàn)。為了避免對跨分片處理數(shù)據(jù)產(chǎn)生需求,每個(gè)用戶及其相關(guān)的所有數(shù)據(jù)都只會存放在同一個(gè)數(shù)據(jù)中心上。

在尋求增加系統(tǒng)容量的解決方案中,分片一般是在其他選項(xiàng)都不可用時(shí)的最后選擇——其他選項(xiàng)包括:

優(yōu)化數(shù)據(jù)層,縮短事務(wù)響應(yīng)時(shí)間;

在成本合算的配置前提下,對每個(gè)復(fù)制節(jié)點(diǎn)進(jìn)行擴(kuò)展;

增加更多復(fù)制節(jié)點(diǎn),直到同步延遲開始降到可接受閾值之下。

溫馨提示: 專業(yè)老師1對1為您解答    馬上填寫,¥1000 元豪禮免費(fèi)領(lǐng)!

掃一掃
獲取更多福利

×
獵學(xué)網(wǎng)
99RE6在线视频精品免费下载| 成人日韩无码福利导航| 六月激情网站| 四虎精品欧美一区二区免费| 欧美中文久久| 欧美人妻一区| 人妻精品无码Mv| 一二三区免费| 成人在线不卡一区| 澳门四虎影院| 人妻激情无码手机| 91导航福利| 丰满熟妇久久久久久| 国产不卡的在线精品| 午夜精品久久久久久久99| bbwbbw| 惠州足浴店少妇内射| 夜夜| 国产网站www| 欧美老司机| 国产日韩黄片在线看| 亚洲人妻天堂| 青青草干| 永久免费在线观看视频| 亚洲综合视频在线免费| 夜夜嗨一区二区| 青青草官网在线| 亚洲国产AV无码精品| 视频三区,亚洲色图| 福利社影院| 五月的婷婷欧美| av片亚洲国产男人的天堂| www五月中文字幕| 国产乱人伦中文无无码视频试看| 一级黄色录像带毛片| 人妻无码久久一区二区三区免费| 五月开心亚洲综合| 亚洲国产精品无码av| 久久久大胆裸体艺术| 人妻少妇精品视频三区二区一区| 夫妻3P视频在线播放|