国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

面試官問(wèn)你如何解決web高并發(fā)這樣回答就好了

Achilles / 1622人閱讀

摘要:所謂高并發(fā),就是同一時(shí)間有很多流量通常指用戶訪問(wèn)程序的接口頁(yè)面及其他資源,解決高并發(fā)就是當(dāng)流量峰值到來(lái)時(shí)保證程序的穩(wěn)定性。索引多主多從分布式數(shù)據(jù)庫(kù)緩存連接池消息隊(duì)列等是從數(shù)據(jù)庫(kù)方便考慮如何優(yōu)化性能。

所謂高并發(fā),就是同一時(shí)間有很多流量(通常指用戶)訪問(wèn)程序的接口、頁(yè)面及其他資源,解決高并發(fā)就是當(dāng)流量峰值到來(lái)時(shí)保證程序的穩(wěn)定性。

我們一般用QPS(每秒查詢數(shù),又叫每秒請(qǐng)求數(shù))來(lái)衡量程序的綜合性能,數(shù)值越高越好,一般需要壓測(cè)(ab工具)得到數(shù)據(jù)。

假設(shè)我們的一個(gè)進(jìn)程(也可以是線程或者協(xié)程)處理一次請(qǐng)求花費(fèi)了50毫秒(業(yè)內(nèi)達(dá)標(biāo)范圍一般是20毫秒至60毫秒),那么1秒鐘就可以處理20個(gè)請(qǐng)求,一臺(tái)服務(wù)器是可以開(kāi)很多這樣的進(jìn)程并行去處理請(qǐng)求的,比如開(kāi)了128個(gè),那么這臺(tái)機(jī)器理論上的QPS=2560。

千萬(wàn)不要小瞧這個(gè)數(shù)字,當(dāng)你的QPS真有這么高的時(shí)候意味著你的DAU(用戶日活)有2560*200=51.2萬(wàn),業(yè)內(nèi)一般是放大200倍計(jì)算,有這樣的日活說(shuō)明做得很不錯(cuò)了。

一臺(tái)服務(wù)器能夠達(dá)到的最大QPS受很多因素的影響,比如機(jī)器參數(shù)配置、機(jī)房地理位置、CPU性能、內(nèi)存大小、磁盤性能、帶寬大小、程序語(yǔ)言、數(shù)據(jù)庫(kù)性能、程序架構(gòu)等,我們一一細(xì)說(shuō)。

1.機(jī)器參數(shù)配置

這個(gè)很好理解,比如服務(wù)器最大可以開(kāi)啟128個(gè)進(jìn)程,你設(shè)置了最大只開(kāi)啟100個(gè),這屬于服務(wù)器調(diào)優(yōu)。

2.機(jī)房地理位置

如果你做海外用戶,服務(wù)器機(jī)房應(yīng)該選擇國(guó)外的,反之應(yīng)該選擇國(guó)內(nèi)的,因?yàn)闄C(jī)房距離用戶越近,在傳輸上的時(shí)間損耗就越低。

3.CPU性能

CPU性能越好,處理速度就越快,核心數(shù)越多,能夠并行開(kāi)啟的進(jìn)程就越多。

4.內(nèi)存大小

內(nèi)存越大,程序就能把更多的數(shù)據(jù)直接放到內(nèi)存,從內(nèi)存讀取數(shù)據(jù)比從磁盤讀取數(shù)據(jù)的速度快很多。

5.磁盤性能

這個(gè)不用多說(shuō)吧,一般固態(tài)硬盤的性能比機(jī)械硬盤的性能好很多,性能越好讀寫數(shù)據(jù)的速度就越快。

6.帶寬大小

服務(wù)器的帶寬一般指流出帶寬,單位為Mb/S,比如帶寬為8Mb/S即1MB/S,如果提供文件下載服務(wù),可能一個(gè)用戶的下載行為就把服務(wù)器帶寬用完了。

一般把圖片、視頻、css文件、JavaScript腳本等資源放到第三方的CDN去,按流量計(jì)費(fèi),這樣就不占用服務(wù)器帶寬了。

如果用戶規(guī)模小,基本上一臺(tái)服務(wù)器就好了,這個(gè)時(shí)候一般會(huì)選按固定帶寬大小計(jì)費(fèi)。

如果用戶規(guī)模很大了,基本上會(huì)用到負(fù)載均衡器來(lái)分流,即把流量按照一定的規(guī)則分配到不同的服務(wù)器上,負(fù)載均衡器一般會(huì)按流量來(lái)計(jì)費(fèi)。

如果平均一次請(qǐng)求返回的數(shù)據(jù)大小為50KB,為了達(dá)到1000QPS這個(gè)指標(biāo),需要的帶寬峰值=1000*50*8/1024=390.625Mb/S。

我們?cè)谠O(shè)計(jì)接口的時(shí)候應(yīng)該盡量減少返回的數(shù)據(jù)大小,比如user_id就可以簡(jiǎn)化為uid,像圖片、視頻、css等文件壓縮的目的就是減少數(shù)據(jù)的大小。

7.程序語(yǔ)言

編譯型語(yǔ)言的性能一般好于解釋型語(yǔ)言的性能,比如go語(yǔ)言性能就好于php語(yǔ)言性能,當(dāng)語(yǔ)言短期不會(huì)替換時(shí),可以通過(guò)堆機(jī)器解決高并發(fā)問(wèn)題。

8.數(shù)據(jù)庫(kù)性能

一臺(tái)服務(wù)器上部署的數(shù)據(jù)庫(kù)總是有一個(gè)瓶頸的,比如每秒查詢數(shù)、每秒寫入數(shù)。

我們可以通過(guò)增加很多從庫(kù)解決查詢(select語(yǔ)句)的瓶頸,稱之為多從庫(kù)模型,需要注意的是主從同步數(shù)據(jù)可能有延遲,當(dāng)修改數(shù)據(jù)后馬上需要查詢時(shí)需要設(shè)置強(qiáng)制從主庫(kù)讀取。

我們可以將業(yè)務(wù)拆分,讓某些表存儲(chǔ)在一個(gè)數(shù)據(jù)庫(kù)實(shí)例上,另一些表存儲(chǔ)在其他數(shù)據(jù)庫(kù)實(shí)例上,雖然一個(gè)數(shù)據(jù)庫(kù)實(shí)例有自己的瓶頸,但是很多的數(shù)據(jù)庫(kù)實(shí)例堆積起來(lái)性能就會(huì)大大改善,多個(gè)數(shù)據(jù)庫(kù)實(shí)例的方案稱之為多主庫(kù)模型,主要是為了解決寫入瓶頸(insert語(yǔ)句、update語(yǔ)句、delete語(yǔ)句)。

如果你有多個(gè)主庫(kù)又有多個(gè)從庫(kù),你就實(shí)現(xiàn)了多主多從模型。

如果一個(gè)表存儲(chǔ)的數(shù)據(jù)量很大,這個(gè)時(shí)候就要考慮分表了(一般用中間件實(shí)現(xiàn)),比如按時(shí)間分表或者按用戶分表,當(dāng)把一個(gè)表的所有分表都放在一個(gè)數(shù)據(jù)庫(kù)實(shí)例上都滿足不了要求的時(shí)候,你應(yīng)該把某些分表存儲(chǔ)在新的數(shù)據(jù)庫(kù)實(shí)例上,這個(gè)時(shí)候一個(gè)表的數(shù)據(jù)分布到了不同的數(shù)據(jù)庫(kù)實(shí)例上,這就是所謂的分布式數(shù)據(jù)庫(kù)方案了,你需要處理的事情就很復(fù)雜了,比如處理分布式事務(wù)。

數(shù)據(jù)庫(kù)的并發(fā)連接數(shù)也是有限制的,我們可以用連接池技術(shù)來(lái)應(yīng)對(duì),就是保持一定數(shù)量的和數(shù)據(jù)庫(kù)的連接不斷開(kāi)的長(zhǎng)連接,需要連接數(shù)據(jù)庫(kù)的時(shí)候就從池子里選擇一個(gè)連接,用完放回去就好了,這個(gè)一般也是用中間件來(lái)實(shí)現(xiàn)。

好的索引也能提高數(shù)據(jù)庫(kù)的性能,有時(shí)候比堆多個(gè)從庫(kù)的方案還要好。

如果能夠減少數(shù)據(jù)庫(kù)的讀寫,也算間接提高了數(shù)據(jù)庫(kù)的性能,比如我們用redis來(lái)做緩存,用消息隊(duì)列異步落庫(kù)等。

有時(shí)候某些數(shù)據(jù)用數(shù)據(jù)庫(kù)來(lái)計(jì)算需要很長(zhǎng)時(shí)間,可以取到元數(shù)據(jù)(最小粒度的數(shù)據(jù))用程序來(lái)計(jì)算,這稱之為用內(nèi)存換時(shí)間。

9.程序架構(gòu)

比如實(shí)現(xiàn)同樣的功能,初級(jí)程序員寫的程序需要循環(huán)100次,而高級(jí)程序員寫的程序只需要循環(huán)10次,效果肯定不一樣。

總結(jié)

一般大型項(xiàng)目基本是前后端分離的,從性能方面說(shuō)就是為了將頁(yè)面渲染的處理在客戶端運(yùn)行,降低服務(wù)器的壓力。

從帶寬層面考慮,css、圖片、視頻、JavaScript等文件資源能用CDN的就用CDN,能壓縮的就盡量壓縮,接口能減小返回?cái)?shù)據(jù)的大小就盡量減小。

為了解決編程語(yǔ)言的不足或者單臺(tái)服務(wù)器的瓶頸,可以先堆機(jī)器應(yīng)對(duì)。

索引、多主多從、分布式數(shù)據(jù)庫(kù)、緩存、連接池、消息隊(duì)列等是從數(shù)據(jù)庫(kù)方便考慮如何優(yōu)化性能。

有時(shí)候程序的低耦合性比程序的高性能更重要,不要一味地追求高性能。

TODO

持續(xù)更新

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/29616.html

相關(guān)文章

  • 當(dāng)面試問(wèn)你如何進(jìn)行性能優(yōu)化時(shí),你該這么回答(一)

    摘要:背景在開(kāi)發(fā)好頁(yè)面后,如何讓頁(yè)面更快更好的運(yùn)行,是區(qū)分一個(gè)程序猿技術(shù)水平和視野的一個(gè)重要指標(biāo)。在對(duì)這些環(huán)節(jié)進(jìn)行優(yōu)化之前,我們需要知道如何監(jiān)控這些環(huán)節(jié)花費(fèi)了多少時(shí)間。為了優(yōu)化鏈接的環(huán)節(jié),前端這里還需要對(duì)資源使用,雪碧圖,代碼合并等手段。 背景 在開(kāi)發(fā)好頁(yè)面后,如何讓頁(yè)面更快更好的運(yùn)行,是區(qū)分一個(gè)程序猿技術(shù)水平和視野的一個(gè)重要指標(biāo)。所以面試時(shí),面試官總會(huì)問(wèn)你一個(gè)問(wèn)題,如何進(jìn)行性能優(yōu)化呢? 如...

    elisa.yang 評(píng)論0 收藏0
  • 【專欄第一篇】分享實(shí)用美國(guó)求職,面試經(jīng)歷,技巧,以及超實(shí)用網(wǎng)站

    摘要:目前是剛到美國(guó)個(gè)多月,分享在美國(guó)求職的經(jīng)歷,目前已有面試進(jìn)入背調(diào)階段,把我期間的準(zhǔn)備分享給大家。國(guó)內(nèi)說(shuō)到關(guān)系,大多是負(fù)面的,但是美國(guó)這邊叫,他們確實(shí)對(duì)這個(gè)很推崇的。 前言:先自我介紹一下,我是新晉前端小白白,15年畢業(yè)之后,在相關(guān)領(lǐng)域工作3年,但一直都在自我提升階段。目前是剛到美國(guó)2個(gè)多月,分享在美國(guó)求職的經(jīng)歷,目前已有面試進(jìn)入背調(diào)階段,把我期間的準(zhǔn)備分享給大家。愿同道中人共同進(jìn)步!有...

    smallStone 評(píng)論0 收藏0
  • 【專欄第一篇】分享實(shí)用美國(guó)求職,面試經(jīng)歷,技巧,以及超實(shí)用網(wǎng)站

    摘要:目前是剛到美國(guó)個(gè)多月,分享在美國(guó)求職的經(jīng)歷,目前已有面試進(jìn)入背調(diào)階段,把我期間的準(zhǔn)備分享給大家。國(guó)內(nèi)說(shuō)到關(guān)系,大多是負(fù)面的,但是美國(guó)這邊叫,他們確實(shí)對(duì)這個(gè)很推崇的。 前言:先自我介紹一下,我是新晉前端小白白,15年畢業(yè)之后,在相關(guān)領(lǐng)域工作3年,但一直都在自我提升階段。目前是剛到美國(guó)2個(gè)多月,分享在美國(guó)求職的經(jīng)歷,目前已有面試進(jìn)入背調(diào)階段,把我期間的準(zhǔn)備分享給大家。愿同道中人共同進(jìn)步!有...

    lufficc 評(píng)論0 收藏0
  • 【專欄第一篇】分享實(shí)用美國(guó)求職,面試經(jīng)歷,技巧,以及超實(shí)用網(wǎng)站

    摘要:目前是剛到美國(guó)個(gè)多月,分享在美國(guó)求職的經(jīng)歷,目前已有面試進(jìn)入背調(diào)階段,把我期間的準(zhǔn)備分享給大家。國(guó)內(nèi)說(shuō)到關(guān)系,大多是負(fù)面的,但是美國(guó)這邊叫,他們確實(shí)對(duì)這個(gè)很推崇的。 前言:先自我介紹一下,我是新晉前端小白白,15年畢業(yè)之后,在相關(guān)領(lǐng)域工作3年,但一直都在自我提升階段。目前是剛到美國(guó)2個(gè)多月,分享在美國(guó)求職的經(jīng)歷,目前已有面試進(jìn)入背調(diào)階段,把我期間的準(zhǔn)備分享給大家。愿同道中人共同進(jìn)步!有...

    forrest23 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<