自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

系統(tǒng)性能調(diào)優(yōu)吐血總結(jié)經(jīng)驗(yàn)分享

開(kāi)發(fā) 前端
系統(tǒng)性能設(shè)計(jì)或優(yōu)化是否可以一步升天,按照最好的分布式架構(gòu)進(jìn)行設(shè)計(jì)和優(yōu)化呢,單個(gè)節(jié)點(diǎn)一直也運(yùn)轉(zhuǎn)及其健康,理論上是可以達(dá)到共產(chǎn)國(guó)際的,但實(shí)際實(shí)施層面不可取,必須結(jié)合實(shí)際的非功能需求進(jìn)行設(shè)計(jì)和優(yōu)化.

性能優(yōu)化的思路

首先是較為精準(zhǔn)的定位問(wèn)題,借助于相應(yīng)的工具包,分析系統(tǒng)性能瓶頸在哪,在根據(jù)其性能指標(biāo),以及所處于層級(jí)決定選擇優(yōu)化的方式方法。在選擇優(yōu)化的方式方法時(shí),大家可以參照以下章節(jié)調(diào)優(yōu)方法,架構(gòu)優(yōu)化遞進(jìn),進(jìn)行正確的,有針對(duì)性,有步驟的優(yōu)化??赡軙?huì)發(fā)現(xiàn)部分指導(dǎo)思想或許有相悖嫌疑,大可不必較真,系統(tǒng)優(yōu)化的過(guò)程本身就是一個(gè)不斷分離+共享的組合拳,至于具體選擇哪種優(yōu)化方式,根據(jù)具體需求來(lái)定,但大型應(yīng)用發(fā)展的總體思路是不斷分離,在通過(guò)索引(非數(shù)據(jù)庫(kù))進(jìn)行關(guān)聯(lián)起來(lái),

切記:優(yōu)化一定要對(duì)系統(tǒng)進(jìn)行細(xì)致的望聞問(wèn)切,找到性能問(wèn)題根源切入點(diǎn),而不被表象迷糊,對(duì)癥下藥,發(fā)現(xiàn)病癥所在的醫(yī)生并不比操作手術(shù)刀的醫(yī)生水平差。本文有工具包一章節(jié),對(duì)于需要做優(yōu)化的人員,需要熟悉,他就是我們?cè)\斷所用的CT,例如我們發(fā)現(xiàn)內(nèi)存高了,首先想到不是內(nèi)存不夠用,而是為什么如此消耗內(nèi)存,用工具看看內(nèi)存消耗在什么地方,試想之,如在醫(yī)院,病人告訴醫(yī)生,他心臟不好,醫(yī)生就換心臟,那樣的話(huà),每個(gè)人只要熟練掌握菜刀,都可以做醫(yī)生

迭代優(yōu)化

性能優(yōu)化未必一次性就能滿(mǎn)足的,可能此處瓶頸消失了,系統(tǒng)一旦運(yùn)轉(zhuǎn)快速后,在其他地方又發(fā)現(xiàn)新的性能瓶頸,所以性能優(yōu)化是一個(gè)迭代的工作。直至滿(mǎn)足系統(tǒng)需要的性能指標(biāo)。

優(yōu)化的成本

系統(tǒng)性能設(shè)計(jì)或優(yōu)化是否可以一步升天,按照最好的分布式架構(gòu)進(jìn)行設(shè)計(jì)和優(yōu)化呢,單個(gè)節(jié)點(diǎn)一直也運(yùn)轉(zhuǎn)及其健康,理論上是可以達(dá)到共產(chǎn)國(guó)際的,但實(shí)際實(shí)施層面不可取,必須結(jié)合實(shí)際的非功能需求進(jìn)行設(shè)計(jì)和優(yōu)化,一則一步到極致的話(huà),系統(tǒng)的成本太過(guò)慮龐大,光是性能設(shè)計(jì)和優(yōu)化的成本就高于系統(tǒng)本身給客戶(hù)所提供的價(jià)值,也造成研發(fā)成本開(kāi)銷(xiāo)過(guò)大。二則好像能夠架構(gòu)這樣完美系統(tǒng)的人還沒(méi)誕生。所以一句話(huà)也同樣適合架構(gòu)師:有理想而不理想化,廢話(huà)少扯:具體見(jiàn)法則

調(diào)優(yōu)方法

數(shù)據(jù)庫(kù)優(yōu)化

很多應(yīng)用,優(yōu)化DB往往是最直接,最方便,見(jiàn)效最顯著的,但并非所有的系統(tǒng)性能都處在瓶頸,或者DB瓶頸解決之后,可能應(yīng)用層瓶頸,WEB層瓶頸,甚至架構(gòu)瓶頸都會(huì)冒出來(lái)了,所以數(shù)據(jù)庫(kù)優(yōu)化十分重要,但往往很多人理解系統(tǒng)優(yōu)化就是數(shù)據(jù)庫(kù)優(yōu)化,是不全面的。優(yōu)化角色一般推薦具備較深數(shù)據(jù)知識(shí)的程序員,或者專(zhuān)業(yè)的DBA,而不只是會(huì)CRUD開(kāi)發(fā)人員

◆ 建立正確的主鍵,外鍵,以及索引

◆  分離原則:讀寫(xiě)分離,業(yè)務(wù)數(shù)據(jù)分離

a) 分庫(kù)

b) 分區(qū)

c) 分表

d) 分列(將大字段,不常用的隔離到他表,按需查詢(xún))

◆  選擇隔離級(jí)別:某些對(duì)數(shù)據(jù)一致性要求不高的,可以犧牲部分一致性,降低加鎖阻塞

◆  保證事務(wù)簡(jiǎn)短以及減少不必要的鎖機(jī)制。

◆  查詢(xún)優(yōu)化規(guī)則:

e) 避免表內(nèi)的相關(guān)子查詢(xún);

f) 避免排序或?yàn)楸M可能少的行排序,

g) 做大量數(shù)據(jù)排序時(shí)相關(guān)數(shù)據(jù)放在臨時(shí)表中

h) .盡量在where后多傳查詢(xún)條件,以減少不必要返回的行

i) .盡量select只需要的字段,以減少不必要返回的列

◆  分頁(yè)存儲(chǔ)過(guò)程:大列表的查詢(xún)也可以利用分頁(yè)存儲(chǔ)過(guò)程達(dá)到優(yōu)化效果。

◆  利用數(shù)據(jù)庫(kù)緩存,視圖,臨時(shí)表等最大程度優(yōu)化系統(tǒng),并對(duì)存儲(chǔ)過(guò)程和函數(shù)進(jìn)行必要的優(yōu)化

◆  如有需要,可以冗余表中字段,避免聯(lián)合查詢(xún)

◆  如有需要,也可以將表內(nèi)的大字段分離到單獨(dú)表中,使其單獨(dú)查詢(xún)

◆  必做多表關(guān)聯(lián)時(shí),盡量過(guò)濾不符條件表中數(shù)據(jù),減少笛卡爾積計(jì)算量

◆  復(fù)雜表表:如實(shí)時(shí)性要求不高,盡量后臺(tái)任務(wù)計(jì)算,避免動(dòng)態(tài)查詢(xún)

應(yīng)用層優(yōu)化

應(yīng)用層優(yōu)化側(cè)重于應(yīng)用層本身的邏輯優(yōu)化,算法優(yōu)化,代碼優(yōu)化等,優(yōu)化的角色可以是熟悉應(yīng)用的程序員

◆  優(yōu)化算法,選擇合適高效的算法,降低不必要的遞歸,循環(huán)、多層循環(huán)嵌套等計(jì)算

◆  避免申請(qǐng)過(guò)多的不必要的內(nèi)存開(kāi)銷(xiāo)

◆  降低內(nèi)存泄露(using,Dispose,弱引用,F(xiàn)inalize)

◆  使用頻率較低的大文件,大對(duì)象,大數(shù)組等使用完畢后,及時(shí)釋放

◆  使用頻率較高的大文件,大對(duì)象,大數(shù)組盡量緩存

◆  考慮多線(xiàn)程技術(shù)

◆  選擇適當(dāng)?shù)耐ㄐ欧绞剑洪L(zhǎng)連接,短連接,有以下方式Socket、Remoting、Web Services(Rest,Soap)、WCF、 Named Pipes

◆  降低應(yīng)用之間通信次數(shù),例用戶(hù)認(rèn)證服務(wù),工作流服務(wù),數(shù)據(jù)庫(kù)服務(wù)

◆  降低應(yīng)用之間傳輸數(shù)據(jù)量,不必要傳輸?shù)牟粋鳎賯?/p>

◆  緩存機(jī)制:緩存常用的,不易變化的,偶有變化,可以考慮緩存依賴(lài)機(jī)制

◆  支持異步計(jì)算,降低等待時(shí)間

◆  考慮延遲加載,或者提前加載兩種方式

◆  分離原則:分離業(yè)務(wù)模塊,如分離大I/O模塊、分離高耗內(nèi)存模塊,分離高耗寬帶模塊

◆  考慮分布式應(yīng)用,分布式存儲(chǔ),如以上所有仍然搞不定的

Web優(yōu)化

Web優(yōu)化偏向于熟悉前端開(kāi)發(fā)的技術(shù)人員

◆  減少http請(qǐng)求

◆  避免404錯(cuò)誤

◆  在html頁(yè)面header加入緩存標(biāo)簽

◆  Gzip壓縮網(wǎng)頁(yè)

◆  減少cookie體積

◆  使用外部的js和css

◆  消減js和css

◆  壓縮js

◆  使用css sprites技術(shù),眾多圖片合成在一起,通過(guò)CSS切分,降低圖片傳輸?shù)念l率和數(shù)據(jù)量

◆  可以使用靜態(tài)網(wǎng)頁(yè)的,避免使用動(dòng)態(tài)網(wǎng)頁(yè)

架構(gòu)優(yōu)化遞進(jìn)

為以示與應(yīng)用層優(yōu)化的區(qū)別,本文對(duì)架構(gòu)的描述更側(cè)重偏向于物理層面,再次贅述下,涉及變更架構(gòu)的,需要我們的應(yīng)用具有良好的拓展性,考驗(yàn)我們的架構(gòu)師平時(shí)的功底,如何剛剛好滿(mǎn)足需求以及兩三年內(nèi)業(yè)務(wù)增量,但并非架構(gòu)做的越強(qiáng)大,越靈活,越可配置,越易水平拓展就是越好的,其一考慮此應(yīng)用的投入產(chǎn)出比,換言之,是否值得投入這么多架構(gòu)設(shè)計(jì)成本,其二架構(gòu)設(shè)計(jì)也是具有一定的時(shí)效性的,IT速度太快了,今天的好東西未必是明天的好東西,年輕貌美的姑娘,總有變成老太婆那一天嘛,再者、越靈活的架構(gòu),就意味著存在更多的配置項(xiàng),從某一方面,反而增加了系統(tǒng)的復(fù)雜度,最后、很多大型,成熟的應(yīng)用,也并非一蹴而就,而是通過(guò)不斷的調(diào)整優(yōu)化,不斷變更架構(gòu)的。圣人也并非天生的,而是不斷的總結(jié),提煉,優(yōu)化,重構(gòu)

◆  硬件方面使用高性能的小型機(jī)、存儲(chǔ)設(shè)備。使用極好的網(wǎng)絡(luò)帶寬

◆  物理分離Web Server和DB Server或者其他服務(wù)如:用戶(hù)認(rèn)證服務(wù)

◆  緩存

ü 數(shù)據(jù)緩存機(jī)制

ü 頁(yè)面緩存機(jī)制

◆  物理分離業(yè)務(wù)模塊,單業(yè)務(wù)單獨(dú)部署一臺(tái)服務(wù)器

◆  部署多臺(tái)Web Server

◆  Web負(fù)載均衡-F5

◆  數(shù)據(jù)讀寫(xiě)分離

◆  使用消息隊(duì)列 進(jìn)行各種應(yīng)用間進(jìn)行同步/異步計(jì)算

◆  應(yīng)用間選擇合適的通信方式,通信協(xié)議

◆  Web分布式,應(yīng)用分布式,數(shù)據(jù)分布式

◆  分布式的節(jié)點(diǎn)使用高性能服務(wù)器,小型機(jī)群,輔以高速網(wǎng)絡(luò)帶寬等

工具包

◆  進(jìn)程管理器,CPU,內(nèi)存,I/O

◆  日志:IIS日志,Windows日志,系統(tǒng)本身日志

◆  使用dotTrace,跟蹤方法執(zhí)行時(shí)間,找出速度慢的方法,針對(duì)性?xún)?yōu)化

◆  Sql Profile跟蹤SQL耗時(shí)情況,針對(duì)性?xún)?yōu)化

◆  HttpWatch跟蹤請(qǐng)求耗時(shí),以及發(fā)送和收到數(shù)據(jù)量

◆  Performance Count,使用計(jì)數(shù)器,統(tǒng)計(jì)相關(guān)性能指標(biāo)

◆  CLRProfiler內(nèi)存泄露檢測(cè)工具

◆  LoadRunner,壓力測(cè)試,發(fā)現(xiàn)性能瓶頸

其他補(bǔ)充

 

系統(tǒng)性能調(diào)優(yōu)

 

源文檔下載:http://down.51cto.com/data/220108

【編輯推薦】

  1. 簡(jiǎn)單介紹Asp.net網(wǎng)站的性能優(yōu)化
  2. 介紹索引訪(fǎng)問(wèn)方法及索引優(yōu)化
  3. ASP.NET網(wǎng)站性能優(yōu)化 需要考慮哪些方面
  4. 整合、協(xié)作與優(yōu)化 讓軟件開(kāi)發(fā)成為團(tuán)隊(duì)行為
  5. 一個(gè)超棒的CSS小工具:最佳Web性能優(yōu)化
責(zé)任編輯:陳貽新 來(lái)源: 圍成的博客
相關(guān)推薦

2011-03-10 14:40:54

LAMPMysql

2010-09-26 13:48:51

JVM調(diào)優(yōu)

2013-02-28 13:37:59

系統(tǒng)性能調(diào)優(yōu)技術(shù)實(shí)戰(zhàn)

2011-03-18 11:21:48

2011-03-18 11:13:07

LAMP度量性能

2013-03-20 17:18:07

Linux系統(tǒng)性能調(diào)優(yōu)

2011-03-21 09:35:38

LAMP調(diào)優(yōu)網(wǎng)絡(luò)文件

2021-07-15 08:00:47

系統(tǒng)性能調(diào)優(yōu)cpunuma架構(gòu)

2011-03-10 14:40:52

2013-03-12 17:33:17

Linux系統(tǒng)性能調(diào)優(yōu)

2011-03-21 09:17:35

LAMP調(diào)優(yōu)磁盤(pán)

2011-03-18 11:00:48

LAMPLAMP 架構(gòu)

2013-03-18 15:35:30

2011-03-10 14:40:50

2017-07-04 13:02:02

Linux系統(tǒng)性能調(diào)優(yōu)工具

2011-05-27 10:35:05

PerfLinux系統(tǒng)性能

2013-03-18 15:07:10

Linux系統(tǒng)性能調(diào)優(yōu)

2024-04-01 08:04:05

JProfilerJVM工具

2019-09-17 08:56:29

TomcatJVM性能

2012-01-10 14:35:08

JavaJVM
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)