网站制作 成都,网页设计教程完整,广告营销是什么意思,做服务网站发展背景工具介绍
1. Cyclictest 准确且重复地测量线程的预期唤醒时间与它实际唤醒的时间之间的差异#xff0c;以提供有关系统延迟的统计数据。 它可以测量由硬件、固件和操作系统引起的实时系统延迟 2.stress是Linux的一个压力测试工具#xff0c;可以对CPU、Memory、IO、磁盘进行…工具介绍
1. Cyclictest 准确且重复地测量线程的预期唤醒时间与它实际唤醒的时间之间的差异以提供有关系统延迟的统计数据。 它可以测量由硬件、固件和操作系统引起的实时系统延迟 2.stress是Linux的一个压力测试工具可以对CPU、Memory、IO、磁盘进行压力测试
cyclictest 工具
cyclictest 功能介绍安装编译
Cyclictest 准确且重复地测量线程的预期唤醒时间与它实际唤醒的时间之间的差异以提供有关系统延迟的统计数据。 它可以测量由硬件、固件和操作系统引起的实时系统延迟
下载地址 git clone git://git.kernel.org/pub/scm/linux/kernel/git/clrkwllms/rt-tests.git安装依赖库 sudo apt-get install libnuma-devmake make install 编译
cyclictest 使用介绍
1.参数介绍 2. 使用举例
输出参数介绍
cyclictest 工具原理
主要逻辑在线程timerthread 中在代码rt-tests/src/cyclictest/cyclictest.c 一句话的原理记录当前时间next 通过nanosleep 函数延时固定的时间切出任务等待任务重新切回来的时候获取当前时间nownow减去时间间隔减去next时间则为系统延时的时间统计该延时的时间则为系统调度的延时时间。
默认参数
void *timerthread(void *param)
{/* 设置时间间隔 也就是参数 -i 指定的时间 默认1000us */interval.tv_sec par-interval / USEC_PER_SEC;interval.tv_nsec (par-interval % USEC_PER_SEC) * 1000;... while1{/* 延时切出任务 */if (nanosleep(interval, NULL)) {if (errno ! EINTR)warn(nanosleep failed. errno: %d\n, errno);goto out;}next.tv_sec now.tv_sec interval.tv_sec;next.tv_nsec now.tv_nsec interval.tv_nsec;if ((ret clock_gettime(par-clock, now))) {if (ret ! EINTR)warn(clock_getttime() failed. errno: %d\n, errno);goto out;}
/* 计算系统调度延时 */....if (use_nsecs)diff calcdiff_ns(now, next);elsediff calcdiff(now, next);if (diff stat-min)stat-min diff;if (diff stat-max) {stat-max diff;if (refresh_on_max)pthread_cond_signal(refresh_on_max_cond);}
....
}stress 工具
stress 功能介绍安装
sudo apt-get install stress 直接使用命令安装就可以啦
stress 参数介绍
-c, --cpu N产生N个进程每个进程都循环调用sqrt函数产生CPU压力。 -i, --io N产生N个进程每个进程循环调用sync将内存缓冲区内容写到磁盘上产生IO压力。通过系统调用sync刷新内存缓冲区数据到磁盘中以确保同步。如果缓冲区内数据较少写到磁盘中的数据也较少不会产生IO压力。在SSD磁盘环境中尤为明显很可能iowait总是0却因为大量调用系统调用sync导致系统CPU使用率sys 升高。 -m, --vm N产生N个进程每个进程循环调用malloc/free函数分配和释放内存。 –vm-bytes B指定分配内存的大小 –vm-stride B不断的给部分内存赋值让COW(Copy On Write)发生 –vm-hang N 指示每个消耗内存的进程在分配到内存后转入睡眠状态N秒然后释放内存一直重复执行这个过程 –vm-keep一直占用内存区别于不断的释放和重新分配(默认是不断释放并重新分配内存) -d, --hdd N产生N个不断执行write和unlink函数的进程(创建文件写入内容删除文件) –hdd-bytes B指定文件大小
–hdd-noclean不要将写入随机ASCII数据的文件Unlink -t, --timeout N在N秒后结束程序 –backoff N等待N微秒后开始运行 -q, --quiet程序在运行的过程中不输出信息 -n, --dry-run输出程序会做什么而并不实际执行相关的操作 –version显示版本号 -v, --verbose显示详细的信息
stress 使用介绍
cpu 测试 stress --cpu 8 --timeout 60 开启8个CPU进程执行sqrt计算60秒后结束 2. io 测试 stress --io 2 --hdd 2 --timeout 60s 开启2个IO进程2个磁盘IO进程 测试结果查看iowait 参数 内存测试 stress --vm 2 --vm-bytes 1G --vm-hang 100 --timeout 100s 开启2个IO进程2个磁盘IO进程 开启2个进程分配内存每次分配1GB内存保持100秒后释放100秒后退出。 测试结果使用htop 查看