【linux之进程管理,系统监控】

一、进程管理

前台进程:一般是指占据着标准输入和/或标准输出的进程
后台进程:不占据
默认开启的进程都是前台进程
ctrl+C 中断
ctrl+z 从前台转入后台
bg 后台进程编号 让其在后台运行
ls -R / & 让其在后台进行

使一个进程在后台进行
1.ctrl+z将前台进程调入后台,默认进行到后台后处于停止状态
若想要在后台运行该后台进程,使用 bg # (#表示后台进程编号),此时ctrl+c不管用
2.在开启进程的时候,使用&符号缀在命令之后,也是在后台运行该进程

使用fg命令可以将已被调入后台的进程重新调回前台运行
fg # (#表示后台进程编号)

jobs 列出后台进程
+:将默认操作的进程
-:将第二个操作的进程

杀后台进程:kill -9 PID

红帽5支持 kill %1 杀死一号进程

PRI:优先级

renice:调整NI值
renice -10 PID

nice:在执行命令的时候直接指定NI值
nice -n +15 vim .bashrc

trap 捕捉指定信号,但是不完成信号本身的功能,而是执行COMMAND部分(信号名字必须大写)
trap ‘命令’ SIG_SPECIFY
trap `echo "not exists"` SIGINT 捕捉到ctrl+c,输出not exists

进程的调度执行
守护进程(系统服务),可中断式的睡眠状态进程
ls /etc/init.d

kill:后面加PID,向进程或进程组发生信号
2:中断信号,CTRL+C
9:强行终止机制
15:终止进程,默认的信号
kill -l
2) SIGINT(中断) 9) SIGKILL(强制终止机制) 15) SIGTERM

pkill :后面加进程名称,结束进程
pkill vim

killall : kill processes by name
比pkill效率更高一点

二、系统监控命令

ps 查看进程

输出进程状态的即时点信息
选项:
a:所有与终端有关的进程
u:按用户名和启动时间的顺序来显示进程
x:所有与终端无关的进程

    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.5   2824  1400 ?        Ss   06:07   0:01 /sbin/init
root         2  0.0  0.0      0     0 ?        S    06:07   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    06:07   0:00 [migration/0]

USER: 进程所有者
PID: 进程ID
%CPU: 占用的 CPU 使用率
%MEM: 占用的内存使用率
VSZ: 占用的虚拟内存大小
RSS: 占用的内存大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 进程状态:
START: 启动进程的时间;
TIME: 进程消耗CPU的时间;
COMMAND:命令的名称和参数;
=========================================进程STAT状态==================================
D 无法中断的休眠状态(通常 IO 的进程);
R 正在运行,在可中断队列中;
S 处于休眠状态,静止状态;
T 停止或被追踪,暂停执行;
W 进入内存交换(从内核2.6开始无效);
X 死掉的进程;
Z 僵尸进程不存在但暂时无法消除;
W: 没有足够的记忆体分页可分配
WCHAN 正在等待的进程资源;
<: 高优先级进程
N: 低优先序进程
L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O),即,有些页被锁进内存

s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);
+ 位于后台的进程组;

进程的优先级
1.占据CPU处理的时间长短
2.被CPU加载处理的机会

数字越小,优先级越高

0-139
0-99:系统默认定义的
100-139:用户可以调整的

NICE 调整nice偏移量,修改优先级 -20~+19

普通用户只能增加nice值,只能使用正整数的nice值
管理员root可以使用负数的nice值

数字越小,优先级越高
120 0

ps axo user,pid,command | head -2
USER       PID COMMAND
root         1 /sbin/init
pstree :显示进程之间的父子关系
     pstree
init─┬─abrtd
     ├─acpid
     ├─atd
     ├─auditd───{auditd}
     ├─automount───4*[{automount}]
     ├─console-kit-dae───63*[{console-kit-da}]
     ├─crond
     ├─dbus-daemon───{dbus-daemon}
     ├─hald───hald-runner─┬─hald-addon-acpi
     │                    ├─hald-addon-inpu
     │                    └─hald-addon-rfki
     ├─login───bash
     ├─master─┬─pickup
     │        └─qmgr
     ├─mdadm
     ├─5*[mingetty]
     ├─rpc.idmapd
     ├─rpc.statd
     ├─rpcbind
     ├─rsyslogd───3*[{rsyslogd}]
     ├─sshd───sshd───bash───pstree
     └─udevd───2*[udevd]

pgrep
查看进程的pid

pgrep ps
36

top

top:模式化命令,全屏,动态显示进程信息,默认情况下每三秒刷新一次
   M:按照内存使用率,从大到小排序显示
   P:按照CPU处理的时间排序显示
   T:按照运行时间排序显示
   l:是否显示开启时间和平均负载的信息
   m:是否显示内存和交换分区的信息
   t:是否显示任务量和CPU的信息

   k PID;结束进程
   q:退出TOP界面

   -d TIME:修改自动刷新时间
top - 09:00:19 (系统时间)up  2:52(开机时间),  2 users,  load average(负载平均值,1分钟,5分钟,15分钟): 0.07, 0.07, 0.01
Tasks: 111 total,   1 running, 110 sleeping,   0 stopped,   0 zombie(僵尸)
Cpu(s)(只有一个CPU):  0.3%us,  0.3%sy,  0.0%ni(nice), 99.0%id(空闲),  0.0%wa(wait),  0.0%hi(硬交换),  0.3%si(软交换),  0.0%st
Mem:    249620k total,   243048k used,     6572k free,    23696k buffers(缓冲区存元数据信息)
Swap:   524280k total,        0k used,   524280k free,   144352k cached(缓存区存数据信息)

netstat

常见参数
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

vmstat:虚拟内存的统计信息

vmstat 1 10:每隔一秒刷新一次,一共显示10次

vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0   6084  24184 144384   54    0     0    23   21   20  0  1 98  1  0

r :表示运行队列,如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高

b :表示阻塞的进程数

swpd :虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器

free :空闲的物理内存的大小

buff : 系统占用的缓存大小

cache :直接用来记忆我们打开的文件,给文件做缓冲

si :每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了

us :用户CPU时间

sy :系统CPU时间

so : 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。

sy : 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。

id : 空闲 CPU时间,一般来说,id + us + sy = 100

wt : 等待IO CPU时间。

lsof

列出打开的文件

它常用于以列表的形式显示所有打开的文件和进程。打开的文件包括磁盘文件、网络套接字、管道、设备和进程。使用这条命令的主要情形之一就是在无法挂载磁盘和显示正在使用或者打开某个文件的错误信息的时候。使用这条命令,你可以很容易地看到正在使用哪个文件。

网络包分析器:tcpdump

 Tcpdump是最广泛使用的网络包分析器或者包监控程序之一,它用于捕捉或者过滤网络上指定接口上接收或者传输的TCP/IP包。它还有一个选项用于把捕捉到的包保存到文件里,以便以后进行分析。  

-h:查看命令帮助

-i:网络接口

-c :需要输出包数量

进程监控:Htop

  Htop 是一个非常高级的交互式的实时linux进程监控工具。 它和top命令十分相似,但是它具有更丰富的特性,例如用户可以友好地管理进程,快捷键,垂直和水平方式显示进程等等。

监控Linux磁盘I/O :Iotop

 Iotop命令同样也非常类似于top命令和Htop程序,不过它具有监控并显示实时磁盘I/O和进程的统计功能。在查找具体进程和大量使用磁盘读写进程的时候,这个工具就非常有用。  

输入/输出统计:Iostat

  Iostat是一个用于收集显示系统存储设备输入和输出状态统计的简单工具。这个工具常常用来追踪存储设备的性能问题,其中存储设备包括设备、本地磁盘,以及诸如使用NFS等的远端磁盘。

%user: 在用户级别运行所使用的CPU的百分比.

%nice:优先进程消耗的CPU时间,占所有CPU的百分比.

%system: 在系统级别(kernel)运行所使用CPU的百分比.

%iowait: CPU等待硬件I/O时,所占用CPU百分比.

%steal: 管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比.

%idle: CPU空闲时间的百分比.

tps: 每秒钟发送到的I/O请求数.

KB_read /s: 每秒读取的block数.

KB_wrtn/s: 每秒写入的block数.

KB_read: 启动到现在 读入的block总数.

KB_wrtn: 启动到现在写入的block总数.

实时局域网IP监控:IPTraf

IPTraf是一个在Linux控制台运行的、开放源代码的实时网络(局域网)监控应用。它采集了大量信息,比如通过网络的IP流量监控,包括TCP标记、ICMP详细信息、TCP/UDP流量分离、TCP连接包和字节数。同时还采集有关接口状态的常见信息和详细信息:TCP、UDP、IP、ICMP、非IP,IP校验和错误,接口活动等。

服务管理程序:sysv-rc-conf

  Linux 系统任何时候都运行在一个指定的运行级上,并且不同的运行级的程序和服务都不同,所要完成的工作和要达到的目的都不同,系统可以在这些运行级之间进行切换,以完成不同的工作。sysv-rc-conf是一个强大的服务管理程序,用于查看程序和服务的运行级别。

监视每个进程使用的网络带宽:NetHogs

  NetHogs是一个开放源源代码的很小程序(与Linux下的top命令很相似),它密切监视着系统上每个进程的网络活动。同时还追踪着每个程序或者应用所使用的实时网络带宽。

监视网络带宽:iftop

  iftop是另一个在控制台运行的开放源代码系统监控应用,它显示了系统上通过网络接口的应用网络带宽使用(源主机或者目的主机)的列表,这个列表定期更新。iftop用于监视网络的使用情况,而‘top‘用于监视CPU的使用情况。iftop是‘top‘工具系列中的一员,它用于监视所选接口,并显示两个主机间当前网络带宽的使用情况。

<= => :表示的是流量的方向。
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量

界面操作:

按h切换是否显示帮助;

按n切换显示本机的IP或主机名;

按s切换是否显示本机的host信息;

按d切换是否显示远端目标主机的host信息;

按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;

linux系统监控工具——Conky

Conky 是一个应用于桌面环境的系统监视软件,可以在桌面上监控系统运行状态、网络状态等一系列参数,而且可自由定制,但对于新手来说可能会比较难于上手。

Conky是一种自由软件,用于X视窗系统的系统监视,可以在FreeBSD、OpenBSD和各种Linux发布上使用的自由软件。Conky具有很高的可配置性,可以监视许多系统参数,如:CPU、内存、交换内存、硬盘使用情况等状态;各种硬件的温度;系统的进程(top);网络状态;电池电量;系统信息和邮件收发;各种音乐播放器MPD、XMMS2、BMPx、Audacious)的控制。不像其他系统监视器那样需要高级别的部件工具箱(widget toolkits)来渲染他们的信息,Conky可以直接在X视窗下渲染,这意味着在相同配置下Conky可以消耗更少的资源。

Linux系统监控工具——Nagios

Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等。[ Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。

Nagios 可以监控的功能有:

1、监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);

2、监控主机资源(处理器负荷、磁盘利用率等);

3、简单地插件设计使得用户可以方便地扩展自己服务的检测方法;

4、并行服务检查机制;

5、具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;

6、当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);

7、可以定义一些处理程序,使之能够在服务或者主机发生故障时起到预防作用;

8、自动的日志滚动功能;

9、可以支持并实现对主机的冗余监控;

10、可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;

原文地址:https://www.cnblogs.com/smallmars/p/8556201.html

时间: 2024-10-11 18:48:02

【linux之进程管理,系统监控】的相关文章

Linux 系统管理 - 进程管理 - 系统定时任务

01.crond服务管理与访问控制   =>  service  crond  restart   和   chkconfig   crond  on 02.用户的crontab设置  =>  [选项] 选项: -e:编辑 crontab 定时任务 -l:查询crontab任务 -r:删除当前用户所有的crontab任务

Linux下进程管理工具之(二):htop

实验环境: CentOS release 6.6(Final)  一台 IP地址:172.16.249.230 Htop是一款运行于Linux系统监控与进程管理软件,用于取代Unix下传统的top.与top只提供最消耗资源的进程列表不同,htop提供所有进程的列表,并且使用彩色标识出处理器.swap和内存状态. 用户一般可以在top无法提供详尽系统信息的情况下选择安装并使用htop.比如,在查找应用程序的内存泄漏问题时.与top相比,htop提供更方便.光标控制的界面来杀死进程. htop用C语

Linux之进程管理及Shell脚本

使用!来调用过往命令 !! 重复执行上一条指令 !a 重复执行上一条以a为首的指令 !nubmer 重复执行上一条在history表中记录号码为number的指令 !-number重复执行前第number条指令 ailas abc='cd xxxxxxxxxxx/xxxxxxxx/xxxxxxxxxxxxx' unalias abc " "将一串字符当成字符串来看,可以转译特殊字符 ' '将一串字符当成字符串来看,无法转译特殊字符 ·能够返回命令执行的结果 echo `uname -a

Linux基础--进程管理相关命令介绍(2)

本文主要介绍了Linux中进程管理的相关命令,涉及到的主要命令有top,vmstat等. (1)top ①功能:用来查看CPU,内存以及进程的状态. ②用例: ③相关注释: load average表示负载,三个数值分别表示第1分钟,第5分钟,第10分钟 Cpu中us表示用户空间程序占用百分比,sy表示内核模式占用百分比,ni表示调整NICE值所占用的    CPU百分比,id表示CPU的空闲比例,wa表示等待磁盘IO完成所占用的时间比例,hi表示硬件中断占     据的百分比,si表示软中断所

Linux之进程管理(2)相关命令之四

Linux之进程管理(2)相关命令之四 设置或调整进程优先级命令: nice  rnice nice 命令 nice - run a program with modified scheduling priority 运行一个程序时修改调度其进程优先级 格式及用法: nice  [options]  [command [args]] -n  # :#表示要设置此程序nice值,-20到19,值越下,优先级越高 注:-20到19的每个nice值分别对应(Centos5中为100-139,CentO

Linux之进程管理(3)作业管理

Linux之进程管理(3)作业管理 Linux的作业控制介绍: 前台作业:通过终端启动,且启动后一直占据终端: 后台作业:可通过终端启动,但启动后转入后台运行(释放终端): 让进程作业运行在后台: 1.对运行中的进程:使用Ctrl+z 2.尚未启动的作业:COMMAND &  (在命令行的最后面加一个&符号) 后台作业与终端关系的处理: 后台作业虽然被送往后台允许,但其依然与终端相关:退出终端,将关闭后台作业.如果希望送往后台后,同时剥离与终端的关系.可以使用下面两种方法: 1.# noh

Linux之进程管理(1)基本介绍

Linux之进程管理(1)基本介绍 什么是进程: linux系统中,进程管理相当重要.所谓进程,就是相当于触发任何一个事件时,系统都会将此事件当成一个角色定义成为一个进程,并且给予这个进程一个IP,成为PID,同时依据启发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设定.然后这个PID能够在linux上面进行的各种动作,这个PID代表一个角色. PID的产生: 在linux中执行此程序文件中,内核并不是马上进行执行,而是根据程序文件的执行者的选项和一些相应的属性等参数,然后包括其中

Linux之进程管理(2)相关命令之二

Linux之进程管理(2)相关命令之二 进程监控工具命令使用:uptime  top  vmstat  pmap  dstat uptime  命令 uptime - Tell how long the system has been running. 显示当前已经运行的时长及cpu核心处理状态 说明:显示系统当前时间,系统运行时长,以及当前上线人数,系统平均负载(一般按1.5.10分钟的平均负载,一般不会超过1). 选项及用法: uptime  [option] -p, --pretty  :

Linux基础--进程管理及其基本命令

本文主要讲解Linux中进程管理的基本命令使用方法. 1. top命令 作用: 动态显示进程状态 格式: top [options] 常用选项: -d: 后面可以接秒数,就是整个程序画面更新的秒数, 默认是5秒 -b: 以批次的方式执行 top -p: 指定对某个PID进行观察 字段意义: top - 23:52:38 up 19:58,  2 users,   load average: 0.00, 0.00, 0.00 过去1分钟,5分钟,15分钟的系统平均负载: 如果高于1表示系统繁忙 T

Linux基础--进程管理相关命令介绍(1)

本文主要介绍了Linux中进程管理的相关命令,涉及到的主要命令有pstree,ps. (1)pstree ①功能:用来查看进程树 ②用例: (2)ps ①功能:用来显示系统当前进程状态的命令 ②用例: ③相关用法: ps a:显示所有跟终端相关的进程 ps x:显示所有跟终端无关的进程 相关注释: STAT各代码含义: S:可中断的睡眠态 D:不可中断的睡眠态 R:运行或可运行 T:停止 Z:僵死 s:session leader l:多线程进程 +:前台进程 N:低优先级进程 <:高优先级进程