开发者学堂课程【Linux 操作系统实战:Linux 内存和系统性能常用监控管理命令(下)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/699/detail/12293
Linux 内存和系统性能常用监控管理命令(下)
(1)top 命令
用途:
top 命令用于实时显示 process 的动态,使用权限:所有使用者,在使用之前要注意它占用得资源是比较多的,如果负载比较打的时候,建议不要长期使用,一定要在空闲得时候使用比较好。
语法:
top[-][d delay][q][c][S]{s][n][b]
参数:
d:改变显示的更新速度,或是在交谈式指令列
( interactive command)按 s
q:没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
c:切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
S:累积模式,会将已完成或消失的子行程(dead child process)的 CPU time 累积起来
s:安全模式,将交谈式指令取消,避免潜在的危机
i:不显示任何闲置(idle)或无用(zombie)的行程
n:更新的次数,完成后将会退出 top
b:批次档模式,搭配“n”参数一起使用,可以用来将 top 的结果输出到档案内
示例:top
//显示进程信息
操作,直接输入 top 不带参数,结果如下,会看到好几页命令,不断刷新,间隔几秒刷新一次。
第一行后面紧跟得是显示使用时间,后面还有包含多少个用户在使用,还有平均负载 load average,这个参数是比较重要的,可以看到有三个数据,如果是0的话,表示负载很低,如果超过1的话就要查看是哪一个进程占的内存过高。
第二行 tasks,表示有多少个数量的进程,有一个正在运行,101个正在休眠,0个事停止的以及0个无用的(僵尸进程)。
第三行是占的 cpu 的比例信息,第四行就是内存信息,共有七点多的内存,有7k 是空闲的,有167M 是使用的。最后一行是 swap 的使用情况,在这里 swap 没有配置,所以是0。
这些信息都是每隔一段时间进行跳动的,可以用 PID 来查看进程的信息,包括 USER、ER、NI、VIRT、RES 等的相关信息,这些信息按空格键是可以更新的,排序的话可以按 p,可以很方便的进行一些查看,进行查看的操作。
如果掌握好了这些操作,就可以查看内存的状态,可以积极的查看内存的占有率、 cpu 的使用率等等来了解到系统运行的情况。在按 ctrl+c 就可以退出来。
top-C/T
显示完整命令
输入 top-c
的命令后,搜索一下,就可以查看 top -c
的命令就会显示出来,所以说这个信息是比较完整的。
top-n 5
//设置信息更新次数,刷新5次后自动退出
结果如下图,细心的同学会发现,在5次后会自动退出,这是很好用的命令行,就可以直接相连,进行一些相关的监控。
(2)kill 命令
用途:RI 命令用于删除执行中的程序或工作。比如看到一个程序占的内存或 cpu 的使用率比较高,假如服务器是8G 的内存,一个进程就占6G 或7G,很有可能进程就是异常的,要杀死进程的话,就要使用 kill 命令,kill 的三重命令的机制如下:
kill 可将指定的信息送至程序,获得的信息为 SIGTERM(15 ),可将指定程序终止,若仍无法终止该程序,可使用 SIGKILL(9)信息尝试强制删除程序,程序或工作的编号可利用 ps 指令查看,找到对应的 id 号就可以手动的杀死一个进程
语法:kill[-s<信息名称或编号>][程序]或kill[-l<信息编号>]
参数:
-l<信息编号>,若不加<信息编号>选项,则-l参数会列出全部的信息名称。
-s<信息名称或编号>指定要送出的信息。
[程序] [程序]可以是程序的 PID 或是 PGID,也可以是工作编号,一般的话可以用 ph 命令查看进程号。
示例:
kill 12345
//杀死进程
演示:
获取 pid 的操作,输入语句 ps -aux
,结果如下:掌握 pid 的方法有很多,pid 很重要的,需要获取到编号。
kill -KILL 123456
//制杀死进程
kill -HUP 12345
//发送SIGHUP信号,可以使用一下信号,如果这一步仍然没有杀死,就用最后一个,用最高等级的来强制杀死进程
kill -9 123456
//彻底杀死进程,一般到这一步就会杀死进程。
因为在演示的过程中都是性能进程,所以在这就不能对系统进行强制的删除命令,以免引起不必要的后果。在后续如果学习了 tomhold 的安装之后,可以使用 kill 命令来指定删除特有 pid 的命令