1、CPU占用率
- 依据/proc/stat文件获取并计算CPU使用率
- 获取命令:cat /proc/stat | grep -w cpu | awk '{print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10}'
- 命令返回值:cpu,[user],[nice],[system],[idle],[iowait],[irq],[softirq][stealstolen][guest]
- 命令返回值释义:
user:从系统启动开始累计到当前时刻,处于用户态的运行时间,不包含 nice值为负进程
nice:从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间
system:从系统启动开始累计到当前时刻,处于核心态的运行时间
idle:从系统启动开始累计到当前时刻,除IO等待时间以外的其它等待时间
iowait:从系统启动开始累计到当前时刻,IO等待时间
irq:从系统启动开始累计到当前时刻,硬中断时间
softirq:从系统启动开始累计到当前时刻,软中断时间
stealstolen:在虚拟化环境中运行时,在其他操作系统上花费的时间是多少
guest:在Linux内核控制下运行客户操作系统的虚拟CPU所花费的时间是多少
- --CPU总时间计算公式:CPU_TIME=user+system+nice+idle+iowait+irq+softirq
- --CPU空闲时间:CPU_IDLE=idle
- --CPU占用率计算公式:采样两个足够短的时间间隔的Cpu快照,得出两个CPU总时间cpu1、cpu2和两个CPU空闲时间idle1、idle2,CPU占用率=100-(idle2-idle1)/(cpu2-cpu1)*100
2、taskset命令
- 作用:将某进程任务指定到某个CPU上运行
- 语法格式:taskset [options] -p [mask] pid
- 参数选项:
-a, --all-tasks 操作所有的任务线程
-p, --pid 操作已存在的pid
-c, --cpu-list 通过列表显示方式设置CPU(逗号相隔)
-V, --version 输出版本信息
3、查看系统内存信息
语法格式:free [options]
参数选项:
-b:以Byte为单位显示内存使用情况 -k:以KB为单位显示内存使用情况 -m:以MB为单位显示内存使用情况 -g:以GB为单位显示内存使用情况 -h:以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有: B = bytes K = kilos M = megas G = gigas T = teras -o:不显示缓冲区调节列 -s<间隔秒数>:持续观察内存使用状况 -t:显示内存总和列 -V:显示版本信息
应用示例:
sh-4.2# free -m total used free shared buff/cache available Mem: 32105 8401 21728 9 1975 23296 Swap: 65535 0 65535 # Mem(第二行):物理内存描述信息 # Swap(第三行):交换内存描述信息 # total(第二列):系统总的可用物理内存大小 # used(第三列):已被使用的物理内存大小 # free(第四列):还有多少物理内存可用 # shared(第五列):多个进程共享的内存总额;如oracle的共享内存 # buff/cache(第六列):这里是两个内容的描述;buff表示I/O缓存、cache表示高速缓存。 # available(第七列):还可以被应用程序使用的物理内存大小
4、内存压力测试stressapptest
主要功能:对内存的读写测试,该软件更多的时候测试的是内存控制器和总线接口,而不是存储单元的功能。DDR测试中不可缺少的一项
下载地址:https://github.com/stressapptest/stressapptest
测试命令:stressapptest -s 600 -M 64 -m 8 -C 8 -W -l ./test.log
参数说明:
-s:测试时间
-m:复制线程数 (Memory Copy)
-i:反转线程数 (Invert Copy)
-c:CRC check CRC校验 (Data Check)
-C:CPU压力线程数
-M:运行的内存大小,尽可能测试最大的可用存储空间,(设置超过了memfree,就会被kill)
-l:将日志存储到指定文件中
5、内存检测工具memtester
主要功能:
- 捕捉内存错误,及长时间处于高位或者低位的内存坏位
- 支持多项测试,随机值、异或比较、异或运算、乘法、除法、减法
- 可指定测试内存起始地址、内存大小以及测试次数
下载地址:http://pyropus.ca/software/memtester/
测试命令:memtester [-p physaddr] <memory> <runs>
参数说明:
- -p physaddr:从特定的物理内存地址开始测试内存,以physaddr的偏移量(以十六进制表示)开始,非必选项
- memory:要测试的内存量,默认以兆字节为单位,也可以选择包括后缀B,K,M或G
- runs:运行次数
6、nohup命令
主要功能 :不挂断的运行命令,配合&可以让命令在后台运行
测试命令:nohup [command] > /dev/null &
参数说明:
- command:要执行的命令
- > /dev/null:是为了将输出重定向到 /dev/null,/dev/null 是一个黑洞,重定向到它的数据都会被扔掉。不加这个前台还是会被占用,无法执行其他操作
- &:是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出
7、md5sum命令
主要功能:用于计算文件的md5值
命令格式:md5sum [file]
参数说明:
- file:要计算的文件
示例:
md5sum /tfcard/test.txt
8、dd命令
主要功能:可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出
命令格式:dd if=[input] of=[output] bs=[size] count=[num]
参数说明:
- input:代表输入文件
- output:代表输出文件
- size:代表输出块的大小
- count:代表输出多少个bs大小的块
示例:
1、测试tfcard的写入速度
time dd if=/dev/zero of=/tfcard/test.txt bs=1M count=1024
2、测试tfcard的读取速度time dd if=/tfcard/test.txt of=/dev/null bs=1M
3、读取+写入time dd if=/tfcard/test.txt of=/tfcard/test1.txt bs=1M count=1024