说到服务器性能指标,永远离不开CPU、Memory、IO等。

一、top命令(centOS7)

centos 查看服务器开机时间 centos查看服务器性能_linux

第一行 top: 

-18:39:57

当前系统时间

up 6 min

持续运行时间

load average

系统前1分钟,前5分钟,前15分钟的平均负载

load average理解:假如如现在的CPU是4核,当前running的进程总数为4,那么此时此刻的负载就是4.00 ,只要这个load average的值不超过cup的总核数就代表不是满负荷状态,CPU运行通畅;反之,超过CPU的核数就属于负荷状态了,需要优化;load average前1分钟>前5分钟和15分钟,表示系统负载越来越重,反之则表示系统负载降低。

查询CPU的信息:lscpu

centos 查看服务器开机时间 centos查看服务器性能_服务器_02

查询CPU的核数命令:grep 'model name' /proc/cpuinfo | wc -l 

centos 查看服务器开机时间 centos查看服务器性能_java_03

第二行 tasks: 

98 total

总进程(任务)数

1 running

运行状态进程数

97 sleeping

睡眠状态进程数

0 stopped

停止状态进程数

0 zombie

僵尸状态进程数

第三行 %CPU(s):

        一般来说,物理空闲CPU,我们看id的值(空闲CPU百分比)就可以,如图idle的值>20%,我们就认为CPU运行流畅,<20%我们就认为CPU负载过重,查看us、sy、wa的值,us过高就是用户进程优化,sy过高就需要提升服务器性能了,wa过高就要关注磁盘IO或者网络IO。

        当然也有通过 us+sy 来判断的,这个就是CPU的使用率了,80%作为参考值,>80%CPU负载过重,<80%CPU运行流畅。这种计算方式是忽略了等待进程占用CPU的空间的,其实都是可以的,个人认为idle的值更准确一点。

0.0 us

用户(user)进程占用CPU空间的百分比

0.3 sy

内核(systerm)进程占用CPU空间的百分比

0.0 ni

调整优先级(niced)进程占用CPU空间的百分比

99.3 id

空闲(idle)CPU的百分比

0.3 wa

IO等待(wait)进程占用CPU空间的百分比

0.0 hi

硬件中断(Hardware Interrupt)占用CPU的百分比

0.0 si

软件中断(Software Interrupt)占用CPU的百分比

0.0 st

偷走(steal)进程占用CPU的百分比(仅虚拟机有这种情况)

 第四行:KiB Mem:

        一般比较关注的就是free和total,物理内存空闲率free/total,free/total的值一般>20%就代表内存资源充足,<20%表示内存资源紧缺。

1863004 total

总物理内存(容量),单位KB

1427916 free

空闲内存

235340 used

已使用内存

199848 buff/Cache

缓冲内存

 第五行:KiB Swap:

2097140 total

总交换分区内存(容量)

2097140 free

闲置交换分区内存

0 used

已使用交换分区内存

1473568 avail Mem

可用的缓冲交换区内存

  第七行:列表:

PID

进程ID

USER

进程所有者

PR

进程的实际优先级(priority),rt表示任务正在调度优先级下运行

NI

进程的调度优先级nice,-20拥有最高优先级

VIRT

进程使用的虚拟内存(virtual)

RES

进程使用的驻留内存(resident)

SHR

进程使用的共享内存(share)

S

进程状态(state):R-运行态,S-睡眠态,Z-僵尸态,T-被跟踪已停止,D-不可中断的睡眠态

%CPU

进程使用的CPU占比

%MEM

进程使用的物理内存占比

TIME+

进程使用CPU的时间,单位(分钟:秒)

COMMAND

进程名称(命令行/名)

二、补充其他辅助命令

        查看内存  free -h

centos 查看服务器开机时间 centos查看服务器性能_centos 查看服务器开机时间_04

        查看负载 uptime

centos 查看服务器开机时间 centos查看服务器性能_服务器_05

        查看分区:fdisk -l

centos 查看服务器开机时间 centos查看服务器性能_centos 查看服务器开机时间_06

        查看磁盘使用情况: df -h

centos 查看服务器开机时间 centos查看服务器性能_java_07

         查看进程 ps -ef

centos 查看服务器开机时间 centos查看服务器性能_java_08

        整体查看(每3秒刷新1次,共刷新5次):vmstat 3 5    

centos 查看服务器开机时间 centos查看服务器性能_java_09

procs

r

表示正在运行的进程数,若r值长期大于CPU个数,说明CPU不足,需要增加CPU个数

b

等待资源的进程数,如IO、内存交换等

memory

swpd

交换分区的内存(KB)

free

空闲内存

buff

缓冲内存,对块设备的读写,需要缓冲

cache

文件系统cache,频繁访问的文件都会被cached,如果cached的值较大,说明cached文件数较多,如果此时IO中的bi值较小,说明文件系统效率高

swap

si

从磁盘写入内存,就是交换分区写入内存的大小(KB/s)

so

从内存写入磁盘,就是内存写入交换分区的大小,一般情况下,si、so的值都为0,若si、so的值长期不为0,则说明内存不足,需要增加系统内存

IO

bi

每秒读取的块数,现在的linux版本块的大小为1024bytes

bo

每秒写入的块数,

system

in

每秒中断数,包括时钟中断,值越大,cpu中的sy就越大

cs

每秒上下文切换数,值越大,cpu中的sy就越大

cpu

us

用户态占用CPU时间的百分比

sy

内核态占用CPU时间的百分比

id

空闲时间(包括等待时间)

wa

等待IO时间,wa过高说明IO等待比较严重,这可能是由于磁盘大量随机访问造成的,也有可能是磁盘的宽带出现瓶颈,查看磁盘IO或者网络IO

st

偷走进程占用CPU时间的百分比(仅虚拟机有这种情况)