




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
高并發(fā)高負載系統(tǒng)架構(gòu)二OO九年十一月目錄1、為什么要進行高并發(fā)和高負載的研究2、高并發(fā)和高負載的約束條件3、解決之道——硬件篇4、解決之道——部署篇5、解決之道——環(huán)境篇6、解決之道——SiteEngine篇7、解決之道——測試篇8、結(jié)尾為什么要進行高并發(fā)和高負載的研究1、產(chǎn)品開展的需要2、公司開展的需要3、當前形式?jīng)Q定的高并發(fā)和高負載的約束條件1、硬件2、部署3、操作系統(tǒng)4、Web效勞器5、PHP6、MySQL7、測試解決之道——硬件篇處理能力的提升:部署多顆CPU,選擇多核心、具備更高運算頻率、更大高速緩存的CPU;處理能力的提升最直接的反響在于Web請求的處理效率和PHP程序的執(zhí)行效率。內(nèi)存帶寬與容量:更大的內(nèi)存帶寬和容量;內(nèi)存帶寬與容量的提升最直接的反響在于應對數(shù)據(jù)庫大量的數(shù)據(jù)交換。磁盤搜索與I/O能力:選擇更高的轉(zhuǎn)速、更大的硬盤緩存、組件磁盤陣列〔RAID〕;磁盤搜索與I/O能力的提升最直接反響在于數(shù)據(jù)庫大量的查詢和讀寫以及文件的讀寫。網(wǎng)絡(luò)帶寬的提升可考慮的因素包括:更大帶寬、多線路接入、獨享帶寬;效勞器在大負載的情況下,對網(wǎng)絡(luò)帶寬的占用是十分可觀的。策略:硬件設(shè)施是應對大負載的根底,硬件設(shè)施的投入可根據(jù)實際壓力和預算量力而行。解決之道——部署篇1、效勞器別離2、數(shù)據(jù)庫集群和庫表散列3、鏡像4、負載均衡
分類: 1)、DNS輪循 2〕代理效勞器負載均衡 3〕地址轉(zhuǎn)換網(wǎng)關(guān)負載均衡 4〕NAT負載均衡 5〕反向代理負載均衡 6〕混合型負載均衡策略:根據(jù)硬件投入和業(yè)務需求,選擇合理的部署方案。解決之道——部署篇——方案一適用范圍:靜態(tài)內(nèi)容為主體的網(wǎng)站和應用系統(tǒng);對系統(tǒng)平安要求較高的網(wǎng)站和應用系統(tǒng)。MainServer:主效勞器承載程序的主體運行壓力,處理網(wǎng)站或應用系統(tǒng)中的動態(tài)請求;將靜態(tài)頁面推送至多個發(fā)布效勞器;將附件文件推送至文件效勞器;平安要求較高,以靜態(tài)為主的網(wǎng)站,可將效勞器置于內(nèi)網(wǎng)屏蔽外網(wǎng)的訪問。DBServer:數(shù)據(jù)庫效勞器承載數(shù)據(jù)庫讀寫壓力;只與主效勞器進行數(shù)據(jù)量交換,屏蔽外網(wǎng)訪問。File/VideoServer:文件/視頻效勞器承載系統(tǒng)中占用系統(tǒng)資源和帶寬資源較大的數(shù)據(jù)流;作為大附件的存儲和讀寫倉庫;作為視頻效勞器將具備視頻自動處理能力。發(fā)布效勞器組:只負責靜態(tài)頁面的發(fā)布,承載絕大多數(shù)的Web請求;通過Nginx進行負載均衡部署。解決之道——部署篇——方案二適用范圍:以動態(tài)交互內(nèi)容為主體的網(wǎng)站或應用系統(tǒng);負載壓力較大,且預算比較充足的網(wǎng)站或應用系統(tǒng);Web效勞器組:Web效勞無主從關(guān)系,屬平行冗余設(shè)計;通過前端負載均衡設(shè)備或Nginx反向代理實現(xiàn)負載均衡;劃分專用文件效勞器/視頻效勞器有效別離輕/重總線;每臺Web效勞器可通過DEC可實現(xiàn)連接所有數(shù)據(jù)庫,同時劃分主從。數(shù)據(jù)庫效勞器組:相對均衡的承載數(shù)據(jù)庫讀寫壓力;通過數(shù)據(jù)庫物理文件的映射實現(xiàn)多數(shù)據(jù)庫的數(shù)據(jù)同步。共享磁盤/磁盤陣列將用于數(shù)據(jù)物理文件的統(tǒng)一讀寫用于大型附件的存儲倉庫通過自身物理磁盤的均衡和冗余,確保整體系統(tǒng)的IO效率和數(shù)據(jù)平安;方案特性:通過前端負載均衡,合理分配Web壓力;通過文件/視頻效勞器與常規(guī)Web效勞器的別離,合理分配輕重數(shù)據(jù)流;通過數(shù)據(jù)庫效勞器組,合理分配數(shù)據(jù)庫IO壓力;每臺Web效勞器通常只連接一臺數(shù)據(jù)庫效勞器,通過DEC的心跳檢測,可在極短時間內(nèi)自動切換至冗余數(shù)據(jù)庫效勞器;磁盤陣列的引入,大幅提升系統(tǒng)IO效率的同時,極大增強了數(shù)據(jù)平安性。解決之道——環(huán)境篇1、操作系統(tǒng)2、Web效勞器3、Mysql4、PHP5、代理效勞器〔緩存效勞器〕解決之道——環(huán)境篇——操作系統(tǒng)操作系統(tǒng)的選擇,關(guān)注點在于是否適應于搭建SiteEngine所需要的環(huán)境程序?系統(tǒng)本身占用的資源比;系統(tǒng)平安性;系統(tǒng)是否易于操作?策略:我們選擇FreeBSD,而且是最小化安裝以后的FreeBSD。解決之道——環(huán)境篇——Web效勞器Web效勞器很大一局部資源占用來自于處理Web請求,通常情況下這也就是Apache產(chǎn)生的壓力,Apache是世界使用排名第一的Web效勞器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上。在高并發(fā)連接的情況下,Nginx是Apache效勞器不錯的替代品。Nginx(“enginex”)是俄羅斯人編寫的一款高性能的HTTP和反向代理效勞器。在國內(nèi),已經(jīng)有新浪、搜狐通行證、網(wǎng)易新聞、網(wǎng)易博客、金山逍遙網(wǎng)、金山愛詞霸、校內(nèi)網(wǎng)、YUPOO相冊、豆瓣、迅雷看看等多家網(wǎng)站、頻道使用Nginx效勞器。Nginx的優(yōu)勢:高并發(fā)連接:官方測試能夠支撐5萬并發(fā)連接,在實際生產(chǎn)環(huán)境中跑到2~3萬并發(fā)連接數(shù)。內(nèi)存消耗少:在3萬并發(fā)連接下,開啟的10個Nginx進程才消耗150M內(nèi)存〔15M*10=150M〕。內(nèi)置的健康檢查功能:如果NginxProxy后端的某臺Web效勞器宕機了,不會影響前端訪問。
策略:相對于老牌的Apache,我們選擇Ligd和Nginx這些具有更小的資源占用率和更高的負載能力的web效勞器。解決之道——環(huán)境篇——MysqlMySQL本身具備了很強的負載能力,MySQL優(yōu)化是一項很復雜的工作,因為這最終需要對系統(tǒng)優(yōu)化的很好理解。大家都知道數(shù)據(jù)庫工作就是大量的、短時的查詢和讀寫,除了程序開發(fā)時需要注意建立索引、提高查詢效率等軟件開發(fā)技巧之外,從硬件設(shè)施的角度影響MySQL執(zhí)行效率最主要來自于磁盤搜索、磁盤IO水平、CPU周期、內(nèi)存帶寬。根據(jù)效勞器上的硬件和軟件條件進行MySQl優(yōu)化。MySQL優(yōu)化的核心在于系統(tǒng)資源的分配,這不等于無限制的給MySQL分配更多的資源。在MySQL配置文件中我們介紹幾個最值得關(guān)注的參數(shù):改變索引緩沖區(qū)長度(key_buffer)改變表長(read_buffer_size)設(shè)定翻開表的數(shù)目的最大值(table_cache)對緩長查詢設(shè)定一個時間限制(long_query_time)如果條件允許,一般MySQL效勞器最好安裝在Linux操作系統(tǒng)中,而不是安裝在FreeBSD中。
策略:MySQL優(yōu)化需要根據(jù)業(yè)務系統(tǒng)的數(shù)據(jù)庫讀寫特性和效勞器硬件配置,制定不同的優(yōu)化方案,并且可以根據(jù)需要部署MySQL的主從結(jié)構(gòu)。解決之道——環(huán)境篇——PHP1、加載盡可能少的模塊;2、如果是在windows平臺下,盡可能使用IIS或者Nginx來替代我們平常用的Apache;3、安裝加速器〔都是通過緩存php代碼預編譯的結(jié)果和數(shù)據(jù)庫結(jié)果來提高php代碼的執(zhí)行速度〕
eAcceleratoreAccelerator是一個自由開放源碼php加速器,優(yōu)化和動態(tài)內(nèi)容緩存,提高了性能php腳本的緩存性能,使得PHP腳本在編譯的狀態(tài)下,對效勞器的開銷幾乎完全消除。ApcAlternativePHPCache〔APC〕是PHP的一個免費公開的優(yōu)化代碼緩存。它用來提供免費,公開并且強健的架構(gòu)來緩存和優(yōu)化PHP的中間代碼。memcachememcache是由DangaInteractive開發(fā)的,高性能的,分布式的內(nèi)存對象緩存系統(tǒng),用于在動態(tài)應用中減少數(shù)據(jù)庫負載,提升訪問速度。主要機制是通過在內(nèi)存里維護一個統(tǒng)一的巨大的hash表,Memcache能夠用來存儲各種格式的數(shù)據(jù),包括圖像、視頻、文件以及數(shù)據(jù)庫檢索的結(jié)果等Xcache國人開發(fā)的緩存器,策略:為PHP安裝加速器。解決之道——環(huán)境篇——代理效勞器SquidCache〔簡稱為Squid〕是一個流行的自由軟件〔GNU通用公共許可證〕的代理效勞器和Web緩存效勞器。Squid有廣泛的用途,從作為網(wǎng)頁效勞器的前置cache效勞器緩存相關(guān)請求來提高Web效勞器的速度,到為一組人共享網(wǎng)絡(luò)資源而緩存萬維網(wǎng),域名系統(tǒng)和其他網(wǎng)絡(luò)搜索,到通過過濾流量幫助網(wǎng)絡(luò)平安,到局域網(wǎng)通過代理上網(wǎng)。Squid主要設(shè)計用于在Unix一類系統(tǒng)運行。
策略:安裝Squid反向代理效勞器,能夠大幅度提高效勞器效率。解決之道——環(huán)境篇——總結(jié)推薦的效勞器環(huán)境配置:操作系統(tǒng): FreeBSD
web效勞器: Nginx程序語言: PHP+ZendOptimizer+eAccelerator數(shù)據(jù)庫: MySQL解決之道——SiteEngine篇SiteEngine歷史上為了解決高并發(fā)高負載做了那些工作:1、靜態(tài)化;2、緩存;3、內(nèi)存表;4、定長表;5、盡可能少用join還有IN。解決之道——SiteEngine篇SiteEngine在實施高并發(fā)高負載中出現(xiàn)的問題:SiteEngine在前期的開展中,一直是面向通用型的中小網(wǎng)站來設(shè)計的。從底層上就有不適應高并發(fā)高負載的機制存在。具體表現(xiàn)在:1、原有緩存功能,特別是類別的緩存無用武之地;2、無用的sql查詢和sql查詢的效率問題;3、多語言設(shè)計導致很多查詢都變得復雜,導致效率低下;4、Mysql中的查詢方法太多;5、前臺的動態(tài)交互太少。解決之道——SiteEngine篇為了讓SiteEngine更好的適應高并發(fā)高負載的環(huán)境。主要從以下幾個方面進行改進:1、參加Memcache緩存技術(shù);2、開發(fā)一套精簡版高效率的SiteEngine開發(fā)框架,專門應對系統(tǒng)開發(fā);3、MySQL數(shù)據(jù)庫考慮轉(zhuǎn)為innodb數(shù)據(jù)引擎;4、前臺更大量的參加Ajax元素;5、改變類別模式或者改變類別算法,取消類別緩存機制;6、成立專門的研發(fā)部門,將工程開發(fā)和軟件研發(fā)分開;7、加強測試和團隊合作。解決之道——測試篇1、測試方法2、測試用例3、壓力測試壓力測試是一種根本的質(zhì)量保證行為,它是每個重要軟件測試工作的一局部。壓力測試的根本思路很簡單:不是在常規(guī)條件下運行手動或自動測試,而是在計算機數(shù)量較少或系統(tǒng)資源匱乏的條件下運行測試。通常要進行壓力測試的資源包括內(nèi)部內(nèi)存、CPU可用性、磁盤空間和網(wǎng)絡(luò)帶寬等。一般用并發(fā)來做壓力測試。壓力測試工具:webbench,ApacheBench等3、漏洞測試在我們的系統(tǒng)中漏洞主要包括:sql注入漏洞,xss跨站腳本攻擊等。平安方面還包括系統(tǒng)軟件,如操作系統(tǒng)漏洞,mysql、a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 前臺工作的職業(yè)發(fā)展路徑計劃
- 財務資金分配計劃
- 通信行業(yè)月度個人工作計劃
- 《六盤水市東風煤業(yè)有限公司水城區(qū)東風煤礦(優(yōu)化重組)礦產(chǎn)資源綠色開發(fā)利用方案(三合一)》評審意見
- 攀枝花駿恒礦業(yè)有限責任公司爐房箐鐵礦礦山地質(zhì)環(huán)境保護與土地復墾方案情況
- 保健植物知識培訓課件
- 蛋白還原酸護理教程
- 小學信息技術(shù)四年級上冊第5課《 精彩游戲-軟件的下載》教學設(shè)計001
- 2025年銅川貨運從業(yè)資格證考試模擬考試題庫下載
- 2025年新鄉(xiāng)貨運從業(yè)資格證怎么考試
- 第3課 中古時期的西歐(新教材課件)-【中職專用】《世界歷史》(高教版2023?基礎(chǔ)模塊)
- 《電氣裝置安裝工程 盤、柜及二次回路接線施工及驗收規(guī)范》
- RRU設(shè)計原理與實現(xiàn)
- 工程質(zhì)量責任制和考核辦法
- 《室內(nèi)展示設(shè)計》課件
- 中級消防設(shè)施操作員考試題庫
- 服裝店售后培訓課件
- 新舊系統(tǒng)數(shù)據(jù)遷移方案
- 3D打印與傳統(tǒng)工藝美術(shù)的融合創(chuàng)新
- 運動損傷預防與處理的案例分析
- 第四次工業(yè)革命課件
評論
0/150
提交評論