hackbench 介绍
Hackbench 是内核调度程序的基准测试和压力测试,是 rt-tests 套件的一部分。
Hackbench 还通过线程的重复设置和拆卸来强调内存子系统的某些部分。另外,它在一定程度上强调进程间通信(例如本地套接字、管道)。
Hackbench 可用于生成系统负载,同时使用Cyclictest测量延迟。
hackbench应用
1. hackbench 参数
“-f --fds=NUM number of fds” —— 定义每个子进程应该使用多少文件描述符,实际是该值的2倍(发送和接收各用 NUM 个数量的描述符)
“-F --fifo use SCHED_FIFO for main thread” ——主线程使用 SCHED_FIFO 调度策略
“-g --groups=NUM number of groups to be used” —— 定义启动多少组发送者和接受者
“-l --loops=LOOPS how many message should be send” —— 每个发送者/接收者对 应该发送多少条信息
“-p --pipe send data via a pipe” —— 使用管道而不是套接字发送数据
“-s --datasize=SIZE message size” —— 设置每条信息中发送的数据量
“-T --threads use POSIX threads” —— 发送/接收者都是线程进行操作
“-P --process use fork (default)” —— 发送/接收者都是进程
2. hackbench 代码下载
3. 代码编译
gcc -g -Wall -O2 -o hackbench hackbench.c -lpthread
4. 样例
./hackbench -pTl 4000
Tips:
Hackbench 是 ltp (Linux Test Project)的一部分,新的代码可以从 github 上下载。
github 上的代码与我使用的有些差别。