标签 压力测试 下的文章

压力测试 CPU 是检查处理器在重负载下性能表现以及系统在此情况下的温度的最佳方法之一。

当你压力测试 CPU 时,可以监视系统资源,观察它们在最高工作负载下的表现。虽然性能不会改变,但如果处理器不具备良好散热能力,温度可能会影响其运作。

对于发烧友来说,压力测试是建造新系统时必不可少的,特别是如果你打算以后超频 CPU。

例如,在压力测试过程中,如果你的 CPU 很快变得太热,你需要通过更换 CPU 风扇、使用更好的通风机箱等方式来改进散热解决方案。

现在你已经了解到压力测试的好处,接下来我将为你介绍在 Linux 中压力测试 CPU 的以下两种方法:

  • 使用 GtkStressTesting(图形界面方式)
  • 使用 stress 和 s-tui 实用程序(命令行方式)

接下来,让我们从第一种方法开始。

使用图形界面方法压力测试 Linux CPU ?️

如果你更喜欢使用图形界面方法,而不是通过终端操作,我有一个最简单的方法来帮助你进行系统压力测试。

有一个名为 GtkStressTesting 的图形界面实用工具,可以帮助你进行压力测试和同时监视温度。它提供了多种预设来进行系统压力测试,并提供了选择在测试期间需要使用多少个内核的功能。

? 该工具在 GitLab 上已不再积极维护。但是它仍能按预期工作。

GtkStressTesting 可以作为 Flatpak 安装,因此如果你尚未启用 Flatpak 支持,请参考我们的 Flatpak 安装指南

一旦你启用了 Flatpak 支持,可以通过终端(如果没有软件中心)使用以下命令来安装 GtkStressTesting 实用工具:

flatpak install flathub com.leinardi.gst

安装完成后,你可以从系统菜单中启动 GtkStressTesting 实用工具。

在这里,我建议你点击“ 读取全部 Read all ”按钮,并输入 sudo 密码,以便工具可以获取你系统的全部信息:

授予 GtkStressTesting 读取所有的权限

从这里,你可以选择压力测试系统的时间(如果温度过高,随时可以停止进程),并在“ 工作线程:自动 Workers: Auto ”下拉菜单中选择可用的的最大数量。

我选择了 12 核心和 5 分钟的压力测试

选择 Linux 中 CPU 压力测试的时间和核心数

完成后,单击“ 开始 Start ”按钮,监视温度,如果超过 90 度,请停止压力测试。

在我的系统上,压力测试过程中最高温度为 85 度:

使用图形界面压力测试 Linux CPU

这是一种非常简便的压力测试 CPU 的方法,是不是很简单呢? ?

使用命令行终端压力测试 Linux CPU

使用 s-tui 命令行实用程序进行压力测试

使用命令行终端压力测试需要两个实用工具:s-tuistress

你可以从默认软件仓库或 使用 pip 来安装这些工具。如果你可以接受使用旧版本的工具,使用默认软件仓库更容易。

以下是适用于流行 Linux 发行版的安装命令:

基于 Ubuntu/Debian 的发行版:

sudo apt install s-tui stress

Arch Linux:

sudo pacman -S s-tui stress

Fedora/RHEL:

sudo dnf install s-tui stress

如果想要使用 pip 安装最新版本,可以使用以下命令:

pip install s-tui --user

安装完成后,在终端中启动 s-tui 实用工具:

s-tui

你将会看到以下内容:

在 Linux 中监控 CPU 的时钟速度、负荷和利用率

你可以使用鼠标或键盘箭头键浏览菜单,然后点击“ 压力选项 Stress options ”,选择你想要压力测试系统的时间(以“秒”为单位):

设置 Linux 中 CPU 压力测试的时间长度

最后,选择“ 压力 Stress ”选项,它会在指定时间内开始压力测试:

使用终端压力测试 Linux 中的 CPU

如果温度失控,你可以点击“ 退出 Quit ”按钮手动停止压力测试。另外,如果你想要将数据存储在 .csv 格式中,该工具也提供了相应的功能。

要存储数据,你只需要在启动 s-tui 实用工具时附加 -c 标记,如下所示:

s-tui -c

如果你想用自己喜欢的名称保存文件,则必须使用 --csv-file 标记,如下所示:

s-tui --csv-file <file 名称>.csv

例如,这里我将文件命名为 Hello.scv

s-tui --csv-file Hello.scv

你可以在它的 GitHub 页面 上了解更多关于这个工具的信息。

系统快乐,人生快乐 ?

并非每个用户都意识到进行压力测试的好处。有时候它会让他们感到害怕,认为系统无缘无故地达到其极限。

但是,测试将帮助你快速评估和监视系统的状况。例如,温度异常上升和 CPU 无法处理现有负载等问题,可以帮助你及早识别硬件问题。

在任何情况下,如果你想在不进行压力测试的情况下 保持 CPU 温度正常,可以参考我们提供的温度监控资源。

你还可以查看一些 Linux 的 系统监控工具htop 的替代品,以监控系统资源的使用情况。

? 你对于在 Linux 中压力测试 CPU 有什么看法?你认为我们应该这样做吗?请在评论区分享你的想法。

(题图:MJ/e5f3fc49-5e47-4f8a-8970-43a445849172)


via: https://itsfoss.com/stress-test-cpu-linux/

作者:Sagar Sharma 选题:lkxed 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

如果你想了解 Linux 服务器在重压之下的运行情况,那么给 Linux 服务器施加压力是个不错的主意。在这篇文章中,我们将看一些工具,可以帮助你增加服务器压力并衡量结果。

为什么你会想给你的 Linux 系统施加压力呢?因为有时你可能想知道当一个系统由于大量运行的进程、繁重的网络流量、过多的内存使用等原因而承受很大的压力时,它的表现如何。这种压力测试可以帮助确保系统已经做好了 “上市” 的准备。

如果你需要预测应用程序可能需要多长时间才能做出反应,以及哪些(如果有的话)进程可能会在重负载下失败或运行缓慢,那么在前期进行压力测试是一个非常好的主意。

幸运的是,对于那些需要能够预测 Linux 系统在压力下的反应的人来说,你可以采用一些有用的技术和工具来使这个过程更容易。在这篇文章中,我们将研究其中的一些。

自己动手做个循环

第一种技术是在命令行上运行一些循环,观察它们对系统的影响。这种方式可以大大增加 CPU 的负荷。使用 uptime 或类似的命令可以很容易地看到结果。

在下面的命令中,我们启动了四个无尽循环。你可以通过添加数字或使用 bash 表达式,如 {1...6} 来代替 1 2 3 4 以增加循环次数:

for i in 1 2 3 4; do while : ; do : ; done & done

在命令行上输入后,将在后台启动四个无尽循环:

$ for i in 1 2 3 4; do while : ; do : ; done & done
[1] 205012
[2] 205013
[3] 205014
[4] 205015

在这种情况下,发起了作业 1-4,作业号和进程号会相应显示出来。

要观察对平均负载的影响,请使用如下所示的命令。在本例中,uptime 命令每 30 秒运行一次:

$ while true; do uptime; sleep 30; done

如果你打算定期运行这样的测试,你可以将循环命令放入脚本 watch-it 中。

#!/bin/bash

while true
do
  uptime
  sleep 30
done

在输出中,你可以看到平均负载是如何增加的,然后在循环结束后又开始下降。

 11:25:34 up 5 days, 17:27,  2 users,  load average: 0.15, 0.14, 0.08
 11:26:04 up 5 days, 17:27,  2 users,  load average: 0.09, 0.12, 0.08
 11:26:34 up 5 days, 17:28,  2 users,  load average: 1.42, 0.43, 0.18
 11:27:04 up 5 days, 17:28,  2 users,  load average: 2.50, 0.79, 0.31
 11:27:34 up 5 days, 17:29,  2 users,  load average: 3.09, 1.10, 0.43
 11:28:04 up 5 days, 17:29,  2 users,  load average: 3.45, 1.38, 0.54
 11:28:34 up 5 days, 17:30,  2 users,  load average: 3.67, 1.63, 0.66
 11:29:04 up 5 days, 17:30,  2 users,  load average: 3.80, 1.86, 0.76
 11:29:34 up 5 days, 17:31,  2 users,  load average: 3.88, 2.06, 0.87
 11:30:04 up 5 days, 17:31,  2 users,  load average: 3.93, 2.25, 0.97
 11:30:34 up 5 days, 17:32,  2 users,  load average: 3.64, 2.35, 1.04 <== 循环停止
 11:31:04 up 5 days, 17:32,  2 users,  load average: 2.20, 2.13, 1.01      11:31:34 up 5 days, 17:33,  2 users,  load average: 1.40, 1.94, 0.98

因为所显示的负载分别代表了 1、5 和 15 分钟的平均值,所以这些值需要一段时间才能恢复到系统接近正常的状态。

要停止循环,请发出像下面这样的 kill 命令 —— 假设作业号是 1-4,就像本篇文章前面显示的那样。如果你不确定,可以使用 jobs 命令来确认作业号。

$ kill %1 %2 %3 %4

增加压力的专用工具

另一种方法是使用专门为你制造系统压力的工具。其中一种叫做 stress(压力),可以以多种方式对系统进行压力测试。stress 工具是一个工作负载生成器,提供 CPU、内存和磁盘 I/O 压力测试。

在使用 --cpu 选项时,stress 命令使用平方根函数强制 CPU 努力工作。指定的 CPU 数量越多,负载上升的速度就越快。

下面第二个脚本(watch-it-2)可以用来衡量对系统内存使用的影响。请注意,它使用 free 命令来查看加压的效果。

$ cat watch-it-2
#!/bin/bash

while true
do
  free
  sleep 30
done

发起任务并观察压力:

$ stress --cpu 2

$ ./watch-it
 13:09:14 up 5 days, 19:10,  2 users,  load average: 0.00, 0.00, 0.00
 13:09:44 up 5 days, 19:11,  2 users,  load average: 0.68, 0.16, 0.05
 13:10:14 up 5 days, 19:11,  2 users,  load average: 1.20, 0.34, 0.12
 13:10:44 up 5 days, 19:12,  2 users,  load average: 1.52, 0.50, 0.18
 13:11:14 up 5 days, 19:12,  2 users,  load average: 1.71, 0.64, 0.24
 13:11:44 up 5 days, 19:13,  2 users,  load average: 1.83, 0.77, 0.30

在命令行中指定的 CPU 越多,负载就增加的越快。

$ stress --cpu 4
$ ./watch-it
 13:47:49 up 5 days, 19:49,  2 users,  load average: 0.00, 0.00, 0.00
 13:48:19 up 5 days, 19:49,  2 users,  load average: 1.58, 0.38, 0.13
 13:48:49 up 5 days, 19:50,  2 users,  load average: 2.61, 0.75, 0.26
 13:49:19 up 5 days, 19:50,  2 users,  load average: 3.16, 1.06, 0.38
 13:49:49 up 5 days, 19:51,  2 users,  load average: 3.49, 1.34, 0.50
 13:50:19 up 5 days, 19:51,  2 users,  load average: 3.69, 1.60, 0.61

stress 命令也可以通过 --io(输入/输出)和 --vm(内存)选项增加 I/O 和内存的负载来给系统施加压力。

在接下来的这个例子中,运行这个增加内存压力的命令,然后启动 watch-it-2 脚本。

$ stress --vm 2

$ watch-it-2
              total        used        free      shared  buff/cache   available
Mem:        6087064      662160     2519164        8868     2905740     5117548
Swap:       2097148           0     2097148
              total        used        free      shared  buff/cache   available
Mem:        6087064      803464     2377832        8864     2905768     4976248
Swap:       2097148           0     2097148
              total        used        free      shared  buff/cache   available
Mem:        6087064      968512     2212772        8864     2905780     4811200
Swap:       2097148           0     2097148

stress 的另一个选项是使用 --io 选项为系统添加输入/输出活动。在这种情况下,你可以使用这样的命令:

$ stress --io 4

然后你可以使用 iotop 观察受压的 I/O。注意,运行 iotop 需要 root 权限。

之前:

$ sudo iotop -o
Total DISK READ:         0.00 B/s | Total DISK WRITE:        19.36 K/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:      27.10 K/s
    TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
 269308 be/4 root        0.00 B/s    0.00 B/s  0.00 %  1.24 % [kworker~fficient]
    283 be/3 root        0.00 B/s   19.36 K/s  0.00 %  0.26 % [jbd2/sda1-8]

之后:

Total DISK READ:         0.00 B/s | Total DISK WRITE:         0.00 B/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:       0.00 B/s
    TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
 270983 be/4 shs         0.00 B/s    0.00 B/s  0.00 % 51.45 % stress --io 4
 270984 be/4 shs         0.00 B/s    0.00 B/s  0.00 % 51.36 % stress --io 4
 270985 be/4 shs         0.00 B/s    0.00 B/s  0.00 % 50.95 % stress --io 4
 270982 be/4 shs         0.00 B/s    0.00 B/s  0.00 % 50.80 % stress --io 4
 269308 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.09 % [kworker~fficient]

stress 只是给系统增加压力的若干工具之一。另一个较新的工具,stress-ng,将在以后的文章中介绍。

总结

用于系统压力测试的各种工具可以帮助你预测系统在真实世界的情况下如何响应,在这些情况下,它们受到增加的流量和计算需求。

虽然我们在文章中展示的是创建和测量各种类型的压力的方法,但最终的好处是压力如何帮助确定你的系统或应用程序对它的反应。


via: https://www.networkworld.com/article/3563334/how-to-stress-test-your-linux-system.html

作者:Sandra Henry-Stocker 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

一般每个 Linux 管理员都会使用 lm\_sensors 监控 CPU 温度。lm\_sensors (Linux 监控传感器)是一个自由开源程序,它提供了监控温度、电压和风扇的驱动和工具。

如果你正在找替代的 CLI 工具,我会建议你尝试 s-tui。

它其实是一个压力测试的终端 UI,可以帮助管理员通过颜色查看 CPU 温度。

s-tui 是什么

s-tui 是一个用于监控计算机的终端 UI。s-tui 可以在终端以图形方式监控 CPU 温度、频率、功率和使用率。此外,它还显示由发热量限制引起的性能下降,它需要很少的资源并且不需要 X 服务器。它是用 Python 编写的,需要 root 权限才能使用它。

s-tui 是一个独立的程序,可以开箱即用,并且不需要配置文件就可以使用其基本功能。

s-tui 使用 psutil 来探测你的一些硬件信息。如果不支持你的一些硬件,你可能看不到所有信息。

以 root 身份运行 s-tui 时,当压测所有 CPU 核心时,可以将 CPU 发挥到最大睿频频率。它在后台使用 Stress 压力测试工具,通过对系统施加某些类型的计算压力来检查其组件的温度是否超过其可接受的范围。只要计算机稳定并且其组件的温度不超过其可接受的范围,PC 超频就没问题。有几个程序可以通过压力测试得到系统的稳定性,从而评估超频水平。

如何在 Linux 中安装 s-tui

它是用 Python 写的,pip 是在 Linux 上安装 s-tui 的推荐方法。确保你在系统上安装了 python-pip 软件包。如果还没有,请使用以下命令进行安装。

对于 Debian/Ubuntu 用户,使用 apt 命令apt-get 命令 来安装 pip

$ sudo apt install python-pip stress

对于 Archlinux 用户,使用 pacman 命令 来安装 pip

$ sudo pacman -S python-pip stress

对于 Fedora 用户,使用 dnf 命令 来安装 pip

$ sudo dnf install python-pip stress

对于 CentOS/RHEL 用户,使用 yum 命令 来安装 pip

$ sudo yum install python-pip stress

对于 openSUSE 用户,使用 zypper 命令 来安装 pip

$ sudo zypper install python-pip stress

最后运行下面的 pip 命令 在 Linux 中安装 s-tui 工具。

对于 Python 2.x:

$ sudo pip install s-tui

对于Python 3.x:

$ sudo pip3 install s-tui

如何使用 s-tui

正如我在文章开头所说的那样。它需要 root 权限才能从系统获取所有信息。只需运行以下命令即可启动 s-tui。

$ sudo s-tui

默认情况下,它启用硬件监控并选择 “Stress” 选项以对系统执行压力测试。

要查看其他选项,请到帮助页面查看。

$ s-tui --help

via: https://www.2daygeek.com/s-tui-stress-terminal-ui-monitor-linux-cpu-temperature-frequency/

作者:Prakash Subramanian 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出