1、监控 io 性能

这个 iostat 命令,在安装 sar 命令的时候,就一起安装了,所以不用重新安装。具体用法见下图, iostat 命令和 vmstat 挺像的,输入 iostat 可以直接查看磁盘显示情况,输入 iostat 1 就是每隔1秒显示一次,是动态命令,使用 ctrl + c 结束命令。sda 和 sdb 表示磁盘,第3 列和第4 列表示读和写的速度。这个命令没什么用处,因为命令 sar -b 也可以看出这些信息。 接着往下介绍命令 iostat -x 1,见下图, 这个命令有一个非常重要的指标 %util ,表示 io 等待,在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。 还有一个命令 iotop ,需要安装,见下图, iotop 命令和 top 命令很像,也是动态显示,输入命令 iotop ,回车,见下图, 可以看到排序,但是 io 没有什么读写信息,也就没有什么排序。按字母 q 退出。

2、free 命令

直接查看内存使用状况。输入 free ,回车,见下图, 可以看到当前系统的总内存大小以及使用内存的情况,单纯的 free 命令单位是 KB ,-m 选项的单位是 M ,-g 选项的单位是 G,-h 选项是智能的显示单位。其中,第2行是内存使用情况,第3行是 swap的使用情况。我们关注的是第2行的数据,从上例中可看到当前系统内存总大小为999936 KB,已经使用118532 KB,剩余578680 KB,共享6832 KB。 系统初始化时,就已经分配出很大一部分内存给缓存(buff/cache),这部分缓存用来随时提供给程序使用,如果程序不用,那这部分内存就空闲。CPU 和磁盘之间,需要通过内存来缓存。从磁盘到CPU之间的内存叫 cache ,从CPU到磁盘之间的内存叫 buffer。 公式:total=used+free+buff/cache。 avaliable包含free和buffer/cache剩余部分。

3、ps 命令

作为系统管理员,一定要知道你所管理的系统都有那些进程在运行,在windows下只要打开任务管理器即可查看。在linux下呢?其实在上面介绍的top命令就可以,但是不容易看,还有专门显示系统进程的命令 ps ,静态显示出来进程情况。 先输入命令 man ps ,回车,来查看一下 ps 的功能,见下图, 可以看到 ps 的作用是报告当前流程的快照。 接着来看一下 ps 的用法,见下图, ps aux 命令显示当前系统的所有进程,它经常会连同管道符一起使用,用来查看某个进程或者它的数量,见下图, ps 还有一种用法,见下图, -elf 的用法和 aux 大同小异,显示的信息基本上是一样的,不一一截图了。这两种方法就是看个人喜好。 接着介绍 ps aux 命令结果里面几个参数的意义: USER:进程的运行用户 PID :进程的id,这个id很有用,在linux中内核管理进程就得靠pid来识别和管理某一个程序,比如我想终止某一个进程,则用 kill 进程的pid 有时并不能杀掉,则需要加一个-9选项了 kill -9 进程pid 现在假设 PID 为509的进程是非法进程,先查看一下进程的目录,看看进程是从哪边启动起来的,就是下图红色框框绿色字体的内容。 %CPU CPU百分比 %MEM 内存百分比 VSZ 虚拟内存 RSS 物理内存 START 什么时候启动 TIME 运行多久 COMMAND 命令 STAT :表示进程的状态,进程状态分为以下几种(不要求记住,但要了解) D 不能中断的进程(通常为IO) R 正在运行中的进程 S (大写的S)已经中断的进程,通常情况下,系统中大部分进程都是这个状态 T 已经停止或者暂停的进程,如果我们正在运行一个命令,比如说 vmstat 1 ,如果我们按一下 ctrl + z 让他暂停,那么我们用ps查看就会显示T这个状态,见下图, W 这个好像是说,从内核2.6xx 以后,表示为没有足够的内存页分配 X 已经死掉的进程(这个好像从来不会出现) Z 僵尸进程,杀不掉,打不死的垃圾进程,占系统一小点资源,不过没有关系。如果太多,就有问题了。一般不会出现。 < 高优先级进程,CPU先给这些进程用 N 低优先级进程 L 在内存中被锁了内存分页(还没见过,了解即可) s (小写的s)主进程,一般显示为 Ss 为主进程,S 为子进程。 l 多线程进程,意思就是这个进程有多个线程。这边线程和进程,可以查查资料

  • 代表在前台运行的进程 这个ps命令是在工作中用的非常多的命令之一。

总结: iostat -x %util表示在统计时间内所有处理IO时间,除以总共统计时间 iostat 显示当前磁盘使用情况 iostat 1 每隔1秒显示一次磁盘使用情况,是动态命令,使用 ctrl + c 结束命令 iotop 磁盘使用情况,按 io 排序 free 可以看到当前系统的总内存大小以及使用内存的情况,-m 单位M,-g单位G,-h智能显示单位 ps aux 静态的显示当前系统的所有进程,经常与 | 一起使用