日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

cpu压测 windows_cpu压测神器:cpuburn深度指南

發布時間:2024/10/8 windows 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cpu压测 windows_cpu压测神器:cpuburn深度指南 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 前言

最近在測試一個物聯網的項目,項目里包含設備資源進行監控告警的功能。例如如下監控項:cpu負載超核、內存使用率過高、硬盤使用率過高,系統流量超速等。為了驗證監控的有效性,就需要構造對應場景來進行測試。

如何對cpu,內存,硬盤,流量這幾類資源進行數據構造呢?

我在網速搜羅了一圈發現有四個比較好用的工具,能較方便的構造對應場景:

cpuburn

memtester

dd

netperf

首先我們來介紹這款燒腦神器,cpuburn

2.簡介

一句話介紹:cpuburn lets you utilize 100% of all available cores from the command line — useful when stress-testing(cpuburn 能夠讓你用一行命令來打滿所有CPU的可用核,在做壓力測試的時候特別奏效)

3.安裝方式

cpuburn主要是針對windows和linux系統。

有三種安裝方式

二進制運行

源碼編譯安裝

yum或者apt安裝

3.1 二進制安裝

3.1.1 Linux版下載地址

Linux:

3.1.2 Linux下安裝

1)根據系統位數下載上述文件(以64位為例)

2)解壓縮,解壓完之后即可得到cpuburn二進制

tar xzvf cpuburn-1.0-amd64.tar.gz

3) 拷貝cpuburn到/usr/bin

cp cpuburn /usr/bin/

3.1.3?Windows版下載地址

3.1.3 Windows下安裝

1)點擊下載后解壓縮到當前目錄

2)添加到Path環境變量中(可選)

運行如圖

3.2 源碼編譯安裝

這種方式適合官方沒有對應系統包的情況,比如mac

1)安裝go環境(如果已經安裝,請忽略)

2)下載源碼

3) 編譯源碼

執行完如下命令后會在當前目錄生成cpuburn二進制文件

go build cpuburn.go

3.3 使用yum或者apt安裝

Centos:

yum?install?-y?cpuburn

Ubuntu:

apt-get?install?-y?cpuburn

4. 幫助

輸入:cpuburn -h

Usage of ./cpuburn:

-n int

number of cores to burn (0 = all) //指定進行壓測的CPU核數,默認為0(有幾核壓幾核)

-u int

seconds between updates (0 = don't update) (default 10) //打印運行時長的間隔,默認10秒中打印一次運行時間(0代表靜默模式,不打印任何信息)

5. 例子

1. 壓測所有CPU核(當前CPU有8核),每隔10秒更新一次運行時間。

cpuburn

2.壓測CPU核數為4,每隔10秒更新一次運行時間。

cpuburn -n=4

查看效果:

輸入:top,然后按最上面的數字1,可以看到4核幾乎被全部榨滿了。

3.靜默模式運行cpuburn

cpuburn -u=0

6.源碼解析

cpuburn是go寫的一個小工具,非常的輕巧,讓我們簡單拜讀一下。

package?main

import?(

"flag"

"fmt"

"runtime"

"time"

)

var?(

numBurn????????int

updateInterval?int

)

func?cpuBurn()?{??????????//這里是核心,每個go協程不斷的讓出CPU時間片

for?{

for?i?:=?0;?i?

}

runtime.Gosched()

}

}

func?init()?{?//初始化變量

fmt.Printf("Your?System?is?%s,and?CPUs/cores?number?is?%d\n",runtime.GOOS,?runtime.NumCPU);?//這里是我加的一個打印信息

flag.IntVar(&numBurn,?"n",?0,?"number?of?cores?to?burn?(0?=?all)")

flag.IntVar(&updateInterval,?"u",?10,?"seconds?between?updates?(0?=?don't?update)")

flag.Parse()

if?numBurn?<=?0?{

numBurn?=?runtime.NumCPU()

}

}

func?main()?{

runtime.GOMAXPROCS(numBurn)????//設定使用的cpu核數,不設定默認使用1核運行所有協程

fmt.Printf("Burning?%d?CPUs/cores\n",?numBurn)

for?i?:=?0;?i?

go?cpuBurn()

}

if?updateInterval?>?0?{???//如果設定了更新時間,則不斷每間隔updateInterval*60秒打印更新時間

t?:=?time.Tick(time.Duration(updateInterval)?*?time.Second)?//設定定時器時間間隔

for?secs?:=?updateInterval;?;?secs?+=?updateInterval?{?//間隔幾秒打印一下當前運行的總時間

fmt.Printf("%d?seconds\n",?secs)

}

}?else?{?//如果沒有設定更新時間,則一直阻塞住。

select?{}?//?wait?forever

}

}

重新編譯cpuburn.go,執行下看看效果:

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的cpu压测 windows_cpu压测神器:cpuburn深度指南的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。