一 先来看看ps命令:
1.查看当前某个时间点的进程:ps命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、
哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。
2.ps [选项] 下面对命令选项进行说明:
-e :显示所有进程。
-f :全格式,做一个较为完整的输出。
-h :不显示标题。
-l :长格式,较长、较详细的将该 PID 的的信息列出。
-w: 宽输出。
a :显示终端上的所有进程,包括其他用户的进程。
-u :有效使用者 (effective user) 相关的 process ;
x: 显示没有控制终端的进程,通常与 a 这个参数一起使用,可列出较完整信息。
r :只显示正在运行的进程。
特别说明:由于 ps 能够支持的
OS
类型相当的多,所以他的参数多的离谱!
而且有没有加上 - 差很多!详细的用法应该要参考 man ps
一般会这样使用:ps -aux | more
二 接着来看top命令
1. 在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。
退出 top 的命令为 q (在 top 运行中敲 q 键一次)。
top提供了实时的对系统的监控状态,会定时更新显示进程的cpu使用情况,而top只能将某个时间点的程序运作情况撷取下来。
2. top [-] [d] [p] [q] [c] [C] [S] [n]
参数说明:
d: 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p: 通过指定监控进程ID来仅仅监控某个进程的状态。
q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S: 指定累计模式
s : 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i: 使top不显示任何闲置或者僵死进程。
c: 显示整个命令行而不只是显示命令名
三 free命令
1.free命令:显示内存的使用情况,使用权限是所有用户。
和top命令相比,它的优点是使用简单,并且只占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作一个方便实时监控器。
格式:free [-b -k -m] [-o] [-s delay] [-t] [-V]
主要参数:
-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
-t:显示内存总和列。
-o:不显示缓冲区调节列。
比如:free -b -s5 使用这个命令后终端会连续不断地报告内存使用情况(以字节为单位),每5秒更新一次。
四 直接查看系统信息
Linux系统中“/proc”是虚拟文件系统,不占用系统空间,其中许多文件都保存系统运行状态和相关信息,及时的反应出内存现在使用的进程情况。
对于“/proc”中文件可使用文件查看命令浏览其内容,文件中包含系统特定信息:
Cpuinfo 主机CPU信息
Dma 主机DMA通道信息
Filesystems 文件系统信息
Interrupts 主机中断信息
Ioprots 主机I/O端口号信息
Meninfo 主机内存信息
Version Linux内存版本信息
如:cat cpuinfo 查看cpu信息,cat meninfo 查看内存信息
五 更多:
衡量CPU性能的指标:
1,用户使用CPU的情况;
CPU运行常规用户进程
CPU运行niced process
CPU运行实时进程
2,系统使用CPU情况;
用于I/O管理:中断和驱动
用于内存管理:页面交换
用户进程管理:进程开始和上下文切换
3,WIO:用于进程等待磁盘I/O而使CPU处于空闲状态的比率。
4,CPU的空闲率,除了上面的WIO以外的空闲时间
5,CPU用于上下文交换的比率
6,nice
7,real-time
8,运行进程队列的长度
9,平均负载
Linux中常用的监控CPU整体性能的工具有:
§ mpstat: mpstat 不但能查看所有CPU的平均信息,还能查看指定CPU的信息。
§ vmstat:只能查看所有CPU的平均信息;查看cpu队列信息;
§ iostat: 只能查看所有CPU的平均信息。
§ sar: 与mpstat 一样,不但能查看CPU的平均信息,还能查看指定CPU的信息。
§ top:显示的信息同ps接近,但是top可以了解到CPU消耗,可以根据用户指定的时间来更新显示。
六 这里再介绍一下平均负载的命令 uptime
[root@localhost ~]# uptime
11:39:36 up 11 days, 19:16, 1 user, load average: 0.09, 0.03, 0.01
原来它所表示的是过去的1分钟、5分钟和15分钟内进程队列中的平均进程数量。
那么,如何衡量当前系统是否负载过高呢?这里需要注意的是load average这个输出值,这三个值的大小一般不能大于系统逻辑CPU的个数,
例如,本输出中系统有4个逻辑CPU,如果load average的三个值长期大于4时,说明CPU很繁忙,负载很高,可能会影响系统性能,
但是偶尔大于4时,倒不用担心,一般不会影响系统性能。相反,如果load average的输出值小于CPU的个数,则表示CPU还有空闲,比如本例中的输出,CPU是比较空闲的。
这时候可以结合vmstat命令来判断我们的系统是否过于繁忙,如果确定很繁忙的话,就要考虑是否更换服务器或增加CPU的个数了。总结如下:
如果r经常大于系统的逻辑CPU个数,且id经常少于50,则表示CPU的负荷很重。
(#cat /proc/cpuinfo 可以查看到cpu的核数,如cpu cores:2)