linux系统下实时监控进程以及定位杀死挂起的进程详解程序员
top - 16:39:52 up 4 days, 47 min, 3 users, load average: 0.01, 0.05, 0.05 Tasks: 94 total, 1 running, 93 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.7 us, 0.3 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.3 st KiB Mem : 997608 total, 81396 free, 559020 used, 357192 buff/cache KiB Swap: 0 total, 0 free, 0 used. 229256 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 47706 root 20 0 2757980 67764 3432 S 0.3 6.8 2:45.12 java 50860 mongod 20 0 974392 34288 3700 S 0.3 3.4 2:06.16 mongod 108658 root 20 0 2794276 96332 3644 S 0.3 9.7 2:24.02 java 110060 root 20 0 2789936 53864 3964 S 0.3 5.4 1:29.78 java 1 root 20 0 125456 3424 2076 S 0.0 0.3 1:04.40 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:08.48 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:+ 6 root 20 0 0 0 0 S 0.0 0.0 0:04.04 kworker/u2+ 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0.0 0.0 0:27.72 rcu_sched 10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-dr+ 11 root rt 0 0 0 0 S 0.0 0.0 0:01.90 watchdog/0 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs 14 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns 15 root 20 0 0 0 0 S 0.0 0.0 0:00.14 khungtaskd
输出的第一部分显示的是系统的概况:
第一行显示了当前时间、系统的运行时间、登录的用户数以及系统的平均负载。
平均负载有3个值:最近1分钟的、最近5分钟的和最近15分钟的平均负载。值越大说明系统的负载越高。
由于进程短期的突发性活动,出现最近1分钟的高负载值也很常见,但如果近15分钟内的平均负载都很高,就说明系统可能有问题。
第二行显示了进程概要信息——top命令的输出中将进程叫作任务(task):有多少进程处在运行、休眠、停止或是僵化状态(僵化状态是指进程完成了,但父进程没有响应)。
第三行显示了CPU的概要信息。top根据进程的属主(用户还是系统)和进程的状态(运行、空闲还是等待)将CPU利用率分成几类输出。
第四第五两行说明了系统内存的状态。第一行说的是系统的物理内存:总共有多少内存,当前用了多少,还有多少空闲。后一行说的是同样的信息,不过是针对系统交换空间(如果分配了的话)的状态而言的。
最后一部分显示了当前运行中的进程的详细列表,有些列跟ps命令的输出类似。
PID:进程的ID。 USER:进程属主的名字。 PR:进程的优先级。 NI:进程的谦让度值。 VIRT:进程占用的虚拟内存总量。 RES:进程占用的物理内存总量。 SHR:进程和其他进程共享的内存总量。 S:进程的状态(D代表可中断的休眠状态,R代表在运行状态,S代表休眠状态,T代表 跟踪状态或停止状态,Z代表僵化状态)。 %CPU:进程使用的CPU时间比例。 %MEM:进程使用的内存占可用内存的比例。 TIME+:自进程启动到目前为止的CPU时间总量。 COMMAND:进程所对应的命令行名称,也就是启动的程序名。默认情况下,top命令在启动时会按照%CPU值对进程排序。可以在top运行时使用多种交互命令重新排序。每个交互式命令都是单字符,在top命令运行时键入可改变top的行为。键入f允许你选择对输出进行排序的字段,键入d允许你修改轮询间隔。键入q可以退出top。用户在top命令的输出上有很大的控制权。用这个工具就能经常找出占用系统大部分资源的罪魁祸首。当然了,一旦找到,下一步就是结束这些进程。这也正是接下来的话题。
二、结束进程 Linux进程信号 如何干掉一个进程kill ID(PID)
$ kill 3940 -bash: kill: (3940) - Operation not permitted
上面的命令可能不能适应所有的进程。
强制干掉一个进程# kill -s HUP 3940 #
-s参数支持指定其他信号(用信号名或信号值),kill命令不会有任何输出,要检查kill命令是否有效,可再运行ps或top命令,看看问题进程是否已停止。
killall命令killall命令非常强大,它支持通过进程名而不是PID来结束进程。killall命令也支持通配符,这在系统因负载过大而变得很慢时很有用。
# killall http* #
上例中的命令结束了所有以http开头的进程,比如Apache Web服务器的httpd服务。
注意:以root用户身份登录系统时,使用killall命令要特别小心,因为很容易就会误用通配符而结束了重要的系统进程。这可能会破坏文件系统。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/6511.html
服务器部署程序员系统优化网站设置运维 赞 (1)相关文章
- Linux 挂载磁盘阵列技术指南(linux挂载磁盘阵列)
- Linux查看内存:最简洁方式来监控资源(linux查看内存值)
- 探究 Linux 下的组织结构:查看有哪些组(linux查看有哪些组)
- 探索Linux下监控端口使用情况(linux查看使用端口)
- 『Linux监控:实时追踪请求动态信息』(linux监控请求)
- 删除FTP用户:Linux下的实现方法(linux删除ftp用户)
- Linux复制虚拟机:快速、简单的方式享受实时便利(linux复制虚拟机)
- Linux分区格式:轻松安装(安装linux的分区格式)
- Linux系统的温度监控与调节(linux温度监控)
- Linux实时补丁更新:现在就开始!(linux实时补丁)
- Linux 刻录到光盘的简单操作(linux刻盘)
- Linux种子:让自由之光照耀蔚蓝的世界(linux种子)
- Linux系统短信报警:确保实时监控安全(linux短信报警)
- 在 Linux 中实现日志监控的命令技巧(linux监控日志命令)
- Linux进程监控:让更高效的工作成为可能(linux进程监控程序)
- Linux系统资源监控:优化实施新体系(linux资源监控工具)
- Linux实现对多硬盘的挂载(linux挂载多个硬盘)
- 模式Linux的分支模式:开创新的系统架构(linux的分支)
- 深入了解Linux参数个数:为高效运维提供有效支持(linux参数个数)
- 轻松读取Linux分区,实现数据管理和备份(读取linux分区)
- Linux下的实时监控系统:追踪系统运行状况(linux实时监控工具)
- 监控网络流量:Linux 之旅(linux监控网络流量)
- Linux异步I/O技术实现实时运算(linux异步读写)
- 使用Linux命令行统计目录大小,轻松实现磁盘管理(linux统计目录大小)
- Linux下的PCI设备驱动安装简易指南(linux的pci驱动)