网站建设资讯

NEWS

网站建设资讯

go语言获取设备cpu gopsutil获取某个进程的cpu

go如何监控内存和CPU使用率

如果电脑是Windows 7系统,可以使用电脑小工具实时监控电脑cpu使用率,将鼠标放在电脑的空白处右击鼠标,弹出菜单栏,在菜单栏中选择小工具,点击即弹出小工具窗口。

站在用户的角度思考问题,与客户深入沟通,找到新都网站设计与新都网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、网站建设、外贸网站建设、企业官网、英文网站、手机端网站、网站推广、域名注册、网页空间、企业邮箱。业务覆盖新都地区。

go test 命令介绍

是 go 语言 自带 的 测试 工具,

其中包含的是 两类 ,

通过 go help test 可以看到 go test 的 使用 说明:

go test [-c] [-i] [build flags] [packages] [flags for test binary]

参数解读:

-test.v : 是否输出全部的单元测试用例(不管成功或者失败),默认没有加上,所以只输出失败的单元测试用例。

-test.run pattern: 只跑哪些单元测试用例

-test.bench patten: 只跑那些性能测试用例

-test.benchmem : 是否在性能测试的时候输出内存情况

-test.benchtime t : 性能测试运行的时间,默认是1s

-test.cpuprofile cpu.out : 是否输出cpu性能分析文件

-test.memprofile mem.out : 是否输出内存性能分析文件

-test.blockprofile block.out : 是否输出内部goroutine阻塞的性能分析文件

-test.memprofilerate n : 内存性能分析的时候有一个分配了多少的时候才打点记录的问题。这个参数就是设置打点的内存分配间隔,也就是profile中一个sample代表的内存大小。默认是设置为512 * 1024的。如果你将它设置为1,则每分配一个内存块就会在profile中有个打点,那么生成的profile的sample就会非常多。如果你设置为0,那就是不做打点了。

你可以通过设置memprofilerate=1和GOGC=off来关闭内存回收,并且对每个内存块的分配进行观察。

-test.blockprofilerate n: 基本同上,控制的是goroutine阻塞时候打点的纳秒数。默认不设置就相当于-test.blockprofilerate=1,每一纳秒都打点记录一下

-test.parallel n : 性能测试的程序并行cpu数,默认等于GOMAXPROCS。

-test.timeout t : 如果测试用例运行时间超过t,则抛出panic

-test.cpu 1,2,4 : 程序运行在哪些CPU上面,使用二进制的1所在位代表,和nginx的nginx_worker_cpu_affinity是一个道理

-test.short : 将那些运行时间较长的测试用例运行时间缩短

Golang的pprof的使用心得(CPU,Heap)

参照的是 这个文章

首先自己写一段demo

里面负责2件事

doSomeThingOne

genSomeBytes

运行这个程序go run main.go

To install thewrk,you need only:

git clone

cd wrk

make

wrk relies on the openssl and luajit, learn more from its github page

Generating requests

Our demo is listening on the port 9876 ,so let's generate some requests for that.

./wrk -c400 -t8 -d5m

-c400means we have 400 connections to keep open

-t8means we use 8 threads to build requests

-d5mmeans the duration of the test will last for 5 minutes

用这段命令来压服务器

Our server is very busy now and we can see some information via browser. Inputlocalhost:9876/debug/pprofyou will see:

然后用命令进入

在这里能看见各种方法的运行时间

所以我们安装Graphviz 在mac下

brew install graphviz

之后再这个(pprof)里面输入web

会生产一个svg文件

用浏览器打开我们就会看到

很显然gensomebytes里面的math方法最消耗时间。这个就是我们优化的对象

其实也很方便在

localhost:9876/debug/pprof/profile改成

localhost:9876/debug/pprof/heap

后面的结果一样。。和cpu一样可以看到那个heap占用了大量的内存到时候优化吧

这个文章里面的第一个方法就可以做测试内存占用的.

有空试试把

分布式程序 A B C D 4个进程在服务器. 监控程序E 打包程序F

写一个监控程序定时监控这4个进程的CPU 内存(搞成配置文件)

达到性能瓶颈(例如 90%CPU 内存剩下10%)  E用shell触发打包程序F把pprof等信息打包.并发送邮件

给配置者.


文章标题:go语言获取设备cpu gopsutil获取某个进程的cpu
分享地址:http://cdweb.net/article/ddiidgo.html