##查看CPU数量

  • 总核数 = 物理CPU个数 X 每颗物理CPU的核数
  • 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
  • 查看物理CPU个数:
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
  • 查看每个物理CPU中core的个数(即核数):
cat /proc/cpuinfo| grep "cpu cores"| uniq
  • 查看逻辑CPU的个数:
cat /proc/cpuinfo| grep "processor"| wc -l

##CPU运行良好的指标

  • CPU利用率:User Time <= 70%, System Time <=35%, User Time + System Time <= 70%
  • 上下文切换:与CPU利用率相关联,如果CPU利用率良好,较频繁的上下文切换也可以

详情参照 ‘操作系统CPU上下文切换’:

  • 可运行进程数:每个处理器的可运行队列<=3个线程。

###vmstat工具使用

vmstat 2 5  //每两秒统计一次,连续统计5次

打印输出:

linux下linpack测试gpu linux测试cpu性能的命令_linux下linpack测试gpu

字段含义介绍:

  • 进程:
  1. r:就绪态的进程数,等待CPU调度运行。
  2. b:处于不可中断睡眠状态的进程数。
  • CPU:
  1. us:运行非内核态代码占用时间比(用户时间)。
  2. sy:运行内核代码占用时间比(系统时间)。
  3. id:CPU空闲时间比。
  4. wa:等待IO时间。
  • 内存(KB):
  1. swpd:虚拟内存已使用量。
  2. free:空闲内存量。
  3. buffer:已使用的buffer占用内容量。
  4. cache:已使用的cache占用内存量。
  5. si:数据从 SWAP 读取到 RAM(swap in)的大小。
  6. so:数据从 RAM 写到 SWAP(swap out)的大小。

##内存运行良好的指标

  • si(swap in)= 0 且so(swap out)= 0
  • 应用程序实际使用内存/系统物理内存 <= 70%

###free工具使用

free -m

打印输出:

linux下linpack测试gpu linux测试cpu性能的命令_TCP_02

具体选项含义参考>>

##网络运行良好的指标 UDP:接收、发送缓冲区不长时间有等待处理的网络包。

TCP:不会出现因为缓存不足而出现丢包,协议层通过重传机制来保证丢失的包到达接收方。TCP更多的专注重传率。

###netstat工具

netstat -lunp

输出:

linux下linpack测试gpu linux测试cpu性能的命令_文件描述符_03

RecvQ、SendQ为0,或者短时间内有数值是比较正常的。

查看UPD/TCP丢包情况

netstat -us/-ts

UDP关注‘packet receive errors’,若数值不断增加,则正在丢包。

linux下linpack测试gpu linux测试cpu性能的命令_文件描述符_04

TCP服务可以通过(segments retransmited) / (segments send out)来计算重传率。

linux下linpack测试gpu linux测试cpu性能的命令_linux下linpack测试gpu_05

###磁盘IO工具

iostat -d -x -k 2 10

linux下linpack测试gpu linux测试cpu性能的命令_linux下linpack测试gpu_06

字段说明:https://linux.die.net/man/1/iostat

###文件描述符 查看系统运行打开的最大文件描述符数

cat /proc/sys/fs/file-max

查询当前用户一个进程可以打开的最大文件描述符数

ulimit -n