linux命令lr Linux命令ls( 四 )


Top命令的运行结果大致可以分为两个部分 。上半部是使一些统计的信息,包括内存和交换分区的使用情况、CPU的运行情况、进程的总数等等 。在这些统计信息中,系统管理员除了要关注这些重要资源的使用滤外 , 还需要注意进程运行的状态 。可见在Linux系统中进程的状态主要有四种,分别为running、sleeping、sped和zombie 。如果从系统维护与性能优化考虑,则系统管理员需要关注那些状态为zombie的进程 。若进程处于这个状态,在Linux操作系统中叫做僵尸进程 。什么叫做僵尸进程呢?就是那些父进程还没死、但是子进程却死了的进程 。在Linux操作系统中,进程一般分为父进程和子进程 。某个进程A可能会调用另外一个进程B 。此时这个进程A就叫做父进程 , 而进程B就叫做子进程 。由于一些意外的情况,子进程运行已经停止,但是父进程却还不知道子进程早已停止运行 , 还在那边傻傻的等待着子进程返回运行结果 。由于子进程没有返回结果,则父进程可能一直会在那边等待 。从而导致系统性能的下降 。如果系统管理员发现有僵尸进程的话,首先要做的就是结束父进程(有时候还需要查看这个父进程打开的其他子进程运行情况) , 以释放其占用的系统资源 。其次如果这种情况发生的比较频繁时,则系统管理员就需要分析到底是什么原因导致这种情况发生的 。找到原因后要采取积极的措施 。通常情况下,如果子进程的状态为僵尸时,父进程就不会自动结束,从而其占用的系统资源就不会自动释放,从而降低操作系统的性能 。
二、Top命令的使用技巧 。
1、 选择合适的排序顺序 。
在Windows操作系统的任务管理器中,管理员可以根据需要选择合适的排序顺序,如按CPU排序或者按内存的使用率进行排序 。而在命令的显示结果中,默认情况下是按照CPU的使用率来进行排序的 。如果现在系统管理员想按照内存使用率来排序,该如何处理呢?如果要想改变命令结果的排序顺序,则可以按m键来按内存进行排序 。注意这里的m是小写,而不是大写的 。在Linux操作系统中大部分命令与参数大小写都是敏感的 。这跟微软操作系统中的DOS命令不同 。Dos命令是不区分大小写的 。虽然这个排序没有像微软操作系统中的任务管理器那么方便,只需要点点鼠标就可以完成排序 。但是只要熟悉相关的命令 , 在命令行中对其排序没有大家想想的那么困难 。
2、 监视特定用户使用的资源情况 。
在Windows操作系统中,如果想要查看特定帐户所打开的进程以及所耗用的系统资源,操作非常简单 。只需要打开系统任务管理器,然后按照用户来进行排序 。就可以知道某个用户开启了哪些进程以及所占用的比例 。而在命令中,没有按帐户进行排序的功能 。即在上面这个显示结果中,只可以按照内存使用率或者CPU负载来进行排序,而无法按照用户来进行排序 。在同一个结果中夹杂着系统特权用户root与普通用户所打开的进程 。这对于系统管理员查找问题原因非常的不方便 。有时候系统管理员往往需要只查看特定用户的进程,如只需要查看oracle帐户所打开的进程以及所占用的系统资源 。而忽略掉系统帐户 。因为特权帐户其他用户无权进行登陆操作,而其运行的往往是一些系统级别的进程,为此一般不会出现问题 。而普通用户可以运行一些应用程序 。有时候他们糊里糊涂可能会打开一些非法程序 , 占用大量的系统资源,从而降低系统性能 。废话少说,如何才能够查看特定帐户所启动的进程呢?其实很简单 。现运行 命令,让系统统计所有帐户的进程 。然后在需要查看特定帐户的进程使,只需要按u键(注意小写),然后输入用户名即可 。此时系统会自动把其他帐户的进程过滤掉,方便系统管理员查看 。按用户过滤后 , 仍然可以按m键来对现实的结果进行过滤 。如果在一开始就需要查看某个特定用户的进程,那么只需要直接在 命令后面加入-u可选项然后带上具体的用户名即可 。但是,此时如果再想查看全部用户的话,那么只有先推出命令,然后再利用命令不带任何选项,来查看所有用户的进程 。或者说,再在这个窗口中输入字符u,然后直接按回车键 , 也可以显示所用用户的进程信息 。

推荐阅读