inux性能压测工具stress

admin

发表文章数:11

首页 » 资源分享 » 正文

inux系统下,可以使用stress 命令主要用来模拟系统负载较高时的场景,本文介绍其基本用法。文中 demo 的演示环境为 ubuntu 18.04。

基本语法
语法格式:
stress

常用选项:
-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
Ubuntu 系统默认没有安装 stress,需要通过下面的命令安装:
inux性能压测工具stress
$ sudo apt install stress
$ stress –version

消耗 CPU 资源
stress 消耗 CPU 资源的方式是通过调用 sqrt 函数计算由 rand 函数产生的随机数的平方根实现的。下面的命令会产生 4 个这样的进程不断的进行计算:
inux性能压测工具stress
$ stress -c 4

使用 top 命令查看 CPU 的状态如下(CPU 在用户态满负荷运转):
inux性能压测工具stress

消耗内存资源
下面的命令产生两个子进程,每个进程分配 300M 内存:

$ stress –vm 2 –vm-bytes 300M –vm-keep

inux性能压测工具stress
父进程处于睡眠状态,两个子进程负责资源消耗。

–vm-keep
一直占用内存,区别于不断的释放和重新分配(默认是不断释放并重新分配内存)。
–vm-hang N
指示每个消耗内存的进程在分配到内存后转入睡眠状态 N 秒,然后释放内存,一直重复执行这个过程。

–vm-keep 和 –vm-hang 都可以用来模拟只有少量内存的机器,但是指定它们时 CPU 的使用情况是不一样的。

$ stress –vm 2 –vm-bytes 500M –vm-keep

一直在进行默认的 stride 操作,user 非常高(cpu 在用户态忙碌)。

$ stress –vm 2 –vm-bytes 500M –vm-hang 5

上面这两种状态不断切换,但整体上看 CPU 的负载并不高。

–vm-stride B
不断的给部分内存赋值,让 COW(Copy On Write)发生。只要指定了内存相关的选项,这个操作就会执行,只是大小为默认的 4096。赋值内存的比例由参数决定:

for (i = 0; i < bytes; i += stride)
ptr[i] = ‘Z’; /* Ensure that COW happens. */
bytes 为消耗的总内存大小,stride 为间隔。
该参数会影响 CPU 状态 us 和 sy:

$ stress –vm 2 –vm-bytes 500M –vm-stride 64

$ stress –vm 2 –vm-bytes 500M –vm-stride 1M

为什么会产生这样的结果?原因是单独的赋值和对比操作可以让 CPU 在用户态的负载占到 99% 以上。–vm-stride 值增大就意味着减少赋值和对比操作,这样就增加了内存的释放和分配次数(cpu在内核空间的负载)。

inux性能压测工具stress

未经允许不得转载:眨天博客作者:admin, 转载或复制请以 超链接形式 并注明出处 眨天网
原文地址:《inux性能压测工具stress》 发布于2020-09-30

分享到:
赞(0) 打赏 生成海报

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.5主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册