加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux进程管理机制概述

发布时间:2016-01-22 09:53:14 所属栏目:Linux 来源:网络整理
导读:一 、进程的概念和分类 1.进程的概念 Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用同一个linux系统;多任务是指在Linux下可以同

top命令是监控系统进程必不可少的工具,与ps命令相比,top命令动态、实时的显示进程状态,而ps只能显示进程某一时刻的信息,同时,top命令提供了一个交互界面,用户可以根据需要,人性化的定制自己的输出,更清楚的了解进程的实时状态。

 关于top指令的用法,在第四章已经有了详细的介绍,这里通过几个例子,阐述一下top命令在系统进程监控中的作用和优点。

下面这个例子是某系统在某时刻执行top命令后的输出:

[root@webserver ~]# top

Tasks: 126 total,   1 running, 123 sleeping,   1 stopped,   1 zombie

Cpu(s):  0.8% us,  0.1% sy,  0.0% ni, 99.0% id,  0.0% wa,  0.0% hi,  0.0% si

Mem:   8306544k total,  8200452k used,   106092k free,   234340k buffers

Swap:  8385888k total,      160k used,  8385728k free,  7348560k cached

PID    USER     PR  NI  VIRT   RES    SHR   S  %CPU   %MEM     TIME+    COMMAND                                                                

21115  root     23   0 1236m  360m   2384   S    6     4.4     382:24.14  java                                                              

30295  root     16   0  3552   984    760   R    1     0.0     0:00.09    top                                                                    

30118 nobody    15   0  6904  3132   1676   S    0     0.0     0:00.47    httpd

30250 nobody    15   0  6900  3088   1660   S    0     0.0     0:00.06    httpd                                                                  

 1    root     16   0  1780   552    472   S    0     0.0     0:01.25     init

从top命令的输出可知,此系统有java和httpd两个用户进程在运行。

进程PID为21115的java进程由root用户启动,优先级(PR)为23,占用的虚拟内存总量(VIRT)为1236M,未被换出的物理内存(RES)为360M,共享内存(SHR)为2384 kb。通过这几个选项可以了解java进程对内存的使用量,有助于系统管理员对系统虚拟内存使用状况的掌控。

此刻java进程处于休眠状态(S),从上次更新到现在java占用cpu时间(%CPU)为6%,占用物理内存(%MEM)为4.4%,从进程启动到现在java占用cpu总时间(TIME+)为“382:24.14”,单位是1/100秒。通过了解这些信息,可以使系统管理员掌握java进程对系统CPU、物理内存的使用状况。

两个httpd进程由nobody用户启动,优先级都为15,同时都处于休眠状态。

除去这两个进程,还有top进程,也就是我们执行top命令产生的进程,从进程状态项可知,此进程处于运行状态,另一个是init进程,即所有系统进程的父进程,对应的PID为1。

当然top的输出还有很多进程信息,这里仅仅拿出前几个进程进行重点讲解,理解其它进程的含义基本与这些相同。

2.4 利用lsof监控系统进程与程序

 lsof全名list opened files,也就是列举系统中已经被打开的文件,通过lsof,我们就可以根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件。

lsof指令功能强大,这里介绍“-c,-g,-p,-i”这四个最常用参数的使用。更详细的介绍请参看man lsof。

lsof filename:显示使用filename文件的进程。

如果想知道某个特定的文件由哪个进程在使用,可以通过“lsof 文件名”方式得到,例如:

[root@localhost ~]# lsof /var/log/messages

COMMAND  PID USER   FD   TYPE DEVICE  SIZE  NODE NAME

syslogd 2027 root    1w   REG    8,6 43167 31916 /var/log/messages

从这个输出可知,/var/log/messages文件是由syslogd进程在使用。

lsof -c abc :显示abc进程现在打开的文件,例如:

[root@localhost ~]# lsof -c nfs  

COMMAND  PID USER   FD      TYPE DEVICE SIZE NODE NAME

nfsd4   2761 root  cwd       DIR    8,3 4096    2  /

nfsd4   2761 root  rtd       DIR    8,3 4096    2  /

nfsd4   2761 root  txt    unknown                  /proc/2761/exe

nfsd    2762 root  cwd       DIR    8,3 4096    2  /

nfsd    2762 root  rtd       DIR    8,3 4096    2  /

nfsd    2762 root  txt   unknown                   /proc/2762/exe

nfsd    2763 root  cwd       DIR    8,3 4096    2  /

nfsd    2763 root  rtd       DIR    8,3 4096    2  /

nfsd    2763 root  txt   unknown                   /proc/2763/exe

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!