1. nproc --all: 查看cpu的数量。
2. lscpu: 查看cpu的详细信息。
其中CPU(s)为本机所有的内核数。
Thrtead(s) per core: 2 是每个cpu上可以运行几个超线程。(具体的意义可以参考cpu、物理核、逻辑核、超线程的名词解释)。
3. vmstat:
Procs(进程):
r: 运行队列中进程数量 (running)
b: 等待IO的进程数量(blocked)
Memory(内存):
swpd: 使用虚拟内存大小
free: 空闲物理内存大小
buff: 用作缓冲的内存大小
cache: 用作缓存的内存大小
Swap:
si: 每秒从交换区写到内存的大小,由磁盘调入内存
so: 每秒写入交换区的内存大小,由内存调入磁盘
IO:
bi: 每秒读取的块数
bo: 每秒写入的块数
系统:
in: 每秒中断数,包括时钟中断。
cs: 每秒上下文切换数。
CPU(以百分比表示):
us: 用户进程执行时间百分比(user time)
sy: 内核系统进程执行时间百分比(system time)
wa: IO等待时间百分比
id: 空闲时间百分比
wa:等待IO时间;
ST: cpu被过多的分配。如果比较大,说明在创建虚拟机时,分配的cpu超出了其原有配置。
4. pidstat
pidstat -u:默认的参数,显示各个进程的cpu使用统计
pidstat -r:显示各个进程的内存使用统计
pidstat -d:显示各个进程的IO使用情况
pidstat -p 2 3 5:对进程号为2的进程进行收集。每3秒收集一次。 共收集5次。
pidstat -w:显示每个进程的上下文切换情况
pidstat -t:显示选择任务的线程的统计信息外的额外信息
5. iostat (I/O statistics)(输入/输出统计)的缩写
iostat 2 3:
tps: 统计时间段内的IO数。其值=r/s+w/s 即每秒写入和读取的次数。
kB_read/s:时间间隔内(上面的命令是2秒内)每秒从设备(drive expressed)读取的数据量;
kB_wrtn/s:时间间隔内(上面的命令是2秒内)每秒向设备(drive expressed)写入的数据量;
kB_read: 时间间隔内(上面的命令是2秒内)读取的总数据量;
kB_wrtn:时间间隔内(上面的命令是2秒内)写入的总数量数据量;
iostat -d -x -k 1 20: 可以收集更多信息
rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。
r/s: 时间间隔内(上面的命令是1秒内)从磁盘读取数据的次数。
w/s: 时间间隔内(上面的命令是1秒内)向磁盘写入数据的次数。
rkB/s: 时间间隔内(上面的命令是1秒内)每秒从磁盘读取数据量(kB为单位)
wkB/s: 时间间隔内(上面的命令是1秒内)每秒向磁盘写入的数据量(kB为单位)
avgrq-sz:时间间隔内(上面的命令是1秒内)平均每次IO操作的数据量(扇区数为单位)
avgqu-sz:时间间隔内(上面的命令是1秒内)平均等待处理的IO请求队列长度
await: 时间间隔内(上面的命令是1秒内)平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
r_await :时间间隔内(上面的命令是1秒内)IO读取等待时长
w_await:时间间隔内(上面的命令是1秒内)IO写入等待时长
svctm:平均每次IO请求的处理时间(毫秒为单位)