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 (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |