1. 程式人生 > 實用技巧 >效能測試相關基礎知識(一)

效能測試相關基礎知識(一)

一.伺服器

1.虛擬技術發展

1).虛擬技術:

  刀片機

2).vm虛擬技術:

  刀片機上虛擬影子機器(kvm)

隨著虛擬技術的出現,加上Linux支援多使用者,Linux作為伺服器開始盛行

缺點:消耗本身物理機核心,虛擬多個時機器會很卡;

   多個物理機虛擬出多個機器時,難管理

3).雲技術:

消耗更小的物理機資源,一臺機器可以虛擬出多個伺服器,雲技術基礎。

降低應用佔用的記憶體資源---->出現了容器技術----->承載更多應用

2.os作業系統

1)linux基本技能

  入門命令,如檔案管理、網路

2)cpu知識

  影響cpu效能的主要因素分兩大塊:主頻 + 架構(主要廠商amd intel),關係到執行指令

  cpu的結構主要由運算器、暫存器、控制器三大塊組成:

  控制器:控制指令、運算(管理者)

  暫存器:儲存指令 、臨時儲存輸出結果 (與運算器、記憶體對接)

  注:cpu快取(暫存器)越大,能快取東西越多,生產越快,因為成本高,不可能無限大。記憶體同樣越大越好,儲存指令,結果資料

  cpu上下文切換,cpu使用率高:切換輸入原料,輸入原料一直變,計算的時候也一直更改,影響計算速度

  運算器:運算(幹活)

3)記憶體知識

  是cpu與其他裝置溝通的橋樑,主要用來臨時存放資料,配合cpu工作,協調cpu的處理速度

注:

斷電,記憶體資料就沒有了;

記憶體下面與磁碟對接:執行速度小於記憶體,記憶體執行速度小於暫存器。磁碟是固化儲存

4)JVM知識

Java虛擬機器:

  • 是一個虛構出來的執行Java程式的執行時環境,是通過在實際的計算機上模擬模擬各種計算機功能的實現。
  • 具有完善的硬體結構(如處理器,堆,棧,暫存器等),還有相應的指令系統,使用JVM就是使Java程式支援與作業系統無關。理論上,在任何作業系統上,只要有對應的JVM,即可執行Java程式

JVM的記憶體可分為三個區:堆、棧、方法區

  • 堆區:存放由new建立的物件和陣列等引用資料型別,在堆中分配的記憶體,由Java虛擬機器GC來管理。
  • 棧區:LIFO,存放基本型別和物件的引用
  • 方法區:又叫靜態區,跟堆一樣,被所有的執行緒共享。包含所有的class和static變數

參考連結:https://blog.csdn.net/sunboylife/article/details/89400391

=============================-==========

安卓虛擬機器(ART):在安卓系統上執行安卓程式的虛擬機器。

  ART是在JVM基礎上專門為Android移動裝置定製的一套虛擬方案

========================================

3.web服務

1)Apache知識

  LAMP

2)Tomcat知識

  部署Java程式;

  Tomcat 的 conf 目錄中的 server.xml 是其最重要的配置檔案:

  Tomcat 中最頂層的是 server,有且僅有一個,代表整個伺服器,一個 server 可以包含至少一個 service,每個 service 可以包含多個 connector (如,http,https)和一個 container;

  server埠:監聽伺服器關閉請求;其他埠意義,參考連線:https://blog.csdn.net/weixin_41180516/article/details/84404776

效能調優要關注:   tomcat預設連線池的最大連線數2000;   1. maxThreads: 最大併發連線數   netstat -anp |grep 8080 | wc -l 檢視8080埠目前有多少連線
  • Server表示伺服器,提供了一種優雅的方式來啟動和停止整個系統,不必單獨啟停聯結器和容器
  • Service表示服務,Server可以執行多個服務。比如一個Tomcat裡面可執行訂單服務、支付服務、使用者服務等等
  • 每個Service可包含多個Connector一個Container。因為每個服務允許同時支援多種協議,但是每種協議最終執行的Servlet卻是相同的
  • Connector表示聯結器,比如一個服務可以同時支援AJP協議、Http協議和Https協議,每種協議可使用一種聯結器來支援
  • Container表示容器,可以看做Servlet容器
    • Engine -- 引擎
    • Host -- 主機
    • Context -- 上下文
    • Wrapper -- 包裝器
  • Service服務之下還有各種支撐元件,下面簡單羅列一下這些元件
    • Manager -- 管理器,用於管理會話Session
    • Logger -- 日誌器,用於管理日誌
    • Loader -- 載入器,和類載入有關,只會開放給Context所使用
    • Pipeline -- 管道元件,配合Valve實現過濾器功能
    • Valve -- 閥門元件,配合Pipeline實現過濾器功能
    • Realm -- 認證授權元件
  參考連結:https://www.jianshu.com/u/794bce41b31b   2.Tomcat中的JVM配置:   預設情況下,最大能分配物理資源(記憶體)的一半

3)docker知識

4)k8s知識

5)微服務

4.web應用

5.資料庫