1、計算機相關的知識。
硬體:一般來說,和效能有關的主要有以下幾個:
cpu:一般來說,cpu的忙碌程度就反應了當前系統中所執行的任務的多少和執行速度的快慢。
記憶體:記憶體分為兩種:物理記憶體和虛擬記憶體。
物理記憶體:記憶體條所提供的,讀寫速度快。
虛擬記憶體:是從磁碟中劃分出來的,讀寫速度慢。
系統原則:物理記憶體足夠是不會去使用虛擬記憶體的。
針對記憶體,當前最大的問題一般都是oom(out of memory)。
不是所有的oom都是由記憶體洩漏引起。
記憶體洩漏:是指應用沒有及時(沒有)釋放所占用的內容,導致可用記憶體越來越少。
磁碟:持久化儲存的。
一般只需要關心一下磁碟本身的物理效能即可。
一般通過一些通用的工具可以進行檢測。
網絡卡:限制的是本機和其他機器進行互動的網路頻寬的最大值。
軟體:一般來說,軟體分為作業系統、系統軟體、應用軟體。
作業系統:os,常見的就是windows和linux
伺服器一般都採用linux。
系統軟體:一般都是由作業系統提供,用於系統管理等。
應用軟體:面向使用者的軟體,或者說是非系統必須的。
2、計算機網路:
計算機網路通訊是和兩個模型有關。
osi模型:開放式系統互聯模型。
是乙個理論模型、參考模型,提出了網路通訊的設計模型、原理等。
但是它本身沒有給出具體的解決方案。
將網路分為七層:定義了網路間通訊的基礎方案:
層層封包:從上往下(傳送)
層層解包:從下往上(接收)
應用層:
表示層:
會話層:
傳輸層:負責資料的傳輸
網路層:設定ip、建立ip位址和mac位址的對映。
資料鏈路層:建立物理裝置和mac位址的對映關係的。
物理層:不是指計算機,而是指網路介面卡(即網絡卡)。
tcp/ip模型:tcp/ip協議簇。
本質上就是根據osi模型實現了大量的協議,來完成每一層的資料的封包和解包工作。
傳輸層:tcp、udp
tcp:面向連線的,可控的,有序的。
udp:面向無連線的,不可控,無序。
tcp:三次握手,用於連線的建立。
1a:syn、ack
2b:syn、ack+1
3a:syn、fin
tcp:四次分手、用於連線的斷開。
1a:syn、ack、fin
2b:fin、ack+1
3b:syn、ack、fin
4a:fin、ack+1
網路層:ip協議、arp、rarp協議等
網路介面層(資料鏈路層+物理層):
伺服器最大的作用其實是隔離使用者和資料。
在web應用中,伺服器又分為:
web伺服器
應用伺服器:又叫中介軟體。
ps:現在很多公司都會加入redis,實現伺服器端的快取讀寫,主要是為了提公升效能。
三層架構的設計本身就是支援水平擴容,即支援分布式部署和擴容的。
客戶端:
客戶端是用來和使用者進行互動的。
客戶端是用來接收和處理使用者的輸入的。
按照程式的設計,將使用者輸入(文字、動作)封裝為資料報傳送給伺服器。
接收伺服器的響應,然後解析響應並且展示結果給使用者。
瀏覽器作為b/s應用的客戶端而言,效能主要是由兩個要素決定:
瀏覽器的核心:
ie核心:ie等
webkit:chrome、safari等
gecko:firefox瀏覽器
js引擎:
v8查克拉
ps:影響效能的同時,也和相容性測試有關。
伺服器:在web應用中,伺服器分為兩種:web伺服器、應用伺服器。
web伺服器:
面向使用者的、面向客戶端。
接收客戶端的請求。
處理客戶端的請求**發、呼叫的方式)。
返回處理的結果給客戶端。
常見的web伺服器產品有:
應用伺服器:
不是屬於必須的部分,是從web伺服器中獨立處理的一部分。
是用來模組化處理一些複雜的業務邏輯、並且提供介面給web伺服器。
是面向資料庫的、也不會直接和客戶端進行通訊。
常見的應用伺服器有:
iistomcat
jboss
weblogic
websphere
主流組合:nginx+tomcat
資料庫伺服器:
用於儲存資料的。
目前主流的資料庫有兩種:
關係型資料庫rdbms:
oracle
mysql
ms sql
postgresql
db2非關係型資料庫(nosql):not only sql
mongodb
集群:集群的目的是為了實現:
負載均衡:
通過技術手段,使得上游來的負載(請求)按照特定的方式分配給下游的伺服器。
常見的基礎的負載均衡的策略:
輪訓(輪詢):
實時、動態分配:一般都是要由前置機來對後端的伺服器進行效能監控,根據設定的效能指標來動態分配請求。
基於ip分配:負載均衡使用者。
故障轉移:通過備份的方式來實現故障轉移。
雲計算:
以前對於雲計算是從技術角度來討論。
現在對於雲計算更多的是從商業模式來討論。
saas:軟體即服務
iaas:設施即服務
paas:平台即服務
效能測試基礎 效能測試基礎指南
企業對於效能測試工程師的要求 要求熟練掌握至少一種效能測試工具,並且能夠實現效能測試指令碼的開發。能夠獲取 分析 提煉效能需求。能夠根據效能需求去進行測試場景的設計和實現。能夠根據效能的需要進行必要的監控。能夠根據效能測試結果 集合監控 伺服器日誌等資料分析 定位效能瓶頸 能夠提出調優建議。能夠根據...
效能測試基礎
效能測試 效能測試主要是通過大量的併發請求,和資料處理,使系統在高併發的情況下衡量乙個系統的強壯性,可靠性 效能測試的步驟 1 首先了解效能測試的需求 第一點,在需求明確的情況下,直接按照需求進行測試 一般在正規的公司,流程完善,產品和架構設計人員都是可以給得出比較合理的乙個效能測試指標 第二點 在...
效能測試基礎
一 軟體效能描述 軟體效能 指軟體執行過程中的響應時間與系統資源消耗情況是否滿足使用者需求 二 效能測試相關術語 網路傳輸時間 應用伺服器處理時間 資料庫伺服器處理時間 2 併發使用者數 同一時刻與伺服器進行資料互動的所有使用者數量 如何確定併發使用者數 參考其他同類產品 分析歷史資料 試上線執行 ...