效能測試相關基礎知識(一)
一.伺服器
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
-- 管理器,用於管理會話SessionLogger
-- 日誌器,用於管理日誌Loader
-- 載入器,和類載入有關,只會開放給Context所使用Pipeline
-- 管道元件,配合Valve實現過濾器功能Valve
-- 閥門元件,配合Pipeline實現過濾器功能Realm
-- 認證授權元件
3)docker知識
4)k8s知識
5)微服務
4.web應用
5.資料庫