国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

線上系統沒做性能優化,說炸就炸...

原創
開發 架構 開發工具
前幾天跟某互聯網主題旅游網架構師聊起性能調優的話題,那個時候正好遇到一些線上調優的一些困惑,希望一起探討一下。

【51CTO.com原創稿件】前幾天跟某互聯網主題旅游網架構師聊起性能調優的話題,那個時候正好遇到一些線上調優的一些困惑,希望一起探討一下。

[[353487]] 

圖片來自 Pexels

他跟我說,他們公司的系統從來沒有經過性能調優,功能測試完成后就上線了,線上也沒有出現過什么性能問題呀,為什么要進行調優呢??

[[353488]] 

可謂底氣十足啊!!!無知者無畏啊;就不怕為公司埋雷,到時候追究他的責任?

當時我一臉懵逼,既然不做性能優化就直接上線,相當于給系統埋了一個定時炸彈,一旦到某個臨界點,說炸就炸,到時候回天乏力。

因此我就回答了他一句,“我去,如果你們公司做的是淘寶,京東,12306 這樣的網站,不做系統性能優化就上線,試試看會是什么情況”。

今天,我們就從這個話題聊起,希望能跟你一起弄明白這幾個問題:我們為什么要做性能調優?什么時候開始做?做性能調優是不是有標準可參考?

為什么要做性能調優?

在互聯網項目開發中,總是不斷針對新的需求去研發新的系統,而很多系統的設計都是可以觸類旁通的,在系統架構設計中,我們必須遵循一些原則:

海恩法則:

  • 事故的發生是量的積累的結果 (并發量,數據量,服務量…….)
  • 再好的技術、再完美的規章, 在實際操作層面也無法取代人自身的素質和責任心 。

墨菲定律:

  • 任何事情都沒有表面看起來那么簡單 。
  • 所有事情的發展都會比你預計的時間長 。
  • 會出錯的事總會出錯。
  • 如果你擔心某種情況發生,那么它更有可能發生。

這些原則警示我們,在互聯網公司里,對生產環境發生的任何怪異現象和問題 都不要輕易忽視,對于其背后的原因一定要徹查。

同樣,海恩法則也強調任何嚴重事故的背后 都是多次小問題的積累,積累到一定的量級后會導致質變,嚴重的問題就會浮出水面 。

那么,我們需要對線上服務產生的任何征兆,哪怕是一個小問題,也要刨根問底。

這就需要我們有技術攻關的能力,對任何現象都要秉著以下原則:為什么發生?發生了怎么應對?怎么恢復?怎么避免?對問題要徹查,不能因為問題的現象不明顯而忽略 。

 

一款線上產品如果沒有經過性能測試,那它就好比是一顆定時炸彈,你不知道它什么時候會出現問題,你也不清楚它能承受的極限在哪兒。

性能測試的目的在于驗證軟件系統是否能夠達到用戶提出的性能指標,同時發現軟件系統中存在的性能瓶頸,以優化軟件。

有些性能問題是時間累積慢慢產生的,到了一定時間自然就爆炸了;而更多的性能問題是由訪問量的波動導致的,例如,活動或者公司產品用戶量上升。

當然也有可能是一款產品上線后就半死不活,一直沒有大訪問量,所以還沒有引發這顆定時炸彈。

現在假設你的系統要做一次促銷活動,產品經理或者老板告訴你預計有幾十萬,幾百萬,甚至更多的用戶訪問量,詢問系統能否承受得住這次活動的壓力。

如果你不清楚自己系統的性能情況,也只能戰戰兢兢地回答老板,有可能大概沒問題吧。

[[353489]] 

所以,要不要做性能調優,這個問題其實很好回答。所有的系統在開發完之后,多多少少都會有性能問題,我們首先要做的就是想辦法把問題暴露出來,例如進行壓力測試、模擬可能的操作場景等等,再通過性能調優去解決這些問題。

好的系統性能調優不僅僅可以提高系統的性能,還能為公司節省資源,實現降本增效。這也是我們做性能調優的最直接的目的。

什么時候開始介入調優?

解決了為什么要做性能優化的問題,那么新的問題就來了:如果需要對系統做一次全面的性能監測和優化,我們從什么時候開始介入性能調優呢?是不是越早介入越好?

其實,在項目開發的初期,我們沒有必要過于在意性能優化,這樣反而會讓我們疲于性能優化,不僅不會給系統性能帶來提升,還會影響到開發進度,甚至獲得相反的效果,給系統帶來新的問題。

我們只需要在代碼層面保證有效的編碼,同時在架構層面做好設計即可,具體架構設計可以參考如下幾條行之有效的法則:

①系統的架構設計,如何在架構層面減少不必要的處理(網絡請求,數據庫操作等),例如:使用 Cache 來減少 IO 次數,使用異步來增加單服務吞吐量,使用無鎖數據結構來減少響應時間。

②網絡拓撲優化減少網絡請求時間、如何設計拓撲結構,分布式如何實現?

③系統代碼級別的代碼優化,使用什么設計模式來進行工作?哪些類需要使用單例,哪些需要盡量減少 new 操作?

④提高代碼層面的運行效率、如何選取合適的數據結構進行數據存取?如何設計合適的算法?

⑤任務執行方式級別的同異步操作,在哪里使用同步,哪里使用異步?

⑥JVM 調優,如何設置 Heap、Stack、Eden 的大小,如何選擇 GC 策略,控制 Full GC 的頻率?

⑦服務端調優(線程池,等待隊列)。

⑧數據庫優化減少查詢修改時間。數據庫的選取?數據庫引擎的選取?數據庫表結構的設計?數據庫索引、觸發器等設計?是否使用讀寫分離?還是需要考慮使用數據倉庫?

⑨緩存數據庫的使用,如何選擇緩存數據庫?是 Redis 還是 Memcache? 如何設計緩存機制?

⑩數據通信問題,如何選擇通信方式?是使用 TCP 還是 UDP,是使用長連接還是短連接?NIO 還是 BIO?netty、mina 還是原生 socket?

⑪操作系統選取,是使用 winserver 還是 Linux?或者 Unix?

⑫硬件配置?是 8G 內存還是 32G,網卡 10G 還是 1G?例如:增加 CPU 核數如 32 核,升級更好的網卡如萬兆,升級更好的硬盤如 SSD,擴充硬盤容量如 2T,擴充系統內存如 128G。

在系統編碼完成之后,我們就可以對系統進行性能測試了。這時候,產品經理一般會提供線上預期數據,我們在提供的參考平臺上進行壓測,通過性能分析、統計工具來統計各項性能指標,看是否在預期范圍之內。

在項目成功上線后,我們還需要根據線上的實際情況,依照日志監控以及性能統計日志,來觀測系統性能問題,一旦發現問題,就要對日志進行分析并及時修復問題。

在我們進行調優之前,必須對性能指標有一定的認知,否則我們調優就是空中樓閣,沒有任何的可參考的依據,是無法實現調優的。

在我們了解性能指標之前,我們先來了解下哪些計算機資源會成為系統的性能瓶頸,這些東西各位應該都非常清楚,在系統上線后,無外乎就是 CPU、內存、磁盤、網絡等等這些問題。

CPU:有的應用需要大量計算,他們會長時間、不間斷地占用 CPU 資源,導致其他資源無法爭奪到 CPU 而響應緩慢,從而帶來系統性能問題。

例如,代碼遞歸導致的無限循環,正則表達式引起的回溯,JVM 頻繁的 FULL GC,以及多線程編程造成的大量上下文切換等,這些都有可能導致 CPU 資源繁忙。

大量線程搶占 CPU 資源,導致 CPU 占用率升高:

 

CPU 占用率情況排查:

 

內存:Java 程序一般通過 JVM 對內存進行分配管理,主要是用 JVM 中的堆內存來存儲 Java 創建的對象。

系統堆內存的讀寫速度非常快,所以基本不存在讀寫性能瓶頸。但是由于內存成本要比磁盤高,相比磁盤,內存的存儲空間又非常有限。

所以當內存空間被占滿,對象無法回收時,就會導致內存溢出、內存泄露等問題。

磁盤 I/O:磁盤相比內存來說,存儲空間要大很多,但磁盤 I/O 讀寫的速度要比內存慢,雖然目前引入的 SSD 固態硬盤已經有所優化,但仍然無法與內存的讀寫速度相提并論。

 

網絡:網絡對于系統性能來說,也起著至關重要的作用。如果你購買過云服務,一定經歷過,選擇網絡帶寬大小這一環節。

帶寬過低的話,對于傳輸數據比較大,或者是并發量比較大的系統,網絡就很容易成為性能瓶頸。

 

異常:Java 應用中,拋出異常需要構建異常棧,對異常進行捕獲和處理,這個過程非常消耗系統性能。

如果在高并發的情況下引發異常,持續地進行異常處理,那么系統的性能就會明顯地受到影響。

 

數據庫:大部分系統都會用到數據庫,而數據庫的操作往往是涉及到磁盤 I/O 的讀寫。

大量的數據庫讀寫操作,會導致磁盤 I/O 性能瓶頸,進而導致數據庫操作的延遲性。

對于有大量數據庫讀寫操作的系統來說,數據庫的性能優化是整個系統的核心。

鎖競爭:在并發編程中,我們經常會需要多個線程,共享讀寫操作同一個資源,這個時候為了保持數據的原子性(即保證這個共享資源在一個線程寫的時候,不被另一個線程修改),我們就會用到鎖。

鎖的使用可能會帶來上下文切換,從而給系統帶來性能開銷。JDK1.6 之后,Java 為了降低鎖競爭帶來的上下文切換,對 JVM 內部鎖已經做了多次優化,例如,新增了偏向鎖、自旋鎖、輕量級鎖、鎖粗化、鎖消除等。

而如何合理地使用鎖資源,優化鎖資源,就需要你了解更多的操作系統知識、Java 多線程編程基礎,積累項目經驗,并結合實際場景去處理相關問題。

了解了上面這些基本內容,我們可以得到下面幾個指標,來衡量一般系統的性能。

響應時間

響應時間是衡量系統性能的重要指標之一,響應時間越短,性能越好,一般一個接口的響應時間是在毫秒級。

在系統中,我們可以把響應時間自下而上細分為以下幾種:

  • 數據庫響應時間:數據庫操作所消耗的時間,往往是整個請求鏈中最耗時的。
  • 服務端響應時間:服務端包括 Nginx 分發的請求所消耗的時間以及服務端程序執行所消耗的時間。
  • 網絡響應時間:這是網絡傳輸時,網絡硬件需要對傳輸的請求進行解析等操作所消耗的時間。
  • 客戶端響應時間:對于普通的 Web、App 客戶端來說,消耗時間是可以忽略不計的,但如果你的客戶端嵌入了大量的邏輯處理,消耗的時間就有可能變長,從而成為系統的瓶頸。

 

吞吐量

在測試中,我們往往會比較注重系統接口的 TPS(每秒事務處理量),因為 TPS 體現了接口的性能,TPS 越大,性能越好。

在系統中,我們也可以把吞吐量自下而上地分為兩種:

  • 磁盤吞吐量
  • 網絡吞吐量

我們先來看磁盤吞吐量,磁盤性能有兩個關鍵衡量指標:

  • 一種是 IOPS(Input/Output Per Second),即每秒的輸入輸出量(或讀寫次數),這種是指單位時間內系統能處理的 I/O 請求數量,I/O 請求通常為讀或寫數據操作請求,關注的是隨機讀寫性能。適應于隨機讀寫頻繁的應用。
  • 另一種是數據吞吐量,這種是指單位時間內可以成功傳輸的數據量。對于大量順序讀寫頻繁的應用,傳輸大量連續數據。

接下來看網絡吞吐量,這個是指網絡傳輸時沒有幀丟失的情況下,設備能夠接受的最大數據速率。

網絡吞吐量不僅僅跟帶寬有關系,還跟 CPU 的處理能力、網卡、防火墻、外部接口以及 I/O 等緊密關聯。

而吞吐量的大小主要由網卡的處理能力、內部程序算法以及帶寬大小決定。

 

計算機資源分配使用率

通常由 CPU 占用率、內存使用率、磁盤 I/O、網絡 I/O 來表示資源使用率。

這幾個參數好比一個木桶,如果其中任何一塊木板出現短板,任何一項分配不合理,對整個系統性能的影響都是毀滅性的。

 

負載承受能力

當系統壓力上升時,你可以觀察,系統響應時間的上升曲線是否平緩。這項指標能直觀地反饋給你,系統所能承受的負載壓力極限。

例如,當你對系統進行壓測時,系統的響應時間會隨著系統并發數的增加而延長,直到系統無法處理這么多請求,拋出大量錯誤時,就到了極限。

 

作者:航母哥

簡介:目前就職于 58 研發中心擔任資深架構師,負責消息中間件與全鏈路壓測的實施與落地。前阿里巴巴消息中間件資深研發,架構師。擅長 Java 編程,對主流中間件 RocketMQ、Dubbo、ElasticJob、Netty、Sentienl、Mybatis、Mycat 等中間件有深入研究。

編輯:陶家龍

征稿:有投稿、尋求報道意向技術人請聯絡小編微信:gordonlonglong

【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】

 

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2021-10-26 07:25:30

技術優化邏輯

2020-08-24 12:15:51

TomcatUndertow容器

2021-02-02 09:13:11

索引SQL數據庫

2024-03-29 08:56:47

2025-10-27 02:15:00

2021-09-01 07:59:44

HTTPweb瀏覽器

2023-05-06 08:23:36

ChatGPT自然語言技術

2023-03-27 09:50:16

RocketMQ中間件

2022-08-12 10:02:24

數據中心谷歌

2022-09-15 11:56:36

Javalua開發

2020-05-12 20:40:58

SQL慢查詢優化數據庫

2022-02-16 10:35:19

IBM

2021-05-28 13:24:46

無人機人工智能AI

2025-04-15 19:52:04

2019-08-15 09:12:54

Redis監控內存

2021-01-07 07:46:34

MyBatis 數據量JDBC

2024-04-22 00:00:00

RocketMQ優化位點

2024-01-24 09:00:31

SSD訂閱關系內存

2021-04-16 07:04:53

SQLOracle故障
點贊
收藏

51CTO技術棧公眾號

国产精品国产亚洲伊人久久| 国产精品一区二区三区99| 亚洲成人av在线电影| 免费观看亚洲视频| 午夜一级久久| 亚洲综合在线播放| 欧美日韩播放| 日韩视频免费中文字幕| 91高清在线观看视频| 亚洲丶国产丶欧美一区二区三区| 青青青青草视频| 蜜臀a∨国产成人精品| 精品国产一区二区三区久久久久久| 国产精品视频一区二区三区四蜜臂| 欧美激情视频免费观看| 2020国产精品小视频| 久久香蕉国产线看观看网| h精品动漫在线观看| 久久久久久久久久久黄色 | 成人91在线| 久久久视频精品| 中文字幕一区二区三区日韩精品| 中文字幕少妇一区二区三区| 国产欧美一区二区三区精品酒店| 亚洲精品99久久久久| 三级中文字幕在线观看| 国产网站欧美日韩免费精品在线观看| www.色在线| 国产网站欧美日韩免费精品在线观看 | 色噜噜狠狠狠综合曰曰曰88av | 成r视频免费观看在线播放| 久久久久久久久久久黄色| 日韩日韩日韩日韩日韩| 成人精品国产免费网站| 国产又黄又猛视频| 国产精品伦一区二区三级视频| 成人免费在线观看网站| 亚洲国产一区二区视频| 青青草视频在线观看| 91传媒视频在线播放| 亚洲精品天堂| 亚洲性日韩精品一区二区| 国产在线不卡一区二区三区| 欧美国产日韩一区| 久久国产电影| 日韩高清国产精品| 91在线国内视频| 在线视频se| 亚洲第一区第二区| 欧美经典影片视频网站| 国产精品午夜一区二区欲梦| 美女爽到呻吟久久久久| 男人插女人视频在线观看| 国产精品久久久久9999吃药| 蜜臀一区二区三区| 日韩欧美的一区| 久久99久久99精品免观看软件| 欧美激情2020午夜免费观看| 999精品色在线播放| 亚洲一区二区三区欧美| 久久久不卡影院| 91高清在线| 欧美日韩高清区| 亚洲国内自拍| 哪个网站能看毛片| 欧美性受xxxx黑人xyx性爽| 成人在线免费| 91精品国产高清久久久久久91裸体| 日韩精品91亚洲二区在线观看 | 日韩精品久久久久久福利| 日韩免费一级| 国产欧美一区二区三区另类精品| 国产成人av自拍| 黄网站app在线观看下载视频大全官网 | 亚洲免费观看高清完整版在线观看| 欧美大片aaa| 亚洲精品久久视频| 久久综合色占| 日本一道在线观看| 五月天激情小说综合| 欧美午夜在线播放| 不卡视频一区二区| 国产精品原创巨作av| 三上悠亚在线免费观看| 亚洲国产精品99久久| 国产风韵犹存在线视精品| 亚洲一区不卡在线| 天天天综合网| 国产男女免费视频| 欧美日韩免费在线视频| 米奇精品关键词| 一区二区不卡视频| 欧美性猛交xxxxx水多| 综合中文字幕| 日韩中文字幕在线不卡| 丝袜连裤袜欧美激情日韩| 91在线短视频| 国产精品乱人伦一区二区| 天堂中文最新版在线中文| 99在线|亚洲一区二区| 国产福利一区二区三区视频在线| 中文字幕在线看| 久热爱精品视频线路一| 日韩中文字幕亚洲一区二区va在线 | 一区二区三区欧美在线| 欧美国产日韩a欧美在线观看| 日韩另类在线| 91日本在线视频| 国产精品免费观看视频| 在线天堂资源| 欧洲亚洲一区二区三区四区五区| 亚洲另类中文字| 视频精品一区| 国产乱人伦精品一区二区三区| 欧美顶级少妇做爰| 色综合久久一区二区三区| 91精品无人成人www| 亚洲国产日韩欧美在线动漫| 亚洲激情社区| 欧美视频综合| 91精品啪在线观看麻豆免费| 一区在线观看视频| 成年永久一区二区三区免费视频| 国产免费一区二区三区四在线播放| 在线不卡一区二区| 91成人超碰| 最新亚洲人成网站在线观看| 欧洲成人午夜免费大片| 国产精品久久久一本精品 | 91麻豆国产自产在线观看亚洲| 小泽玛利亚视频在线观看| 色99之美女主播在线视频| 国产乱码精品1区2区3区| 丰乳肥臀在线| 亚洲精品一区二区三| 精品成人一区二区| 捆绑调教一区二区三区| 俺来也官网欧美久久精品| 一区二区三区四区五区精品 | 麻豆精品蜜桃视频网站| 91视频欧美| 国产成人三级视频| 亚洲欧美国产精品| 国产+成+人+亚洲欧洲自线| 亚洲国产尤物| 日韩免费高清在线| 98视频在线噜噜噜国产| 亚洲一区二区三区小说| 2023国产精品久久久精品双| 在线观看av黄网站永久| 日韩国产美国| 中文字幕日韩欧美在线视频| 久久久久国产一区二区三区四区| 青青草原在线亚洲| 久草在线在线| 久久av一区二区三区亚洲| 精品国产乱码久久久久久老虎| 久久国产人妖系列| 精品一区二区三区视频在线播放 | 久久夜色精品一区| 日韩高清成人在线| 午夜视频在线免费| 欧美激情一区二区三区在线视频| 精品久久人人做人人爰| 不卡的av在线| 日韩精品丝袜美腿| 可以在线观看的av| 中文有码久久| 久久免费在线观看| 在线精品视频一区二区| 久草这里只有精品视频| 97色成人综合网站| 美女欧美视频在线观看免费 | 伊人网在线免费观看| 成人黄色片视频网站| 中文字幕网av| 北条麻妃在线| 男生女生差差差的视频在线观看| 亚洲嫩草精品久久| 在线中文一区| 精品国产不卡| а√天堂官网中文在线| 成人免费视频91| 日日夜夜精品视频免费| 欧美三日本三级三级在线播放| 精品色蜜蜜精品视频在线观看| 一菊综合网成人综合网| aiai久久| 国产在线播精品第三| 亚洲一区二区三区激情| 最新av网站在线观看| 992kp快乐看片永久免费网址| 亚洲在线观看一区| 国产精品久久久久久久久久久久午夜片| 久久久久久久久网站| 伊人一区二区三区久久精品| 91精品国产色综合久久ai换脸 | 成人做爰视频www| 神马影院午夜我不卡影院| 国产欧美日韩网站|