Linux服務器監控性能測試
服務器性能測試范圍:
測試目的: 發現服務器的性能瓶頸.配置的不同能夠承載的最大任務數不同,能夠承載的壓力也不同.
測試范圍及性能指標:
-
- CPU:車間的工人(負責計算)
- 內存:車間里的臨時存儲的倉庫(數據臨時存儲)
- 磁盤:車間里真正的倉庫(持久化數據)
- 網絡:車間的道路,傳送帶(傳送數據)
- 版本:車間的裝修(版本不同影響不同常用6.5,6.8)
遇到測試與生產環境配置不同怎么辦?
通過多次壓測來計算性能損耗
性能損耗的計算方式:
-
- 1. 多次壓測后的性能預估(性能損耗指標:相同腳本,相同場景,相同的並發用戶數,等的基礎上增加服務器)
進程與線程
定義與區別:
-
- 1. 進程是具有一定獨立功能的程序關於某個數據集合上的一次運行活動,是系統進行資源分配和調度的一個獨立單位(進程是可以獨立運行的)
- 線程是進程的一個實體,是cpu調度和分派的基本單位,它是比進程更小的能夠獨立運行的基本單位,線程自己基本上不擁有系統資源,只擁有一點在運行中比不可少的資源.一個線程可以創建和撤銷另一個線程
- 一個線程只能屬於一個進程,而一個進程可以擁有多個線程
- 線程是進程工作的最小單位
- 一個進程會分配一個地址空間,進程與進程之間不共享地址空間,即不共享內存
- 同一個進程下的不同的多個線程,共享父進程的地址空間
- 線程在執行過程中,需要協作同步.不同進程的線程間要利用消息通訊的辦法實現同步
- 線程作為調度和分配的基本單位,進程作為擁有資源的基本單位
Linux幫助命令
man命令
-
- 1. linux下的函數手冊命令,可以查看所有命令的使用方法(man+命令)如:man ls 即會出現ls命令使用的所有方式.查看完畢是用q退出
top命令
-
- 1. top: 能夠實時監控系統的運行狀態,並且可以按照cpu及內存等進行排序.語法:
top –hv | -bcHiOSs –d secs –n max –u|U user –p pid(s) –o field –w [cols]
top參數
-
- –h:幫助
- –p:監控指定進程.當監控多個進程時,進程ID以逗號分隔. 這個選項只能在命令行下使用(如:top –p 1,2)
top任務區命令(所謂的任務去就是執行完top回車之后)
- M: 按內存使用率排序
- P: 按CPU使用率排序
- z:彩色/黑白顯示
top中的load average
- top中的load average: 系統的運行隊列的平均利用率,也可以認為是可運行進程的平均數.三個值分別表示在最后的1分鍾, 5分鍾, 15分鍾負載值.
- 在單核cpu中load average的值為1時表示滿負荷狀態.同理在多核cpu中滿負載的load average的值為1*cpu核數
top結果說明:
%cpu: us:用戶, sy:系統, id 空閑
kiBMem: total:內存 sued :已使用內存
kiB Swap: 虛擬內存
vmstat命令:
- 1. 可以監控操作系統的進程狀態, 內存, 虛擬內存, 磁盤IO, CPU的信息.語法:
vmstat [-a] [-n] [-S unit] [delay [count]]
vmstat參數:
-
- –S : 使用指定單位顯示. 參數有k, K, m, M. 分別代表1000, 1024, 1000000, 1048576字節(byte). 默認單位為K(1024 bytes)
- vmstat 1 1 動態監控(第一個參數:時間間隔, 第二個參數:顯示次數, 單位K)
free命令:
- 1. 能夠監控系統的內存使用狀態. 其中,total:總計物理內存的大小; used: 已使用多大; free : 可用多少; shared:多個進程共享的內存總額; buffers/cached:磁盤緩存的大小 (free –h 顯示單位了)