目录
一、概述
二、stress介绍和使用
2.1 介绍
2.2 使用
三、stress-ng介绍和使用
3.1 介绍
3.2 使用
3.3 实例
四、sysbench
4.1 介绍
4.2 使用
五、lmbench
5.1 介绍
5.2 使用
一、概述
今天介绍两款cpu负荷调试工具,用来模拟多种类型的负载。主要用来模拟CPU 资源、内存资源、 I/O资源、网络资源、文件系统操作等资源负荷占比。
二、stress介绍和使用
2.1 介绍
是一个用于测试系统稳定性和性能的工具。它可以模拟系统在高负载下的运行情况,帮助评估系统的表现,调试和排查问题。
2.2 使用
使用 stress 工具时,可以根据需要选择不同的选项和参数来配置其行为。以下是 stress 工具的基本使用方法:
安装 stress 工具:
在 Linux 系统上,可以使用包管理器进行安装。例如,在 Ubuntu 上可以使用以下命令进行安装;在嵌入式yocto环境中可以用bitbake stress来编译,然后传输到设备中运行:
sudo apt-get install stress
运行 stress 命令:使用以下命令来运行 stress 工具: stress [选项] [参数]
选项:可以使用不同的选项来配置 stress 的行为。一些常用的选项包括:
-c
stress -c 4 -t 10s
创建 2 个 worker 进程来占用内存资源,每个进程占用 1GB 内存,并运行 5 分钟: stress -m 2 --vm-bytes 1G -t 5m
创建 4 个 worker 进程来占用 I/O 资源,并运行 1 小时: stress -i 4 -t 1h
./stress --help
-?, --help show this help statement --version show version statement -v, --verbose be verbose -q, --quiet be quiet -n, --dry-run show what would have been done -t, --timeout N timeout after N seconds --backoff N wait factor of N microseconds before work starts -c, --cpu N spawn N workers spinning on sqrt() -i, --io N spawn N workers spinning on sync() -m, --vm N spawn N workers spinning on malloc()/free() --vm-bytes B malloc B bytes per vm worker (default is 256MB) --vm-stride B touch a byte every B bytes (default is 4096) --vm-hang N sleep N secs before free (default none, 0 is inf) --vm-keep redirty memory instead of freeing and reallocating -d, --hdd N spawn N workers spinning on write()/unlink() --hdd-bytes B write B bytes per hdd worker (default is 1GB)
Example: stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s
Note: Numbers may be suffixed with s,m,h,d,y (time) or B,K,M,G (size)
三、stress-ng介绍和使用
3.1 介绍
stress-ng 是一个功能强大的压力测试工具,它可以用于评估系统的稳定性、资源分配、性能和硬件稳定性。它提供了多种测试模式和选项,可以模拟 CPU、内存、磁盘、网络等各种负载,并且支持自定义测试参数。
3.2 使用
安装 stress-ng: 使用适合你的操作系统的软件包管理器来安装 stress-ng。例如,在 Ubuntu 上可以使用以下命令进行安装: sudo apt-get install stress-ng
或者在在嵌入式yocto环境中可以用bitbake stress-ng来编译安装(需要库文件libaio.so.1),然后传输到设备中运行; 基本用法: 要运行 stress-ng,你可以使用以下命令: stress-ng [选项] 常用选项:--cpu :指定每个 CPU worker 进程占用 CPU 资源的百分比。 --vm 创建 4 个 CPU worker 进程,每个进程占用 CPU 资源的 50%。 stress-ng --cpu 4 --cpu-load 50 模拟内存负载: 创建 2 个虚拟内存 worker 进程,每个进程使用 1GB 的内存。 stress-ng --vm 2 --vm-bytes 1G 模拟磁盘 I/O 负载: 创建 4 个磁盘 I/O worker 进程。 stress-ng --io 4 模拟网络负载: 创建 10 个 TCP 连接并保持连接: stress-ng --tcp 10 创建 5 个 UDP 流量生成器: stress-ng --udp 5 创建 2 个网络带宽测试器: stress-ng --net 2 在网络延迟测试中引入 100 毫秒的延迟: stress-ng --net-delay 100ms 在网络丢包测试中引入 5% 的丢包: stress-ng --net-burst 5 文件系统操作: 文件创建和删除测试: --fs-create --fs-sync 创建 100 个文件并保持打开状态: stress-ng --fs-create 100 删除 50 个已存在的文件: stress-ng --fs-delete 50 从已存在的文件中进行 1000 次读取操作: stress-ng --fs-read 1000 向已存在的文件中进行 500 次写入操作: stress-ng --fs-write 500 进行 200 次文件查找操作: stress-ng --fs-lookup 200 进行 100 次文件属性操作: stress-ng --fs-attribute 100 进行 50 次文件系统缓存刷新操作: stress-ng --fs-sync 50 使用 stress-ng --help 命令查看更多详细的说明。 3.3 实例 ./ress-ng --cpu 4 --cpu-load 20 stress-ng: info: [468] defaulting to a 86400 second (1 day, 0.00 secs) run per stressor stress-ng: info: [468] dispatching hogs: 4 cpu stress-ng: info: [468] cache allocate: using built-in defaults as unable to determine cache details PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 469 root 20 0 13388 6620 1964 R 40.0 1.0 0:02.97 stress-ng+ 470 root 20 0 13388 6616 1964 R 39.0 1.0 0:03.02 stress-ng+ 472 root 20 0 13388 6604 1948 R 37.1 1.0 0:03.20 stress-ng+ 471 root 20 0 13388 6620 1964 R 36.2 1.0 0:02.89 stress-ng+ 四、sysbench 4.1 介绍 是一个多功能的基准测试工具,可用于测试 CPU、内存、文件 I/O、数据库性能等。 4.2 使用 以下是 Sysbench 的一些常见用法: CPU 压力测试: sysbench cpu --threads=<线程数> run 这将使用指定数量的线程对 CPU 进行压力测试。 内存压力测试: sysbench memory --threads=<线程数> --memory-block-size=<块大小> --memory-total-size=<总大小> run 这将模拟指定大小的内存块在指定数量的线程间进行读写操作。 文件 I/O 压力测试: sysbench fileio --file-total-size=<总大小> --file-test-mode=<测试模式> prepare sysbench fileio --file-total-size=<总大小> --file-test-mode=<测试模式> --file-num=<文件数> --threads=<线程数> run 这将在准备阶段创建指定大小的文件,并在运行阶段模拟指定数量的线程对文件进行读写操作。 数据库性能测试: sysbench oltp_<数据库引擎> --db-driver=<数据库驱动> --mysql-host=<主机> --mysql-port=<端口> --mysql-user=<用户名> --mysql-password=<密码> --mysql-db=<数据库名> --tables=<表数量> --table-size=<表大小> prepare sysbench oltp_<数据库引擎> --db-driver=<数据库驱动> --mysql-host=<主机> --mysql-port=<端口> --mysql-user=<用户名> --mysql-password=<密码> --mysql-db=<数据库名> --tables=<表数量> --table-size=<表大小> --threads=<线程数> --time=<持续时间> run 这将在准备阶段创建指定数量和大小的数据库表,并在运行阶段模拟指定数量的线程对数据库进行读写操作 五、lmbench 5.1 介绍 Lmbench 是一个用于测量系统性能和硬件特性的工具集,它包含多个小型的基准测试程序。 5.2 使用 以下是 Lmbench 的一些常见用法: 测量内存访问延迟: lmbench_lat_mem_rd 这将测量内存读取的延迟。 测量缓存访问延迟: lmbench_lat_ctx 这将测量缓存访问的延迟。 测量进程创建和上下文切换时间: lmbench_lat_proc 这将测量进程创建和上下文切换的时间。 测量文件 I/O 延迟和带宽: lmbench_lat_fs 这将测量文件 I/O 的延迟和带宽。 测量网络延迟和带宽: lmbench_lat_net 这将测量网络延迟和带宽。 更多调试方法工具,待收集和分享。... 推荐阅读
发表评论