最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

05 生產(chǎn)經(jīng)驗(yàn):真實(shí)生產(chǎn)環(huán)境下的數(shù)據(jù)庫(kù)機(jī)器配置如何規(guī)劃?

2023-06-11 10:42 作者:儒猿課堂  | 我要投稿

生產(chǎn)經(jīng)驗(yàn):真實(shí)生產(chǎn)環(huán)境下的數(shù)據(jù)庫(kù)機(jī)器配置如何規(guī)劃?


1、當(dāng)你了解數(shù)據(jù)庫(kù)的架構(gòu)原理之后,就該了解一下自己數(shù)據(jù)庫(kù)的規(guī)劃


之前我們用了4篇文章給大家整體分析了一下MySQL數(shù)據(jù)庫(kù)的工作原理,相信很多朋友都已經(jīng)對(duì)數(shù)據(jù)庫(kù)的整體架構(gòu)原理有了一定的了解,畢竟在這之前,可能大部分人對(duì)MySQL數(shù)據(jù)庫(kù)的了解還停留在執(zhí)行SQL語(yǔ)句的程度。


當(dāng)我們初步了解了數(shù)據(jù)庫(kù)的架構(gòu)設(shè)計(jì)原理后,接著其實(shí)應(yīng)該了解的第一件事,就是我們平時(shí)在工作中,如何規(guī)劃生產(chǎn)環(huán)境下的數(shù)據(jù)庫(kù)。因?yàn)槲蚁牒芏嗳巳绻綍r(shí)主要是負(fù)責(zé)一些沒(méi)什么并發(fā)量,用戶量也就幾十個(gè)或者幾百個(gè)人的系統(tǒng),那么根本就不會(huì)去關(guān)注數(shù)據(jù)庫(kù)的規(guī)劃這件事情。


對(duì)很多Java工程師而言,要不然是自己找一臺(tái)linux機(jī)器裝一個(gè)MySQL,然后就讓自己的系統(tǒng)連接上去直接就開(kāi)始使用了,要不然就是讓DBA或者運(yùn)維工程師幫自己去找一臺(tái)機(jī)器裝一個(gè)MySQL或者Oracle,然后自己就可以直接使用了。


但是在我們的專欄中,我們希望能夠教會(huì)大家較為專業(yè)化的數(shù)據(jù)庫(kù)使用經(jīng)驗(yàn),包括數(shù)據(jù)庫(kù)的整體架構(gòu)原理,還有就是如何規(guī)劃生產(chǎn)環(huán)境下的數(shù)據(jù)庫(kù),包括當(dāng)你有一個(gè)生產(chǎn)庫(kù)之后,要做的事情就是設(shè)計(jì)壓測(cè)方案,包括對(duì)你的數(shù)據(jù)庫(kù)進(jìn)行壓測(cè),包括對(duì)你的數(shù)據(jù)庫(kù)部署可視化監(jiān)控系統(tǒng),等等。


當(dāng)你做好這一系列的事情之后,接著才應(yīng)該是開(kāi)發(fā)你的Java系統(tǒng),去操作你的數(shù)據(jù)庫(kù),實(shí)現(xiàn)各種各樣的業(yè)務(wù)功能和邏輯。


2、生產(chǎn)數(shù)據(jù)庫(kù)一般用什么配置的機(jī)器?


現(xiàn)在我們來(lái)看第一個(gè)問(wèn)題,假設(shè)你在生產(chǎn)環(huán)境中需要部署一個(gè)數(shù)據(jù)庫(kù),此時(shí)首先你就需要一個(gè)機(jī)器來(lái)部署這個(gè)數(shù)據(jù)庫(kù)。那么我們要考慮的事情就是,部署一個(gè)生產(chǎn)環(huán)境的數(shù)據(jù)庫(kù),一般需要什么樣配置的機(jī)器呢?


接下來(lái)我們將會(huì)給大家說(shuō)一些我們的經(jīng)驗(yàn)值,直接告訴大家什么樣配置的機(jī)器部署的MySQL數(shù)據(jù)庫(kù),大致適合多高的并發(fā)訪問(wèn)量


當(dāng)你了解這個(gè)經(jīng)驗(yàn)值之后,未來(lái)當(dāng)你在負(fù)責(zé)系統(tǒng)的開(kāi)發(fā),申請(qǐng)數(shù)據(jù)庫(kù)的時(shí)候,你就知道生產(chǎn)環(huán)境下的數(shù)據(jù)庫(kù)大致需要什么樣的機(jī)器配置了,大致可以抗下多少并發(fā)訪問(wèn)了。


首先我們先明確一點(diǎn),如果你負(fù)責(zé)的系統(tǒng)就是一個(gè)沒(méi)什么并發(fā)訪問(wèn)量,用戶就幾十個(gè)人或者幾百個(gè)人的系統(tǒng),那么其實(shí)你選擇什么樣的機(jī)器去部署數(shù)據(jù)庫(kù),影響都不是很大,哪怕是你用我們自己平時(shí)用的個(gè)人筆記本電腦去部署一個(gè)MySQL數(shù)據(jù)庫(kù),其實(shí)也能支撐那種低并發(fā)系統(tǒng)的運(yùn)行。


因?yàn)槟欠N系統(tǒng)可能每隔幾分鐘才會(huì)有一波請(qǐng)求發(fā)到數(shù)據(jù)庫(kù)上去,而且數(shù)據(jù)庫(kù)里一張表也許就幾百條、幾千條或者幾萬(wàn)條數(shù)據(jù),數(shù)據(jù)量很小,并發(fā)量很小,操作頻率很低,用戶量很小,并發(fā)量很小,只不過(guò)可能系統(tǒng)的業(yè)務(wù)邏輯很復(fù)雜而已。對(duì)于這類系統(tǒng)的數(shù)據(jù)庫(kù)機(jī)器選型,就不在我們的考慮范圍之內(nèi)了。


我們主要關(guān)注的是有一定并發(fā)量的互聯(lián)網(wǎng)類的系統(tǒng),對(duì)數(shù)據(jù)庫(kù)可能會(huì)產(chǎn)生每秒幾百,每秒幾千,甚至每秒上萬(wàn)的并發(fā)請(qǐng)求量,對(duì)于這類場(chǎng)景下,我們應(yīng)該選擇什么樣的機(jī)器去部署數(shù)據(jù)庫(kù),才能比較好的抗下我們的系統(tǒng)壓力。


3、普通的Java應(yīng)用系統(tǒng)部署在機(jī)器上能抗多少并發(fā)?


通常來(lái)說(shuō),根據(jù)我們的經(jīng)驗(yàn)值而言,Java應(yīng)用系統(tǒng)部署的時(shí)候常選用的機(jī)器配置大致是2核4G和4核8G的較多一些,數(shù)據(jù)庫(kù)部署的時(shí)候常選用的機(jī)器配置最低在8核16G以上,正常在16核32G


那么以我們大量的高并發(fā)線上系統(tǒng)的生產(chǎn)經(jīng)驗(yàn)觀察下來(lái)而言,一般Java應(yīng)用系統(tǒng)部署在4核8G的機(jī)器上,每秒鐘抗下500左右的并發(fā)訪問(wèn)量,差不多是比較合適的,當(dāng)然這個(gè)也不一定。因?yàn)槟愕每紤]一下,假設(shè)你每個(gè)請(qǐng)求花費(fèi)1s可以處理完,那么你一臺(tái)機(jī)器每秒也許只可以處理100個(gè)請(qǐng)求,但是如果你每個(gè)請(qǐng)求只要花費(fèi)100ms就可以處理完,那么你一臺(tái)機(jī)器每秒也許就可以處理幾百個(gè)請(qǐng)求。


所以一臺(tái)機(jī)器能抗下每秒多少請(qǐng)求,往往是跟你每個(gè)請(qǐng)求處理耗費(fèi)多長(zhǎng)時(shí)間是關(guān)聯(lián)的,但是大體上來(lái)說(shuō),根據(jù)我們大量的經(jīng)驗(yàn)觀察而言,4核8G的機(jī)器部署普通的Java應(yīng)用系統(tǒng),每秒大致就是抗下幾百的并發(fā)訪問(wèn),從每秒一兩百請(qǐng)求到每秒七八百請(qǐng)求,都是有可能的,關(guān)鍵是看你每個(gè)請(qǐng)求處理需要耗費(fèi)多長(zhǎng)時(shí)間。


4、高并發(fā)場(chǎng)景下,數(shù)據(jù)庫(kù)應(yīng)該用什么樣的機(jī)器?


對(duì)于數(shù)據(jù)庫(kù)而言,我們剛才也說(shuō)過(guò)了,通常推薦的數(shù)據(jù)庫(kù)至少是選用8核16G以的機(jī)器,甚至是16核32G的機(jī)器更加合適一些。


因?yàn)榇蠹乙紤]一個(gè)問(wèn)題,對(duì)于我們的Java應(yīng)用系統(tǒng),主要耗費(fèi)時(shí)間的是Java系統(tǒng)和數(shù)據(jù)庫(kù)之間的網(wǎng)絡(luò)通信。對(duì)Java系統(tǒng)自己而言,如果你僅僅只是系統(tǒng)內(nèi)部運(yùn)行一些普通的業(yè)務(wù)邏輯,純粹在自己內(nèi)存中完成一些業(yè)務(wù)邏輯,這個(gè)性能是極高極高的。


對(duì)于你Java系統(tǒng)接收到的每個(gè)請(qǐng)求,耗時(shí)最多的還是發(fā)送網(wǎng)絡(luò)請(qǐng)求到數(shù)據(jù)庫(kù)上去,等待數(shù)據(jù)庫(kù)執(zhí)行一些SQL語(yǔ)句,返回結(jié)果給你。


所以其實(shí)我們常說(shuō)你有一個(gè)Java系統(tǒng)壓力很大,負(fù)載很高,但是其實(shí)你要明白一點(diǎn),你這個(gè)Java系統(tǒng)其實(shí)主要的壓力和復(fù)雜都是集中在你依賴的那個(gè)MySQL數(shù)據(jù)庫(kù)上的!


因?yàn)槟銏?zhí)行大量的增刪改查的SQL語(yǔ)句的時(shí)候,MySQL數(shù)據(jù)庫(kù)需要對(duì)內(nèi)存和磁盤(pán)文件進(jìn)行大量的IO操作,所以數(shù)據(jù)庫(kù)往往是負(fù)載最高的!這個(gè)問(wèn)題我們?cè)谥?篇文章里,通過(guò)MySQL數(shù)據(jù)庫(kù)架構(gòu)原理的分析,都已經(jīng)講解過(guò)了。


而你的Java系統(tǒng)一般并不需要你去直接大量的讀寫(xiě)本地文件進(jìn)行耗時(shí)的IO操作吧?是不是,想必做過(guò)Java開(kāi)發(fā)的朋友一下子就會(huì)想明白這個(gè)道理。


所以往往對(duì)一個(gè)數(shù)據(jù)庫(kù)而言,都是選用8核16G的機(jī)器作為起步,最好是選用16核32G的機(jī)器更加合適一些,因?yàn)閿?shù)據(jù)庫(kù)需要執(zhí)行大量的磁盤(pán)IO操作,他的每個(gè)請(qǐng)求都比較耗時(shí)一些,所以機(jī)器的配置自然需要高一些了。


然后通過(guò)我們之前的經(jīng)驗(yàn)而言,一般8核16G的機(jī)器部署的MySQL數(shù)據(jù)庫(kù),每秒抗個(gè)一兩千并發(fā)請(qǐng)求是沒(méi)問(wèn)題的,但是如果你的并發(fā)量再高一些,假設(shè)每秒有幾千并發(fā)請(qǐng)求,那么可能數(shù)據(jù)庫(kù)就會(huì)有點(diǎn)危險(xiǎn)了,因?yàn)閿?shù)據(jù)庫(kù)的CPU、磁盤(pán)、IO、內(nèi)存的負(fù)載都會(huì)很高,弄不數(shù)據(jù)庫(kù)壓力過(guò)大就會(huì)宕機(jī)。


對(duì)于16核32G的機(jī)器部署的MySQL數(shù)據(jù)庫(kù)而言,每秒抗個(gè)兩三千,甚至三四千的并發(fā)請(qǐng)求也都是可以的,但是如果你達(dá)到每秒上萬(wàn)請(qǐng)求,那么數(shù)據(jù)庫(kù)的CPU、磁盤(pán)、IO、內(nèi)存的負(fù)載瞬間都會(huì)飆升到很高,數(shù)據(jù)庫(kù)也是可能會(huì)扛不住宕機(jī)的。


所以這就是對(duì)于數(shù)據(jù)庫(kù),我們一般推薦選用的機(jī)器的配置,以及他大致可以抗下多高的并發(fā)請(qǐng)求量的經(jīng)驗(yàn)分享。


另外對(duì)于數(shù)據(jù)庫(kù)而言,如果可以的話,最好是采用SSD固態(tài)硬盤(pán)而不是普通的機(jī)械硬盤(pán),因?yàn)閿?shù)據(jù)庫(kù)最大的復(fù)雜就在于大量的磁盤(pán)IO,他需要大量的讀寫(xiě)磁盤(pán)文件,所以如果能使用SSD固態(tài)硬盤(pán),那么你的數(shù)據(jù)庫(kù)每秒能抗的并發(fā)請(qǐng)求量就會(huì)更高一些。


5、今日思考題


今天想留給大家一個(gè)小的思考題:假設(shè)你開(kāi)發(fā)的Java系統(tǒng)部署在一臺(tái)4核8G的機(jī)器上,那么我們假設(shè)這個(gè)Java系統(tǒng)處理一個(gè)請(qǐng)求非常非???,每個(gè)請(qǐng)求只需要0.01ms就可以處理完了,那你覺(jué)得這一臺(tái)機(jī)器部署的Java系統(tǒng),可以實(shí)現(xiàn)每秒抗下幾千并發(fā)請(qǐng)求嗎?可以實(shí)現(xiàn)每秒抗下幾萬(wàn)并發(fā)請(qǐng)求嗎?


請(qǐng)大家思考思考這個(gè)問(wèn)題,把你的思考結(jié)果在評(píng)論區(qū)發(fā)出來(lái),跟大家一起交流,同時(shí)也多看看評(píng)論區(qū)下的別人的留言。

End

專欄版權(quán)歸公眾號(hào)儒猿技術(shù)窩所有

未經(jīng)許可不得傳播,如有侵權(quán)將追究法律責(zé)任


05 生產(chǎn)經(jīng)驗(yàn):真實(shí)生產(chǎn)環(huán)境下的數(shù)據(jù)庫(kù)機(jī)器配置如何規(guī)劃?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
外汇| 仲巴县| 且末县| 隆回县| 滦南县| 湖北省| 无锡市| 高雄县| 林周县| 梧州市| 德州市| 德清县| 内丘县| 桦甸市| 博白县| 南康市| 大城县| 长治市| 黑河市| 安国市| 泊头市| 山西省| 朔州市| 珲春市| 吉林省| 鞍山市| 宿迁市| 子长县| 玛曲县| 长泰县| 中西区| 桃源县| 阳曲县| 昌黎县| 建昌县| 花莲县| 濉溪县| 宜宾县| 张北县| 都江堰市| 怀宁县|