成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

學習性能優化,如何模擬各種故障場景?

開發 開發工具
本文向大家介紹了一個常用的壓力測試工具 stress,它可以模擬 CPU、內存、磁盤、IO 等操作,方便我們學習性能優化命令。最后獻上 stress 工具的參數設置圖,大家可以收藏起來,方便后面使用的時候對照。

大家好,我是樹哥!

性能優化這個專題,是每個想成為架構師的小伙伴必須學習的知識。在學習性能優化的過程中,我們要學會各種 Linux 命令和工具去檢測服務器的 CPU、內存等資源。很多情況下,我們的 CPU、內存資源都是很平穩的,不利于我們學習這些性能檢測命令。

今天就介紹一個 Linux 系統壓力測試工具 stress,它可以模擬各種系統高負載的場景,方便我們進行性能優化學習!

什么是 stress?

stress 是一個 Linux 系統壓力測試工具,主要用來模擬系統系統高負載的場景,其可以對 CPU、內存、IO 及磁盤進行壓力測試。

安裝指南

在 CentOS8 系統中安裝 stress 可以用 rpm 方式安裝,只需執行如下命令就可以成功完成安裝。

// 獲取安裝包
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/s/stress-1.0.4-16.el7.x86_64.rpm
// 安裝 stress 工具
rpm -ivh stress-1.0.4-16.el7.x86_64.rpm

安裝完成后可以運行 stress --version 查看安裝版本。

[root@iZwz92ezhi90syoqbgjgn1Z ~]# stress --version
stress 1.0.4

如果可以正常運行,說明 stress 安裝成功了。

使用指南

使用 stress 命令非常簡單,就是 stress 命令加上各種參數。這里我舉幾個例子,簡單介紹下 stress 命令常見的幾種使用方法。

模擬 CPU 消耗

運行下面的命令,創建 4 個消耗 CPU 資源的進程,并持續 600 秒。

stress -c 4 --timeout 600

隨后我們使用 watch -d uptime 命令持續監控系統的平均負載情況。

21:55:10 up 7 min,  2 users,  load average: 4.63, 1.32, 0.34
21:56:16 up 8 min, 2 users, load average: 6.63, 2.32, 0.84

可以看到隨著時間的推移,系統的平均負載越來越高,這說明我們的 stress 命令起效果了。

模擬內存消耗

運行下面的命令,創建 2 個消耗內存的進程,每個進程占用 200M 內存。

stress -m 2 --vm-bytes 200M

隨后我們使用 pidstat -r | grep stress 命令查看內存的占用情況。

[root@iZwz92ezhi90syoqbgjgn1Z ~]# pidstat -r | grep stress
// -r 表示查看內存使用情況
// VSZ 表示虛擬地址大小,虛擬內存的使用 KB
22:00:18 UID PID minflt/s majflt/s VSZ RSS %MEM Command
22:00:18 0 1645 1249.67 0.00 212780 22368 0.29 stress
22:00:18 0 1646 1267.04 0.00 212780 79928 1.04 stress

可以看到 VSZ 這一列的數值為 212780KB,剛好就是 200MB 左右。

模擬磁盤寫入

運行下面命令,可以模擬兩個進程往當前目錄寫入固定大小的臨時文件,臨時文件大小默認為 1G。

stress -d 2

隨后我們用 pidstat 監控磁盤,可以看到 kB_wr/s 列的數值較大,表示兩個 stress 進程在做大量的寫入操作。

[root@iZwz92ezhi90syoqbgjgn1Z ~]# pidstat -d | grep stress
22:07:41 UID PID kB_rd/s kB_wr/s kB_ccwr/s iodelay Command
22:07:41 0 1730 0.00 15369.44 13980.27 849 stress
22:07:41 0 1731 0.00 15941.86 13876.48 976 stress

模擬大量 IO 操作

運行下面命令,可以模擬 4 個進程執行大量的 sync () 操作。

stress -i 4 --timeout 600

使用 top 可以看到 stress 的 4 個進程占用了大量的 CPU 資源。

PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
1863 root 20 0 7976 96 0 R 100.0 0.0 0:12.75 stress
1864 root 20 0 7976 96 0 R 100.0 0.0 0:12.78 stress
1865 root 20 0 7976 96 0 R 100.0 0.0 0:12.76 stress
1862 root 20 0 7976 96 0 R 99.7 0.0 0:12.77 stress

使用 pidstat 查看進程,正常情況下可以看到 stress 的 4 個進程產生了大量的 %wait 時間。但由于我做測試的服務器用的是 SSD 盤,因此并沒有產生大量的 CPU wait 時間。

[root@iZwz92ezhi90syoqbgjgn1Z ~]# pidstat -u 5 1 
Linux 4.18.0-348.7.1.el8_5.x86_64 (iZwz92ezhi90syoqbgjgn1Z) 22/08/22 _x86_64_ (4 CPU)
22:22:41 UID PID %usr %system %guest %wait %CPU CPU Command
22:22:46 0 1862 0.20 99.60 0.00 0.20 99.80 1 stress
22:22:46 0 1863 0.20 99.80 0.00 0.20 100.00 0 stress
22:22:46 0 1864 0.20 99.60 0.00 0.20 99.80 2 stress
22:22:46 0 1865 0.20 99.80 0.00 0.00 100.00 3 stress

要獲取 stress 工具的更多用法,直接輸入 stress --help 就可以獲取詳細信息了,如下所示。

-c, --cpu N            產生 N 個進程,每個進程都反復不停的計算隨機數的平方根
-i, --io N 產生 N 個進程,每個進程反復調用 sync () 將內存上的內容寫到硬盤上
-m, --vm N 產生 N 個進程,每個進程不斷分配和釋放內存
--vm-bytes B 指定分配內存的大小
--vm-stride B 不斷的給部分內存賦值,讓 COW (Copy On Write) 發生
--vm-hang N 指示每個消耗內存的進程在分配到內存后轉入睡眠狀態 N 秒,然后釋放內存,一直重復執行這個過程
--vm-keep 一直占用內存,區別于不斷的釋放和重新分配 (默認是不斷釋放并重新分配內存)
-d, --hadd N 產生 N 個不斷執行 write 和 unlink 函數的進程 (創建文件,寫入內容,刪除文件)
--hadd-bytes B 指定文件大小
-t, --timeout N 在 N 秒后結束程序
--backoff N 等待 N 微妙后開始運行
-q, --quiet 程序在運行的過程中不輸出信息
-n, --dry-run 輸出程序會做什么而并不實際執行相關的操作
--version 顯示版本號
-v, --verbose 顯示詳細的信息

總結

本文向大家介紹了一個常用的壓力測試工具 stress,它可以模擬 CPU、內存、磁盤、IO 等操作,方便我們學習性能優化命令。最后獻上 stress 工具的參數設置圖,大家可以收藏起來,方便后面使用的時候對照。

圖片

責任編輯:武曉燕 來源: 樹哥聊編程
相關推薦

2016-10-25 13:46:25

深度學習機器學習性能提升

2020-07-14 08:21:03

機器學習技術人工智能

2023-07-10 16:18:18

性能優化開發

2018-08-21 09:49:02

GPU云服務器深度學習

2018-04-26 08:35:40

云服務器深度學習GPU

2018-06-07 08:48:16

性能測試敏捷開發持續集成

2016-12-06 09:06:08

深度學習算法性能

2018-11-26 10:23:51

網絡故障路由器

2021-01-13 05:27:02

服務器性能高并發

2018-11-30 12:48:36

SDS故障硬件

2021-12-28 17:57:45

ESNoSQL數據庫

2020-10-16 09:00:12

前端開發技術

2023-09-06 08:14:34

性能優化模式

2023-10-18 10:38:53

API

2020-10-16 10:40:39

前端性能可視化

2024-03-12 09:47:10

Redis數據庫

2009-06-19 10:12:09

學習Java

2011-03-01 17:26:48

WLAN優化

2022-01-09 16:45:36

前端性能優化編程

2017-11-23 10:38:01

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区二区三区桃乃木香奈 | 亚洲视频在线一区 | 国产中文在线 | 亚洲国产18 | 日韩中文字幕在线免费 | 中文字幕在线视频免费视频 | 国产乱码久久久久久一区二区 | 人成精品 | 天天摸天天干 | 日日操操 | 中国av在线免费观看 | 免费看日韩视频 | 午夜免费视频 | 久久综合一区 | 欧美精品一区三区 | 亚洲黄色视屏 | 毛片毛片毛片毛片 | 欧美一区二区免费视频 | 日韩在线观看中文字幕 | 在线中文字幕亚洲 | 国产中文一区二区三区 | 久久国产精品精品国产色婷婷 | 日韩在线观看中文字幕 | 日韩在线观看网站 | 国产精品美女久久久免费 | 国产精品美女视频 | 国产99精品| 亚洲一区二区黄 | 综合久久综合久久 | 国产激情视频在线观看 | 色综合色综合色综合 | 欧美综合久久久 | japan21xxxxhd美女| 有码一区 | 日本又色又爽又黄又高潮 | 日韩欧美在线不卡 | 国产精品久久精品 | 亚洲一区二区精品视频在线观看 | 亚洲精品乱码久久久久久按摩观 | 九九热这里 | 在线观看免费黄色片 |