真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

大型網(wǎng)站背后的高性能系統(tǒng)架構(gòu)設(shè)計(jì)方法是什么-創(chuàng)新互聯(lián)

本文小編為大家詳細(xì)介紹“大型網(wǎng)站背后的高性能系統(tǒng)架構(gòu)設(shè)計(jì)方法是什么”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“大型網(wǎng)站背后的高性能系統(tǒng)架構(gòu)設(shè)計(jì)方法是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。

建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁(yè)設(shè)計(jì)師等,應(yīng)用各種網(wǎng)絡(luò)程序開(kāi)發(fā)技術(shù)和網(wǎng)頁(yè)設(shè)計(jì)技術(shù)配合操作的協(xié)同工作。創(chuàng)新互聯(lián)專業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站制作(企業(yè)站、成都響應(yīng)式網(wǎng)站建設(shè)公司、電商門戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗(yàn)的提升,我們力求做到極致!

1. 性能測(cè)試

1.1. 性能指標(biāo)

網(wǎng)站性能測(cè)試的主要指標(biāo)有:

  • 響應(yīng)時(shí)間 - 響應(yīng)時(shí)間(RT)是指從客戶端發(fā)一個(gè)請(qǐng)求開(kāi)始計(jì)時(shí),到客戶端接收到從服務(wù)器端返回的響應(yīng)結(jié)果結(jié)束所經(jīng)歷的時(shí)間,響應(yīng)時(shí)間由請(qǐng)求發(fā)送時(shí)間、網(wǎng)絡(luò)傳輸時(shí)間和服務(wù)器處理時(shí)間三部分組成。

  • 并發(fā)數(shù) - 系統(tǒng)同時(shí)處理的請(qǐng)求、事務(wù)數(shù)。

  • 吞吐量 - TPS(每秒事務(wù)數(shù))、HPS(每秒 HTTP 請(qǐng)求數(shù))、QPS(每秒查詢數(shù))。

  • 性能計(jì)數(shù)器 - 系統(tǒng)負(fù)載、對(duì)象與線程數(shù)、內(nèi)存使用、CPU 使用、磁盤與網(wǎng)絡(luò) IO 等。這些指標(biāo)也是系統(tǒng)監(jiān)控的重要參數(shù)。

1.2. 性能測(cè)試方法

  • 性能測(cè)試

  • 負(fù)載測(cè)試

  • 壓力測(cè)試

  • 穩(wěn)定性測(cè)試

1.3. 性能測(cè)試報(bào)告

性能測(cè)試報(bào)告示例:

大型網(wǎng)站背后的高性能系統(tǒng)架構(gòu)設(shè)計(jì)方法是什么

1.4. 性能優(yōu)化策略

  1. 性能分析 - 如果請(qǐng)求響應(yīng)慢,存在性能問(wèn)題。需要對(duì)請(qǐng)求經(jīng)歷的各個(gè)環(huán)節(jié)逐一分析,排查可能出現(xiàn)性能瓶頸的地方,定位問(wèn)題。檢查監(jiān)控?cái)?shù)據(jù),分析影響性能的主要因素:內(nèi)存、磁盤、網(wǎng)絡(luò)、CPU,可能是代碼或架構(gòu)設(shè)計(jì)不合理,又或者是系統(tǒng)資源確實(shí)不足。

  2. 性能優(yōu)化 - 性能優(yōu)化根據(jù)網(wǎng)站分層架構(gòu),大致可分為前端性能優(yōu)化、應(yīng)用服務(wù)性能優(yōu)化、存儲(chǔ)服務(wù)性能優(yōu)化。

2. 前端性能優(yōu)化

2.1. 瀏覽器訪問(wèn)優(yōu)化

  1. 減少 HTTP 請(qǐng)求 - HTTP 請(qǐng)求需要建立通信鏈路,進(jìn)行數(shù)據(jù)傳輸,開(kāi)銷高昂,所以減少 HTTP 請(qǐng)求數(shù)可以有效提高訪問(wèn)性能。減少 HTTP 的主要手段是合并 Css、JavaScript、圖片。

  2. 使用瀏覽器緩存 - 因?yàn)殪o態(tài)資源文件更新頻率低,可以緩存瀏覽器中以提高性能。設(shè)置 HTTP 頭中的 Cache-Control 和 Expires 屬性,可以設(shè)定瀏覽器緩存。

  3. 啟用壓縮 - 在服務(wù)器端壓縮靜態(tài)資源文件,在瀏覽器端解壓縮,可以有效減少傳輸?shù)臄?shù)據(jù)量。由于文本文件壓縮率可達(dá) 80% 以上,所以可以對(duì)靜態(tài)資源,如 Html、Css、JavaScrip 進(jìn)行壓縮。

  4. CSS 放在頁(yè)面最上面,JavaScript 放在頁(yè)面最下面 - 瀏覽器會(huì)在下載完全部的 Css 后才對(duì)整個(gè)頁(yè)面進(jìn)行渲染,所以最好的做法是將 Css 放在頁(yè)面最上面,讓瀏覽器盡快下載 Css;JavaScript 則相反,瀏覽器加載 JavaScript 后立即執(zhí)行,可能會(huì)阻塞整個(gè)頁(yè)面,造成頁(yè)面顯示緩慢,因此 JavaScript 最好放在頁(yè)面最下面。

  5. 減少 Cookie 傳輸 - Cookie 包含在 HTTP 每次的請(qǐng)求和響應(yīng)中,太大的 Cookie 會(huì)嚴(yán)重影響數(shù)據(jù)傳輸。

2.2. CDN

CDN 一般緩存的是靜態(tài)資源。

CDN 的本質(zhì)仍然是一個(gè)緩存,而且將數(shù)據(jù)緩存在離用戶最近的地方,使用戶已最快速度獲取數(shù)據(jù),即所謂網(wǎng)絡(luò)訪問(wèn)第一跳。

大型網(wǎng)站背后的高性能系統(tǒng)架構(gòu)設(shè)計(jì)方法是什么

2.3. 反向代理

傳統(tǒng)代理服務(wù)器位于瀏覽器一側(cè),代理瀏覽器將 HTTP 請(qǐng)求發(fā)送到互聯(lián)網(wǎng)上,而反向代理服務(wù)器位于網(wǎng)站機(jī)房一側(cè),代理網(wǎng)站服務(wù)器接收 HTTP 請(qǐng)求。

大型網(wǎng)站背后的高性能系統(tǒng)架構(gòu)設(shè)計(jì)方法是什么

反向代理服務(wù)器可以配置緩存功能加速 Web 請(qǐng)求,當(dāng)用戶第一次訪問(wèn)靜態(tài)內(nèi)容時(shí),靜態(tài)內(nèi)容就會(huì)被緩存在反向代理服務(wù)器上。

反向代理還可以實(shí)現(xiàn)負(fù)載均衡,通過(guò)負(fù)載均衡構(gòu)建的集群可以提高系統(tǒng)總體處理能力。

因?yàn)樗姓?qǐng)求都必須先經(jīng)過(guò)反向代理服務(wù)器,所以可以屏蔽一些攻擊 IP,達(dá)到保護(hù)網(wǎng)站安全的作用。

3. 應(yīng)用服務(wù)性能優(yōu)化

3.1. 分布式緩存

網(wǎng)站性能優(yōu)化第一定律:優(yōu)先考慮使用緩存優(yōu)化性能。

緩存原理

緩存指將數(shù)據(jù)存儲(chǔ)在相對(duì)較高訪問(wèn)速度的存儲(chǔ)介質(zhì)中,以供系統(tǒng)處理。一方面緩存訪問(wèn)速度快,可以減少數(shù)據(jù)訪問(wèn)的時(shí)間,另一方面如果緩存的數(shù)據(jù)是經(jīng)過(guò)計(jì)算處理得到的,那么被緩存的數(shù)據(jù)無(wú)需重復(fù)計(jì)算即可直接使用,因此緩存還起到減少計(jì)算時(shí)間的作用。

緩存的本質(zhì)是一個(gè)內(nèi)存 HASH 表。

緩存主要用來(lái)存放那些讀寫比很高、很少變化的數(shù)據(jù),如商品的類目信息,熱門詞的搜索列表信息、熱門商品信息等。

合理使用緩存

緩存數(shù)據(jù)的選擇:

  • 不要存儲(chǔ)頻繁修改的數(shù)據(jù)

  • 不要存儲(chǔ)非熱點(diǎn)數(shù)據(jù)

數(shù)據(jù)不一致和臟讀:

  • 緩存有有效期,所以存在一定時(shí)間的數(shù)據(jù)不一致和臟讀問(wèn)題。如果不能接受,可以考慮使用數(shù)據(jù)更新立即更新緩存策略

需要考慮緩存問(wèn)題:緩存雪崩、緩存穿透、緩存預(yù)熱

3.2. 異步操作

異步處理一般是通過(guò)分布式消息隊(duì)列的方式。

異步處理可以解決一下問(wèn)題:

  • 異步處理

  • 應(yīng)用解耦

  • 流量削鋒

  • 日志處理

  • 消息通訊

3.3. 使用集群

在高并發(fā)場(chǎng)景下,使用負(fù)載均衡技術(shù)為一個(gè)應(yīng)用構(gòu)建一個(gè)由多臺(tái)服務(wù)器組成的服務(wù)器集群,將并發(fā)訪問(wèn)請(qǐng)求分發(fā)到多臺(tái)服務(wù)器上處理,避免單一服務(wù)器因負(fù)載壓力過(guò)大而響應(yīng)緩慢,使用戶請(qǐng)求具有更好的響應(yīng)延遲特性。

3.4. 代碼優(yōu)化

多線程

從資源利用的角度看,使用多線程的原因主要有兩個(gè):IO 阻塞和多 CPU。

線程數(shù)并非越多越好,那么啟動(dòng)多少線程合適呢?

有個(gè)參考公式:

啟動(dòng)線程數(shù) = (任務(wù)執(zhí)行時(shí)間 / (任務(wù)執(zhí)行時(shí)間 - IO 等待時(shí)間)) * CPU 內(nèi)核數(shù)

最佳啟動(dòng)線程數(shù)和 CPU 內(nèi)核數(shù)成正比,和 IO 阻塞時(shí)間成反比。如果任務(wù)都是 CPU 計(jì)算型任務(wù),那么線程數(shù)最多不要超過(guò) CPU 內(nèi)核數(shù),因?yàn)閱?dòng)再多線程,CPU 也來(lái)不及調(diào)度;相反如果是任務(wù)需要等待磁盤操作,網(wǎng)絡(luò)響應(yīng),那么多啟動(dòng)線程有助于任務(wù)并罰賭,提高系統(tǒng)吞吐量。

線程安全問(wèn)題

  • 將對(duì)象設(shè)計(jì)為無(wú)狀態(tài)對(duì)象

  • 使用局部對(duì)象

  • 并發(fā)訪問(wèn)資源時(shí)使用鎖

資源復(fù)用

應(yīng)該盡量減少那些開(kāi)銷很大的系統(tǒng)資源的創(chuàng)建和銷毀,如數(shù)據(jù)庫(kù)連接、網(wǎng)絡(luò)通信連接、線程、復(fù)雜對(duì)象等。從編程角度,資源復(fù)用主要有兩種模式:?jiǎn)卫J胶蛯?duì)象池。

數(shù)據(jù)結(jié)構(gòu)

根據(jù)具體場(chǎng)景,選擇合適的數(shù)據(jù)結(jié)構(gòu)。

垃圾回收

如果 Web 應(yīng)用運(yùn)行在 JVM 等具有垃圾回收功能的環(huán)境中,那么垃圾回收可能會(huì)對(duì)系統(tǒng)的性能特性產(chǎn)生巨大影響。立即垃圾回收機(jī)制有助于程序優(yōu)化和參數(shù)調(diào)優(yōu),以及編寫內(nèi)存安全的代碼。

4. 存儲(chǔ)性能優(yōu)化

4.1. 機(jī)械鍵盤和固態(tài)硬盤

考慮使用固態(tài)硬盤替代機(jī)械鍵盤,因?yàn)樗淖x寫速度更快。

4.2. B+數(shù)和 LSM 樹(shù)

傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)索引一般都使用兩級(jí)索引的 B+ 樹(shù)結(jié)構(gòu),樹(shù)的層次最多三層。因此可能需要 5 次磁盤訪問(wèn)才能更新一條記錄(三次磁盤訪問(wèn)獲得數(shù)據(jù)索引及行 ID,然后再進(jìn)行一次數(shù)據(jù)文件讀操作及一次數(shù)據(jù)文件寫操作)。

由于磁盤訪問(wèn)是隨機(jī)的,傳統(tǒng)機(jī)械鍵盤在數(shù)據(jù)隨機(jī)訪問(wèn)時(shí)性能較差,每次數(shù)據(jù)訪問(wèn)都需要多次訪問(wèn)磁盤影響數(shù)據(jù)訪問(wèn)性能。

許多 Nosql 數(shù)據(jù)庫(kù)中的索引采用 LSM 樹(shù)作為主要數(shù)據(jù)結(jié)構(gòu)。LSM 樹(shù)可視為一個(gè) N 階合并樹(shù)。數(shù)據(jù)寫操作都在內(nèi)存中進(jìn)行。在 LSM 樹(shù)上進(jìn)行一次數(shù)據(jù)更新不需要磁盤訪問(wèn),速度遠(yuǎn)快于 B+ 樹(shù)。

4.3. RAID 和 HDFS

HDFS(分布式文件系統(tǒng)) 更被大型網(wǎng)站所青睞。它可以配合 MapReduce 并發(fā)計(jì)算任務(wù)框架進(jìn)行大數(shù)據(jù)處理,可以在整個(gè)集群上并發(fā)訪問(wèn)所有磁盤,無(wú)需 RAID 支持。

讀到這里,這篇“大型網(wǎng)站背后的高性能系統(tǒng)架構(gòu)設(shè)計(jì)方法是什么”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。


分享文章:大型網(wǎng)站背后的高性能系統(tǒng)架構(gòu)設(shè)計(jì)方法是什么-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://weahome.cn/article/iigjj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部