linux和安卓Android中除了某个linux进程状态其他后台所有运行的linux进程状态杀死命令怎么写?

版权声明:本文为博主原创文章遵循

版权协议,转载请附上原文出处链接和本声明

 




  • “你的鼓励将是我创作的最大动力”

版权聲明:本文为博主原创文章遵循

版权协议,转载请附上原文出处链接和本声明

用kill加linux进程状态号就可以

但是像我这种初学者,不知道应該杀死的是哪一个linux进程状态

红色笔标记的是linux进程状态号蓝色笔标示的是引发linux进程状态的原因,常用linux的知道运行程序是会用./a.out如果你的守護linux进程状态由它引起的,就对应前面的linux进程状态号用kill杀掉就可以了

原创文章 14获赞 10访问量 3万+


  • “你的鼓励将是我创作的最大动力”

linux性能监控命令:

vmstat命令的含义为显礻虚拟内存状态(“Virtual Memory Statistics”)但是它可以报告关于linux进程状态、内存、I/O等系统整体运行状态。

-f:显示启动后创建的linux进程状态总数; -n:头信息仅顯示一次; -s:以表格方式显示事件计数器和内存状态; -p:显示指定的硬盘分区状态; -S:输出信息的单位
  • 事件间隔:状态信息刷新的时间間隔;
  • 次数:显示报告的次数。
  • r: 运行队列中linux进程状态数量这个值也可以判断是否需要增加CPU。(长期大于1)
  • b: 等待IO的linux进程状态数量
  • swpd: 使用虚擬内存大小,如果swpd的值不为0但是SI,SO的值长期为0这种情况不会影响系统性能。
  • free: 空闲物理内存大小
  • buff: 用作缓冲的内存大小。
  • cache: 用作缓存的内存大小如果cache的值大的时候,说明cache处的文件数多如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小
  • si: 每秒从交换区写到内存的大尛,由磁盘调入内存
  • so: 每秒写入交换区的内存大小,由内存调入磁盘

注意:内存够用的时候,这2个值都是0如果这2个值长期大于0时,系統性能会受到影响磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时就认为内存不够用了,不能光看这一点还偠结合si和so,如果free很少但是si和so也很少(大多时候是0),那么不用担心系统性能这时不会受到影响的。

IO(现在的Linux版本块的大小为1kb)

  • bi: 每秒读取的块数
  • bo: 每秒写入的块数

注意:随机磁盘读写的时候这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大

  • in: 每秒中断数,包括时钟中断
  • cs: 烸秒上下文切换数。

注意:上面2个值越大会看到由内核消耗的CPU时间会越大。

CPU(以百分比表示)

us的值比较高时说明用户linux进程状态消耗的CPU時间多,但是如果长期超50%的使用那么我们就该考虑优化程序算法或者进行加速。

sy的值高时说明系统内核消耗的CPU资源多,这并不是良性表现我们应该检查原因。

  • wa: IO等待时间百分比

wa的值高时说明IO等待比较严重,这可能由于磁盘大量作随机访问造成也有可能磁盘出现瓶颈(块操作)。

  • id: 空闲时间百分比

iostat命令被用于监视系统输入输出设备和CPU的使用情况它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用凊况同一样,iostat也有一个弱点就是它不能对某个linux进程状态进行深入分析,仅对系统的整体情况进行分析

-c:仅显示CPU使用情况;
-d:仅显示設备利用率;
-k:显示状态以千字节每秒为单位,而不使用块每秒;
-m:显示状态以兆字节每秒为单位;
-p:仅显示块设备和所有被使用的其他汾区的状态;
-t:显示每个报告产生时的时间;
-V:显示版号并退出;
  • 间隔时间:每次报告的间隔时间(秒);
  • 次数:显示报告的次数

详细說明:第二行是系统信息和监测时间,第三行和第四行显示CPU使用情况(具体内容和命令相同)这里主要关注后面I/O输出的信息,如下所示:

每秒需要读取需求的数量
每秒需要写入需求的数量
每秒实际读取需求的数量
每秒实际写入需求的数量
每秒实际读取的大小单位为KB
每秒實际写入的大小,单位为KB
I/O需求完成的平均时间
被I/O需求消耗的CPU百分比

top命令可以实时动态地查看系统的整体运行情况是一个综合了多方信息監测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面用热键可以管理。

-b:以批处理模式操作;
-c:显示完整的治命令;
-d:屏幕刷新间隔时间;
-n<次数>:循环显示的次数

在top命令执行过程中可以使用的一些交互命令。这些命令都是单字母的如果在命令行中使用叻-s选项, 其中一些命令可能会被屏蔽

h:显示帮助画面,给出一些简短的命令总结说明;
i:忽略闲置和僵死linux进程状态这是一个开关式命囹;
r:重新安排一个linux进程状态的优先级别;
s:改变两次刷新之间的延迟时间(单位为s),如果有小数就换算成ms。输入0值则系统将不断刷噺默认值是5s;
f或者F:从当前显示中添加或者删除项目;
o或者O:改变显示项目的顺序;
l:切换显示平均负载和启动时间信息;
m:切换显示內存信息;
t:切换显示linux进程状态和CPU状态信息;
c:切换显示命令名称和完整命令行;
M:根据驻留内存大小进行排序;
P:根据CPU使用百分比大小進行排序;
T:根据时间/累计时间进行排序;
w:将当前设置写入~/.toprc文件中。
  • 0.0%ni[用户linux进程状态空间内改变过优先级的linux进程状态占用CPU百分比],

iotop命令是一個用来监视磁盘I/O使用状况的类工具iotop具有与top相似的UI,其中包括PID、用户、I/O、linux进程状态等相关信息Linux下的IO统计工具如,nmon等大多数是只能统计到per設备的读写情况如果你想知道每个linux进程状态是如何使用IO的就比较麻烦,使用iotop命令可以很方便的查看

-o:只显示有io操作的linux进程状态
-b:批量顯示,无交互主要用作记录到文件。
-n NUM:显示NUM次主要用于非交互式模式。
-u USER:监控的linux进程状态用户

iotop常用快捷键:

  1. 左右箭头:改变排序方式,默认是按IO排序
  2. o:只显示有IO输出的linux进程状态。
  3. p:linux进程状态/线程的显示方式的切换

直接执行iotop就可以看到效果了:


lsof命令用于查看你linux进程狀态开打的文件,打开文件的linux进程状态linux进程状态打开的端口(TCP、UDP)。找回/恢复删除的文件是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件所以需要root用户执行。

在linux环境下任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据还可以访问网絡连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本質如何该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个應用程序本身的信息因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。

-a:列出打开文件存在的linux进程状态;
-c<linux进程状态洺>:列出指定linux进程状态所打开的文件;
-g:列出GID号linux进程状态详情;
-d<文件号>:列出占用该文件号的linux进程状态;
+d<目录>:列出目录下被打开的文件;
+D<目录>:递归列出目录下被打开的文件;
-i<条件>:列出符合条件的linux进程状态(4、6、协议、:端口、 @ip )
-p<linux进程状态号>:列出指定linux进程状态号所打開的文件;
-u:列出UID号linux进程状态详情;

lsof输出各列信息的意义如下:

  • PPID:父linux进程状态标识符(需要指定-R参数)
  • FD:文件描述符,应用程序通过文件描述符识别该文件
  1. cwd:表示current work dirctory,即:应用程序的当前工作目录这是该应用程序启动的目录,除非它本身对这个目录进行更改
  2. txt:该类型的文件是程序代码如应用程序二进制文件本身或共享库,如上列表中显示的 /sbin/init 程序

一般在标准输出、标准错误、标准输入后还跟着文件状态模式:

  1. u:表示该文件被打开并处于读取/写入模式
  2. r:表示该文件被打开并处于只读模式。
  3. :表示该文件被打开并处于
  4. 空格:表示该文件的狀态模式为unknow,且没有锁定
  5. -:表示该文件的状态模式为unknow,且被锁定

同时在文件状态模式后面,还跟着相关的锁:

  1. CHR:表示字符类型
  2. DEVICE:指萣磁盘的名称
  3. NODE:索引节点(文件在磁盘上的标识)
  4. NAME:打开文件的确切名称

free命令可以显示当前系统未使用的和已使用的内存数目,还可以显礻被内核使用的内存缓冲区

-b:以Byte为单位显示内存使用情况;
-k:以KB为单位显示内存使用情况;
-m:以MB为单位显示内存使用情况;
-o:不显示缓沖区调节列;
-s<间隔秒数>:持续观察内存使用状况;
-t:显示内存总和列;

第一部分Mem行解释:

total:内存总数;
used:已经使用的内存数;
free:空闲的内存数;
shared:当前已经废弃不用;

可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数

第三部分是指交换分区。


time命令鼡于统计给定命令所花费的总时间

指令:指定需要运行的额指令及其参数。

当测试一个程序或比较不同算法时执行时间是非常重要的,一个好的算法应该是用时最短的所有类UNIX系统都包含time命令,使用这个命令可以统计时间消耗例如:

输出的信息分别显示了该命令所花費的real时间、user时间和sys时间。

  • real时间是指挂钟时间也就是命令开始执行到结束的时间。这个短时间包括其他linux进程状态所占用的时间片和linux进程狀态被阻塞时所花费的时间。
  • user时间是指linux进程状态花费在用户模式中的CPU时间这是唯一真正用于执行linux进程状态所花费的时间,其他linux进程状态囷花费阻塞状态中的时间没有计算在内
  • sys时间是指花费在内核模式中的CPU时间,代表在内核中执系统调用所花费的时间这也是真正由linux进程狀态使用的CPU时间。

shell内建也有一个time命令当运行time时候是调用的系统内建命令,应为系统内建的功能有限所以需要时间其他功能需要使用time命囹可执行二进制文件/usr/bin/time

使用-o选项将执行时间写入到文件中:

使用-a选项追加信息:

使用-f选项格式化时间输出:

real时间显示格式为[小时:]分钟:秒
進行计时的命令名称和命令行参数。
linux进程状态非共享数据区域以KB为单位。
linux进程状态接收到的信号数量
linux进程状态被交换出主存的次数。
系统的页面大小这是一个系统常量,不用系统中常量值也不同
linux进程状态所获取的CPU时间百分百,这个值等于user+system时间除以总共的运行时间
linux進程状态的平均总内存使用量(data+stack+text),单位是KB
linux进程状态主动进行上下文切换的次数,例如等待I/O操作完成
linux进程状态被迫进行上下文切换的佽数(由于到期)。

uptime命令能够打印系统总共运行了多长时间和系统的平均负载uptime命令可以显示的信息显示依次为:现在时间、系统已经运荇了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。

-V:显示指令的版本信息

使用uptime命令查看系统负载:

up 127 days, 3:00 //主机已运行时间,时间越大,说明你的机器越稳定 1 user //用户连接数,是总连接数而不是用户数

那么什么是系统平均负载呢 系统平均负载是指茬特定时间间隔内运行队列中的平均linux进程状态数。

如果每个CPU内核的当前活动linux进程状态数不大于3的话那么系统的性能是良好的。如果每个CPU內核的任务数大于5那么这台机器的性能有严重问题。

如果你的linux主机是1个双核CPU的话当Load Average 为6的时候说明机器已经被充分使用了。


我要回帖

更多关于 linux进程状态 的文章

 

随机推荐