test
2026年4月16日 · 2533 字 · 6 分钟
文件管理
basic- 脚本:
scripts/basic/basic_testcode.sh - 关键测例:
chdir、close、dup、dup2、fstat、getcwd、getdents、mkdir_、mount、open、openat、pipe、read、umount、unlink、write
- 脚本:
busybox- 脚本:
scripts/busybox/busybox_testcode.sh - 关键命令:
touch、cat、cut、od、head、tail、hexdump、md5sum、sort、uniq、stat、wc、more、rm、mkdir、mv、rmdir、cp、find
- 脚本:
iozone- 脚本:
scripts/iozone/iozone_testcode.sh - 覆盖点:顺序读写、随机读、反向读、跨步读、
fwrite/fread、pwrite/pread、pwritev/preadv
- 脚本:
unixbench- 脚本:
scripts/unixbench/unixbench_testcode.sh - 关键测项:
fstime的小/中/大文件读、写、拷贝
- 脚本:
lmbench- 脚本:
scripts/lmbench/lmbench_testcode.sh - 关键测项:
lat_syscall read/write/open/stat/fstat、lmdd、lat_fs、bw_file_rd、bw_mmap_rd
- 脚本:
LTP- 脚本:
scripts/ltp/ltp_testcode.sh - 建议优先参考的
runtest文件:ltp/runtest/fs、ltp/runtest/fs_bind、ltp/runtest/fs_perms_simple、ltp/runtest/fs_readonly - 典型 syscall 族:
open*、close*、read*、write*、stat*、getdents*、mount*、umount*、unlink*、rename*、mkdir*
- 脚本:
内存管理
basic- 关键测例:
brk、mmap、munmap
- 关键测例:
libcbench- 脚本:
scripts/libcbench/libcbench_testcode.sh - 作用:偏用户态运行库与分配器/字符串实现的微基准,可作为堆分配和内存访问路径压力来源
- 脚本:
lmbench- 关键测项:
lat_pagefault、lat_mmap、bw_mmap_rd
- 关键测项:
LTP- 建议优先参考的
runtest文件:ltp/runtest/mm、ltp/runtest/hugetlb、ltp/runtest/numa - 典型 syscall 族:
brk*、mmap*、munmap*、mremap*、madvise*、mincore*、mlock*、munlock*、move_pages*、migrate_pages* - 共享内存相关:
shmat*、shmctl*、shmget*
- 建议优先参考的
进程、线程与调度
basic- 关键测例:
clone、execve、exit、fork、getpid、getppid、sleep、times、wait、waitpid、yield
- 关键测例:
cyclictest- 脚本:
scripts/cyclictest/cyclictest_testcode.sh - 关键测项:
cyclictest单线程/多线程实时延迟,hackbench调度压力
- 脚本:
unixbench- 关键测项:
context1、pipe、spawn、execl、syscall、looper + multi.sh
- 关键测项:
lmbench- 关键测项:
lat_proc fork/exec/shell、lat_ctx、lat_pipe、lat_select、lat_sig
- 关键测项:
LTP- 建议优先参考的
runtest文件:ltp/runtest/sched、ltp/runtest/nptl、ltp/runtest/cpuhotplug - 典型 syscall 族:
clone*、fork*、vfork*、execve*、wait*、waitpid*、waitid*、sched_*
- 建议优先参考的
IPC 与同步
basic- 关键测例:
pipe
- 关键测例:
lmbench- 关键测项:
lat_pipe、lat_select
- 关键测项:
LTP- 建议优先参考的
runtest文件:ltp/runtest/syscalls-ipc - 典型 syscall 族:
msg*、sem*、shm*、futex*、epoll*、select*、poll*、eventfd*、timerfd*
- 建议优先参考的
网络通信
iperf- 脚本:
scripts/iperf/iperf_testcode.sh - 关键测项:TCP/UDP 基本吞吐、并发连接、反向传输
- 脚本:
netperf- 脚本:
scripts/netperf/netperf_testcode.sh - 关键测项:
UDP_STREAM、TCP_STREAM、UDP_RR、TCP_RR、TCP_CRR
- 脚本:
LTP- 建议优先参考的
runtest文件:ltp/runtest/net.ipv6、ltp/runtest/net.multicast、ltp/runtest/net.tcp_cmds、ltp/runtest/net_stress.*
- 建议优先参考的
时间与定时
basic- 关键测例:
gettimeofday、sleep、times
- 关键测例:
cyclictest- 关键测项:定时精度与实时调度延迟
LTP- 典型 syscall 族:
getitimer*、setitimer*、timerfd_*、clock_nanosleep*、alarm*、nanosleep*
- 典型 syscall 族:
系统信息与基础环境
basic- 关键测例:
uname
- 关键测例:
busybox- 关键命令:
date、df、dmesg、du、uname、uptime、ps、pwd、free、hwclock
- 关键命令:
C 库与语言运行时
libctest- 脚本:
scripts/libctest/libctest_testcode.sh - 作用:覆盖静态/动态链接下的 libc 接口兼容性
- 脚本:
libcbench- 作用:覆盖 libc 微基准和用户态运行时热点路径
lua- 脚本:
scripts/lua/lua_testcode.sh - 关键测项:
date.lua、file_io.lua、random.lua、remove.lua、sort.lua、strings.lua
- 脚本:
CPU / 算术微基准
unixbench- 关键测项:
dhry2reg、whetstone-double、arithoh、short、int、long、float、double、hanoi
- 关键测项:
推荐使用方式
- 先用
basic对 syscall 能力做最小闭环验证。 - 文件系统实现稳定后,继续看
busybox、iozone、lmbench、unixbench里的文件相关项。 - 内存和调度能力成熟后,再补
cyclictest、LTP的mm、sched、syscalls-ipc。 - 网络栈单独看
iperf、netperf和LTP的网络runtest入口。