国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

性能測試監(jiān)控指標及分析調優(yōu)指南

這篇具有很好參考價值的文章主要介紹了性能測試監(jiān)控指標及分析調優(yōu)指南。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

性能測試監(jiān)控指標及分析調優(yōu)指南

?文章來源地址http://www.zghlxwxcb.cn/news/detail-589846.html

一、哪些因素會成為系統(tǒng)的瓶頸

?

  • CPU:如果存在大量的計算,他們會長時間不間斷的占用CPU資源,導致其他資源無法爭奪到CPU而響應緩慢,從而帶來系統(tǒng)性能問題,例如頻繁的FullGC,以及多線程造成的上下文頻繁的切換,都會導致CPU繁忙,一般情況下CPU使用率<75%比較合適。

    ?

  • 內存:Java內存一般是通過jvm內存進行分配的,主要是用jvm中堆內存來存儲Java創(chuàng)建的對象。內存的讀寫速度非常快,但是內存空間又是有限的,當內存空間被占滿,對象無法回收時,就會導致內存溢出或內存泄漏。

    ?

  • 磁盤I/O:磁盤的存儲空間要比內存存儲空間大很多,但是磁盤的讀寫速度比內存慢,雖然現(xiàn)在引入SSD固態(tài)硬盤,但是還是無法跟內存速度相比。

    ?

  • 網絡:帶寬的大小,會對傳輸數據有很大影響,當并發(fā)量增加時,網絡很容易就會成為瓶頸。

    ?

  • 異常:Java程序,拋出異常,要對異常進行捕獲,這個過程要消耗性能,如果在高并發(fā)的情況下,持續(xù)進行異常處理,系統(tǒng)的性能會受影響。

    ?

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

?

當在并發(fā)編程的時候,經常會用多線程操作同一個資源,這個時候為了保證數據的原子性,就要使用到鎖,鎖的使用會帶來上下文切換,從而帶來性能開銷,在JDK1.6之后新增了偏向鎖、自旋鎖、輕量級鎖、鎖粗化、鎖消除。

?

二、哪些指標做為衡量系統(tǒng)的性能

?

1.RT響應時間

?

  • 數據庫響應時間,即數據庫操作的時間

  • 服務端響應時間,服務端包括Nginx分發(fā)的請求所消耗的時間及服務端程序執(zhí)行所消耗的時間。

  • 網絡響應時間,網絡傳輸,網絡硬件需要對傳輸的請求進行解析所消耗的時間

  • 客戶端響應時間,一般Web、App客戶端,消耗時間可以忽略不計,但是如果客戶端存在大量的邏輯處理,消耗的時間有能能就會變長。

?

2.TPS吞吐量

?

  • 磁盤吞吐量:IOPS(Input/Output Per Second)每秒的輸入輸出量,這種是單位時間內系統(tǒng)能處理的I/O請求數量,I/O請求通常為讀或寫數據操作請求,關注隨機讀寫性能,適用于隨機讀寫頻繁的應用,如小文件存儲,郵件服務器。數據吞吐量,這種是單位時間可以傳輸的數據量,對于大量順序讀寫頻繁的應用,傳輸大量連續(xù)數據,例如視頻編輯。

?

  • 網絡吞吐量:指網絡傳輸時沒有丟幀的情況下,設備能夠接受的最大數據速率。網絡吞吐量不僅跟帶寬有關系,還跟CPU處理能力、網卡、防火墻、以及I/O等緊密聯(lián)系,吞吐量的大小由網卡的處理能力、內部程序算法以及帶寬大小決定。

?

3.資源使用率

?

  • CPU使用率,首先可以先了解CPU的基本信息,包括物理CPU的個數、單個CPU的核數,然后可以通過命令查看使用率,vmstat、mpstat、top

  • 內存使用率,free -m、vmstat、top

  • 磁盤I/O, iostat、 iotop

  • 網絡I/O,netstat、ifconfig、tcpstat

?

三、性能測試注意的問題

?

我們在做性能測試的時候,系統(tǒng)的運行會越來越快,后面的訪問速度比我們第一次訪問的速度快了好幾倍,這是因為Java語言編譯的順序是,.java文件先編譯為.class文件,然后通過解釋器將.class的字節(jié)碼轉換成本地機器碼后,才能運行。

?

為了節(jié)約內存和執(zhí)行效率,代碼最初被執(zhí)行時,解釋器會率先解釋執(zhí)行這段代碼。隨著代碼被執(zhí)行的次數增多,虛擬機發(fā)現(xiàn)某個方法或代碼運行的特別頻繁,就被認定為熱點代碼(Hot Spot Code)。

?

為了提高熱點代碼的執(zhí)行效率,在運行時虛擬機將會通過即時編譯器(JIT)把這些代碼編譯成為本地平臺相關的機器碼,然后儲存在內存中,之后每次運行代碼時,直接從內存中獲取。這樣就會導致第一次系統(tǒng)運行慢,后面訪問的速度快幾倍。

?

在做性能測試的時候,每次測試處理的數據集都是一樣的,但是結果卻有差異,這是因為測試時,伴隨著很多不穩(wěn)定因素,比如機器其他進程的影響、網絡波動以及每個階段JVM垃圾回收的不同等。我們可以通過多次測試,將測試結果求平均,只要保證平均值在合理范圍之內,并且波動不是很大,這種情況,性能測試就算通過。

?

四、定位性能問題的時候,可以使用自下而上的策略分析排查

?

當我們進行壓測之后,我們會輸出一份性能測試報告,其中包括,RT、TPS、TP99,被壓服務器的CPU、內存、I/O,以及JVM的GC頻率。通過這些指標可以發(fā)現(xiàn)性能瓶頸,我們可以采用自下而上的方式進行分析。

?

1. 首先從操作系統(tǒng)層面,查看系統(tǒng)的CPU、內存、I/O、網絡的使用率是否異常,再通過命令查找異常日志,最后通過日志分析,找到導致瓶頸的問原因。

?

2. 還可以從Java應用的JVM層面,查看JVM的垃圾回收頻率以及內存分配情況是否存在異常,分析垃圾回收日志,找到導致瓶頸的原因。

?

3. 如果系統(tǒng)和JVM層面都沒有出現(xiàn)異常情況,然后可以從應用服務業(yè)務層查看是否存在性能瓶頸,例如,Java編程問題,讀寫數據庫瓶頸等。

?

五、優(yōu)化性能問題的時候,可以使用自上而下的策略進行優(yōu)化

?

整體的調優(yōu)順序,我們可以從業(yè)務調優(yōu)到編程調優(yōu),最后再到系統(tǒng)調優(yōu)。

?

1.應用層調優(yōu)

?

首先是優(yōu)化代碼,代碼問題往往會因為消耗系統(tǒng)資源而暴漏出來,例如代碼導致內存溢出,使JVM內存用完,而發(fā)生頻繁的FullGC,導致CPU偏高。

?

其次是優(yōu)化設計,主要是優(yōu)化業(yè)務層和中間件層代碼,例如可以采用代理模式,放在頻繁調用的創(chuàng)建對象的場景里,共享一個創(chuàng)建對象,減少創(chuàng)建對象的消耗。

?

再次是優(yōu)化算法,選擇合適的算法降低時間復雜度。

?

2.中間件調優(yōu):MySQL調優(yōu)

?

1)表結構與索引優(yōu)化

?

主要是對數據庫設計、表結構設計以及索引設置維度進行的優(yōu)化,設計表結構的時候,考慮數據庫的水平與垂直的拓展能力,提前規(guī)劃好將來數據量、讀寫量的增長,規(guī)劃好分庫分表方案。對字段選擇合適的數據類型,優(yōu)先選用較小的數據結構。

?

2)SQL語句優(yōu)化

?

主要是對SQL語句進行的優(yōu)化,使用explain來查看執(zhí)行計劃,來查看是否使用了索引,使用了哪些索引。也可以使用Profile命令分析語句執(zhí)行過程中各個分步的耗時。

?

3)MySQL參數優(yōu)化

?

主要是對MySQL服務的配置進行優(yōu)化,例如連接數的管理,對索引緩存、查詢緩存、排序緩存等各種緩存大小進行優(yōu)化

?

4)硬件及系統(tǒng)配置

?

對硬件設備和操作系統(tǒng)設置進行優(yōu)化,例如調整操作系統(tǒng)參數、禁用swap、增加內存、升級固態(tài)硬盤。

?

3.系統(tǒng)調優(yōu)

?

首先是操作系統(tǒng)調優(yōu),Linux操作的內核參數設置可以進行調優(yōu),已達到提供高性能的目的。

?

其次,JVM調優(yōu),設置合理的JVM內存空間,以及垃圾回收算法來提高性能,例如,如果業(yè)務邏輯會創(chuàng)建大對象,我們就可以設置,將大的對象直接放到老年代中,這樣可以減少年輕代頻發(fā)發(fā)生YongGC,減少CPU的占用時間。

?

4.調優(yōu)的策略

?

首先是時間換取空間,有的時候系統(tǒng)對查詢速度要求不高,對存儲空間要求較高,這個時候我們可以考慮用時間換取空間。

?

其次是空間換取時間,用存儲空間提升訪問速度,典型的就是MySQL的分庫分表策略,MySQL表單數據存儲千萬以上的時候,讀寫性能就會下降,這個時候我們可以將數據進行拆分,以達到查詢的時候,每個表的數據是少量的,以達到提升性能的目的。

?

5.兜底策略

?

系統(tǒng)調優(yōu)后,仍然還會存在性能問題,這個時候我們需要有兜底策略, 首先是限流,對系統(tǒng)的入口設置最大訪問限制,同時采取斷熔措施,返回沒有成功的請求。其次是橫向擴容,當訪問量超過某一個閾值時,系統(tǒng)可以自動橫向增加服務。

?

作者丨牛金亮

到了這里,關于性能測試監(jiān)控指標及分析調優(yōu)指南的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 性能測試 —— Tomcat監(jiān)控與調優(yōu):status頁監(jiān)控

    性能測試 —— Tomcat監(jiān)控與調優(yōu):status頁監(jiān)控

    Tomcat服務器是一個免費的開放源代碼的Web 應用服務器,Tomcat是Apache 軟件基金會(Apache Software Foundation)Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發(fā)而成。 Tomcat是一個輕量級應用服務器,在中小型系統(tǒng)和并發(fā)訪問用戶的場合下被普遍使用,是開發(fā)和

    2024年02月07日
    瀏覽(36)
  • 數據庫監(jiān)控與調優(yōu)【六】—— SQL性能分析

    TIPS 本文基于MySQL 8.0 EXPLAIN分析SQL它不香嗎?如何更加細致分析SQL的性能呢?深入SQL內部分析性能! SHOW PROFILE:簡單、方便,已廢棄 INFORMATION_SCHEMA.PROFILING:和SHOW PROFILE本質是一樣的,已廢棄 PERFORMANCE_SCHEMA:MYSQL建議的方式,未來之光,但目前來說使用不夠方便 先要做一定的

    2024年02月11日
    瀏覽(38)
  • 如何監(jiān)測和優(yōu)化阿里云服務器的性能?有哪些性能分析工具和指標?

    如何監(jiān)測和優(yōu)化阿里云服務器的性能?有哪些性能分析工具和指標?

    如何監(jiān)測和優(yōu)化阿里云服務器的性能?有哪些性能分析工具和指標? 阿里云服務器性能監(jiān)測與優(yōu)化是云計算服務中一個非常重要的環(huán)節(jié)。為了確保服務器穩(wěn)定、高效地運行,我們需要對其性能進行監(jiān)測,并在監(jiān)測的基礎上進行優(yōu)化。本文將為您介紹如何監(jiān)測和優(yōu)化阿里云服務

    2024年02月11日
    瀏覽(27)
  • 【kafka性能測試腳本詳解、性能測試、性能分析與性能調優(yōu)】

    【kafka性能測試腳本詳解、性能測試、性能分析與性能調優(yōu)】

    Apache Kafka 官方提供了兩個客戶端性能測試腳本,它們的存放位置如下: 生產者性能測試腳本:$KAFKA_HOME/bin/kafka-producer-perf-test.sh 消費者性能測試腳本:$KAFKA_HOME/bin/kafka-consumer-perf-test.sh kafka-producer-perf-test.sh 支持測試的性能指標包括:吞吐量(throughput)、最大時延(max-latenc

    2024年02月04日
    瀏覽(24)
  • 【壓測指南|壓力測試核心性能指標及行業(yè)標準】

    【壓測指南|壓力測試核心性能指標及行業(yè)標準】

    在做壓力測試時,新手測試人員常常在看報告時倍感壓力:這么多性能測試指標分別是什么意思,應該達到什么標準? 本文將結合實際壓測報告,幫助您快速理解壓測時的主要性能指標,了解如何解讀該指標以及通常情況下應該達到的標準。 性能測試過程是模擬用戶真實視

    2024年02月15日
    瀏覽(25)
  • redis性能測試及瓶頸分析調優(yōu)

    redis性能測試及瓶頸分析調優(yōu)

    一、簡介 Redis(Remote Dictionary Server ),即遠程字典服務,是一個開源的使用ANSI C語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫,并提供多種語言的API mysql與redis的區(qū)別: 類型上mysql是關系型數據庫,而redis是緩存數據庫; 作用上mysql用于持久化的存儲數

    2024年02月06日
    瀏覽(25)
  • Elasticsearch:集群關鍵指標及調優(yōu)指南

    CPU使用率是指在一段時間內CPU執(zhí)行程序的百分比,它是衡量系統(tǒng)資源利用率的一種指標。 1.1 詳細說明: 在Elasticsearch中,高的CPU使用率通常意味著節(jié)點正在執(zhí)行大量的計算任務,這可能是因為索引和搜索操作的負載較大,也可能是因為節(jié)點正在進行數據復制和分片重新平衡等

    2024年02月09日
    瀏覽(17)
  • 性能分析與調優(yōu): Linux 使用 iperf3 進行TCP網絡吞吐量測試

    性能分析與調優(yōu): Linux 使用 iperf3 進行TCP網絡吞吐量測試

    目錄 一、實驗 1.環(huán)境 2.TCP網絡吞吐量的微觀基準測試 二、問題 1.iperf參數有哪些 2.iperf如何二進制安裝 (1)主機 表1-1 主機 主機 架構 組件 IP 備注 prometheus 監(jiān)測 系統(tǒng) prometheus、node_exporter ?192.168.204.18 grafana 監(jiān)測GUI grafana 192.168.204.19 agent? 監(jiān)測 主機 node_exporter 192.168.204.20 (1)

    2024年02月03日
    瀏覽(39)
  • Elasticsearch集群關鍵指標及調優(yōu)指南【全網最全】

    CPU使用率是指在一段時間內CPU執(zhí)行程序的百分比,它是衡量系統(tǒng)資源利用率的一種指標。 1.1 詳細說明: 在Elasticsearch中,高的CPU使用率通常意味著節(jié)點正在執(zhí)行大量的計算任務,這可能是因為索引和搜索操作的負載較大,也可能是因為節(jié)點正在進行數據復制和分片重新平衡等

    2023年04月18日
    瀏覽(42)
  • 性能優(yōu)化 - 前端性能監(jiān)控和性能指標計算方式

    性能優(yōu)化 - 前端性能監(jiān)控和性能指標計算方式

    利用LightHouse進行合理的頁面性能優(yōu)化 這篇文章主要講解了如何使用 Lighthouse 。 這里把相關圖片再展示一下: 我們可以看到 Lighthouse 計算的時候,會根據這幾個維度的指標來計算總分。那么本篇文章,就主要講解下前端性能監(jiān)控相關的重要指標含義和計算方式。 在介紹指標

    2024年02月15日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包