Linux命令行监控命令 linux监控工具有哪些

Linux系统监控要用到哪些命令记录一下自己常用的linux系统命令,方便以后查阅,发觉记忆越来越不行Linux命令行监控命令了
找到最耗CPU的java线程ps命令
命令Linux命令行监控命令:ps -mp pid -o THREAD,tid,time或者ps -Lfp pid
结果展示:
这个命令的作用,主要是可以获取到对应一个进程下的线程的一些信息 。比如你想分析一下一个java进程的一些运行瓶颈点 , 可以通过该命令找到所有当前Thread的占用CPU的时间,也就是这里的最后一列 。
比如这里找到了一个TID : 30834 ,所占用的TIME时间最高 。
通过 printf "%x\n" 30834 首先转化成16进制,继续通过jstack命令dump出当前的jvm进程的堆栈信息 。通过Grep命令即可以查到对应16进制的线程id信息 , 很快就可以找到对应最耗CPU的代码快在哪 。
简单的解释下 , jstack下这一串线程信息内容:
"DboServiceProcessor-4-thread-295" daemon prio=10 tid=0x00002aab047a9800 nid=0x7d9b waiting on condition [0x0000000046f66000]
nid : 对应的linux操作系统下的tid , 就是前面转化的16进制数字
tid: 这个应该是jvm的jmm内存规范中的唯一地址定位 , 如果你详细分析jvm的一些内存数据时用得上,Linux命令行监控命令我自己还没到那种程度,所以先放下
top命令
命令:top -Hp pid
结果显示:
和前面的效果一下 , 你可以实时的跟踪并获取指定进程中最耗cpu的线程 。再用前面的方法提取到对应的线程堆栈信息 。
判断I/O瓶颈
mpstat命令
命令:mpstat -P ALL 1 1000
结果显示:
注意一下这里面的%iowait列,CPU等待I/O操作所花费的时间 。这个值持续很高通常可能是I/O瓶颈所导致的 。
通过这个参数可以比较直观的看出当前的I/O操作是否存在瓶颈
iostat命令
命令: iostat -m -x 1 1000
同样你可以观察对应的CPU中的%iowait数据,除此之外iostat还提供了一些更详细的I/O状态数据,比如比较重要的有:
avgqu-sz :The average queue length of the requests that were issued to the device. (磁盘队列的请求长度,正常的话2,3比较好 。可以和cpu的load一样的理解)
await : The average time (in milliseconds) for I/O requests issued to the device to be served. (代表一个I/O操作从wait到完成的总时间)
svctm和\util都是代表处理该I/O请求花费的时间和CPU的时间比例 。判断是否瓶颈时,这两个参数不是主要的
r/s w/s 和 rMB/swMB/s 都是代表当前系统处理的I/O的一些状态,前者是我们常说的tps,后者就是吞吐量 。这也是评价一个系统的性能指标
pid命令
命令: pidstat -p pid -u -d -t -w -h 1 1000
结果显示:
相当实用的一个命令,可以基于当个进程分析对应的性能数据,包括CPU,I/O,IR , CS等,可以方便开发者更加精细化的观察系统的运行状态 。不过pidstat貌似是在2.6内核的一些较新的版本才有 , 需要安装sysstat包 。
ubuntu下,可以通过sudo apt-get install sysstat进行安装 。
sar命令
命令:sar -x pid 1 1000
sar也可以指定对应的pid , 关注固定的几个参数,没有pidstat那么强大 。看不到对应的I/O, IR等信息 。
sar的功能可以覆盖mpstat , iostat的相关功能 。
dstat命令
命令:dstat -y --tcp 1 1000
通过dstat --tcp可以比较方便的看到当前的tcp的各种状态,不需要每次netstat -nat去看
其他命令
netstat -natp:查看对应的网络链接,关注下Recv-Q , Send-Q , State 。
lsof -p pid :查找对应pid的文件句柄
lsof -i : 80: 查找对应端口被哪个进程占用
lsof/tmp/1.txt :查找对应文件被哪个进程占用
tcpdump / wireshark :抓包分析工具
jstat / jmap / jstack / jps 等一系列的java监控命令
最后
如果你想做一些性能调优的工作,一定要善于利用一些工具进行关注相应的状态 。通过linux命令你可以比较方便的观测到CPU , I/O , network等一些比较外围的状态, 很多时候就已经可以解决大部分的问题 。jvm内部的一些运行状态监控,得需要借助一些特有的工具进行细粒度的观测 。
linux性能监控命令vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写, 是实时系统监控工具 。该命令通过使用knlist子程序和/dev/kmen伪设备驱动器访问这些数据,输出信息直接打印在屏幕 。vmstat反馈的与CPU相关的信息包括:
(1)多少任务在运行
(2)CPU使用的情况
(3)CPU收到多少中断
(4)发生多少上下文切换
如何监视Linux系统资源的使用情况如何监视Linux系统资源Linux命令行监控命令的使用情况
虚拟终端 命令 free
命令
可以用百度搜索
你值得拥有:25 个 Linux 性能监控工具
里面有一些其它的好工具 。
命令、uptime、free
参看::wenku.baidu./link?url=kExcj6W2dhzD6d4UzUW1td4NoIyghYMp3IHo2D8-kNIl0RzwFlR6kahsL6peg8mNWZ6pLaLSwKsaU5PB96MPAoBVu7L_YXSztvNvIykFJ_C
Linux操作系统也会有闹脾气的时候 。在某些情况下Linux命令行监控命令,其系统的资源使用率(包括CPU或者内存) , 也会达到90%以上甚至更多 。为此系统管理员在必要的时候,仍然需要监视系统资源的使
虽然说Linux操作系统要比Windows操作系统稳定的多 。但是这个稳定是相对而言的 。也就是说 , Linux操作系统也会有闹脾气的时候 。在某些情况下,其系统的资源使用率(包括CPU或者内存),也会达到90%以上甚至更多 。为此系统管理员在必要的时候,仍然需要监视系统资源的使用情况 。笔者今天就给大家介绍一下,在Linux操作系统下如何监视这个系统资源,做到心中有数 。
在Windows操作系统中,可以通过任务管理器来查询各个进程所占用的CPU与内存的比率 。在Linux操作系统中没有这种图形化的管理 。在命令行模式下,键入命令,即可以看到各个进程所占用的系统资源 。
ppp作为一个合格的系统管理员,出于系统性能优化或者其他方面的考虑,往往需要掌握系统中最消耗CPU或者内存资源的程序 。为了达到这个目的 , 系统管理员就需要借助系统提供的命令 。这个命令可以帮助管理员监控系统资源的使用情况,包括内存、CPU、交换文件分区的使用率等等 。就是这个命令的执行结果 。系统管理员想要提升操作系统的性能,第一步就是需要读懂上面这张表格 。如果这种图中的内容系统管理员无法看懂 , 那么他就想提升系统的性能根本无法入手 。
Top命令的运行结果大致可以分为两个部分 。上半部是使一些统计的信息 , 包括内存和交换分区的使用情况、CPU的运行情况、进程的总数等等 。在这些统计信息中,系统管理员除了要关注这些重要资源的使用滤外,还需要注意进程运行的状态 。可见在Linux系统中进程的状态主要有四种,分别为running、sleeping、sped和zombie 。如果从系统维护与性能优化考虑 , 则系统管理员需要关注那些状态为zombie的进程 。若进程处于这个状态,在Linux操作系统中叫做僵尸进程 。什么叫做僵尸进程呢?就是那些父进程还没死、但是子进程却死了的进程 。在Linux操作系统中,进程一般分为父进程和子进程 。某个进程A可能会调用另外一个进程B 。此时这个进程A就叫做父进程 , 而进程B就叫做子进程 。由于一些意外的情况,子进程运行已经停止,但是父进程却还不知道子进程早已停止运行 , 还在那边傻傻的等待着子进程返回运行结果 。由于子进程没有返回结果,则父进程可能一直会在那边等待 。从而导致系统性能的下降 。如果系统管理员发现有僵尸进程的话,首先要做的就是结束父进程(有时候还需要查看这个父进程打开的其他子进程运行情况) , 以释放其占用的系统资源 。其次如果这种情况发生的比较频繁时,则系统管理员就需要分析到底是什么原因导致这种情况发生的 。找到原因后要采取积极的措施 。通常情况下,如果子进程的状态为僵尸时,父进程就不会自动结束,从而其占用的系统资源就不会自动释放,从而降低操作系统的性能 。
【Linux命令行监控命令 linux监控工具有哪些】二、Top命令的使用技巧 。
1、 选择合适的排序顺序 。
在Windows操作系统的任务管理器中,管理员可以根据需要选择合适的排序顺序,如按CPU排序或者按内存的使用率进行排序 。而在命令的显示结果中,默认情况下是按照CPU的使用率来进行排序的 。如果现在系统管理员想按照内存使用率来排序 , 该如何处理呢?如果要想改变命令结果的排序顺序 , 则可以按m键来按内存进行排序 。注意这里的m是小写,而不是大写的 。在Linux操作系统中大部分命令与参数大小写都是敏感的 。这跟微软操作系统中的DOS命令不同 。Dos命令是不区分大小写的 。虽然这个排序没有像微软操作系统中的任务管理器那么方便,只需要点点鼠标就可以完成排序 。但是只要熟悉相关的命令,在命令行中对其排序没有大家想想的那么困难 。
2、 监视特定用户使用的资源情况 。
在Windows操作系统中 , 如果想要查看特定帐户所打开的进程以及所耗用的系统资源,操作非常简单 。只需要打开系统任务管理器 , 然后按照用户来进行排序 。就可以知道某个用户开启了哪些进程以及所占用的比例 。而在命令中,没有按帐户进行排序的功能 。即在上面这个显示结果中,只可以按照内存使用率或者CPU负载来进行排序 , 而无法按照用户来进行排序 。在同一个结果中夹杂着系统特权用户root与普通用户所打开的进程 。这对于系统管理员查找问题原因非常的不方便 。有时候系统管理员往往需要只查看特定用户的进程,如只需要查看oracle帐户所打开的进程以及所占用的系统资源 。而忽略掉系统帐户 。因为特权帐户其他用户无权进行登陆操作,而其运行的往往是一些系统级别的进程,为此一般不会出现问题 。而普通用户可以运行一些应用程序 。有时候他们糊里糊涂可能会打开一些非法程序,占用大量的系统资源,从而降低系统性能 。废话少说,如何才能够查看特定帐户所启动的进程呢?其实很简单 。现运行 命令,让系统统计所有帐户的进程 。然后在需要查看特定帐户的进程使,只需要按u键(注意小写),然后输入用户名即可 。此时系统会自动把其他帐户的进程过滤掉 , 方便系统管理员查看 。按用户过滤后,仍然可以按m键来对现实的结果进行过滤 。如果在一开始就需要查看某个特定用户的进程 , 那么只需要直接在 命令后面加入-u可选项然后带上具体的用户名即可 。但是,此时如果再想查看全部用户的话,那么只有先推出命令,然后再利用命令不带任何选项,来查看所有用户的进程 。或者说,再在这个窗口中输入字符u , 然后直接按回车键,也可以显示所用用户的进程信息 。
3、动态统计信息 。
使用命令来统计进程的运行信息,跟微软操作系统的任务管理器一样,都是动态调整的 。也就是说 , 系统会每隔一段时间去统计这个信息,然后动态的显示在窗口中 。不需要用户手工去更新相关的信息 。而且从上面的图形中可以看出,命令统计的信息要比微软任务管理器统计的信息要多的多 。所以对系统管理员来说,具有更大的参考价值 。笔者以前也很喜欢采用微软操作系统的任务管理器 。而了解了命令后,就对其钟爱有加了 。因为其不仅可以完成任务管理器中的所有功能 。而且命令中有的信息在微软任务管理器中却无法显示 。而这些信息往往对我们维护系统、提升性能具有很大的参考价值 。
4、删除有异常的进程 。
如果这个窗口中 , 发现某些进程有异常或者用户执行了规定以外的应用程序 , 如占用了太多的系统资源或者有僵尸进程的存在,则可以直接在这个窗口中讲其删除 。操作的方法很简单 , 只需要在这个窗口内输入字符p,然后系统会提示系统管理员输入要关闭进程的PID 。管理员只需要键入这个值,然后按回车键就可以杀掉不需要的进程 。不过在关闭进程的时候,有权限的限制 。系统特权帐户root可以关闭所有用户的进程 。而普通帐户则只能够删除自己打开的程序,而无法关闭其他用户的进程 。如现在系统管理员先以oracle用户登录,发现root帐户下某个进程异常,想要关闭时,系统会提示无法关闭的错误信息 。此时管理员必须先终止这个进程,然后利用su命令更改登陆的帐户 。然后再关闭这个异常的进程 。系统管理员可以同时关闭多个进程 。方法很简单,就是同时输入多个需要关闭的进程号 。在各个进程号之间需要利用逗号隔开 。
在系统维护中是一个很有用的命令 。除了可以实现如上的功能外,还可以设置其动态更新的时间间隔等等 。不过需要注意的是,在不同版本的 Linux系统中其功能稍有差异 , 而且其显示的布局与内容也有所不同 。为此当系统管理员维护其不怎么熟悉的版本时,有时候需要查看系统的帮助说明 。此时只需要在命令后面加上?号就可以获得相关的帮助 。这个联机帮助文档根命令一样 , 都是系统管理员的好帮手 。不过可惜的是,现在这些在线帮助文档都是英文的 。所以这对系统管理员的英文说明要求比较高 。
Linux系统下如何监视系统资源使用率求解答
但是这个稳定是相对而言的 。也就是说,Linux操作系统也会有闹脾气的时候 。在某些情况下,其系统的资源使用率(包括CPU或者内存) , 也会达到90%以上甚至更多 。为此系统管理员在必要的时候,仍然需要监视系统资源的使
虽然说Linux操作系统要比Windows操作系统稳定的多 。但是这个稳定是相对而言的 。也就是说,Linux操作系统也会有闹脾气的时候 。在某些情况下,其系统的资源使用率(包括CPU或者内存) , 也会达到90%以上甚至更多 。为此系统管理员在必要的时候,仍然需要监视系统资源的使用情况 。笔者今天就给大家介绍一下,在Linux操作系统下如何监视这个系统资源,做到心中有数 。
在Windows操作系统中 , 可以通过任务管理器来查询各个进程所占用的CPU与内存的比率 。在Linux操作系统中没有这种图形化的管理 。在命令行模式下,键入命令 , 即可以看到各个进程所占用的系统资源 。
ppp作为一个合格的系统管理员,出于系统性能优化或者其他方面的考虑,往往需要掌握系统中最消耗CPU或者内存资源的程序 。为了达到这个目的,系统管理员就需要借助系统提供的命令 。这个命令可以帮助管理员监控系统资源的使用情况,包括内存、CPU、交换文件分区的使用率等等 。就是这个命令的执行结果 。系统管理员想要提升操作系统的性能,第一步就是需要读懂上面这张表格 。如果这种图中的内容系统管理员无法看懂 , 那么他就想提升系统的性能根本无法入手 。
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 , 然后直接按回车键,也可以显示所用用户的进程信息 。
3、动态统计信息 。
使用命令来统计进程的运行信息,跟微软操作系统的任务管理器一样,都是动态调整的 。也就是说,系统会每隔一段时间去统计这个信息,然后动态的显示在窗口中 。不需要用户手工去更新相关的信息 。而且从上面的图形中可以看出,命令统计的信息要比微软任务管理器统计的信息要多的多 。所以对系统管理员来说,具有更大的参考价值 。笔者以前也很喜欢采用微软操作系统的任务管理器 。而了解了命令后,就对其钟爱有加了 。因为其不仅可以完成任务管理器中的所有功能 。而且命令中有的信息在微软任务管理器中却无法显示 。而这些信息往往对我们维护系统、提升性能具有很大的参考价值 。
4、删除有异常的进程 。
如果这个窗口中,发现某些进程有异常或者用户执行了规定以外的应用程序,如占用了太多的系统资源或者有僵尸进程的存在 , 则可以直接在这个窗口中讲其删除 。操作的方法很简单,只需要在这个窗口内输入字符p,然后系统会提示系统管理员输入要关闭进程的PID 。管理员只需要键入这个值 , 然后按回车键就可以杀掉不需要的进程 。不过在关闭进程的时候,有权限的限制 。系统特权帐户root可以关闭所有用户的进程 。而普通帐户则只能够删除自己打开的程序,而无法关闭其他用户的进程 。如现在系统管理员先以oracle用户登录 , 发现root帐户下某个进程异常,想要关闭时,系统会提示无法关闭的错误信息 。此时管理员必须先终止这个进程,然后利用su命令更改登陆的帐户 。然后再关闭这个异常的进程 。系统管理员可以同时关闭多个进程 。方法很简单 , 就是同时输入多个需要关闭的进程号 。在各个进程号之间需要利用逗号隔开 。
在系统维护中是一个很有用的命令 。除了可以实现如上的功能外 , 还可以设置其动态更新的时间间隔等等 。不过需要注意的是,在不同版本的 Linux系统中其功能稍有差异 , 而且其显示的布局与内容也有所不同 。为此当系统管理员维护其不怎么熟悉的版本时,有时候需要查看系统的帮助说明 。此时只需要在命令后面加上?号就可以获得相关的帮助 。这个联机帮助文档根命令一样,都是系统管理员的好帮手 。不过可惜的是,现在这些在线帮助文档都是英文的 。所以这对系统管理员的英文说明要求比较高 。
我想监视linux系统的内存使用情况 , 在linux下有哪
[root@iZ259r7h4pfZ ~]#
- 16:48:24 up 226 days, 8:34, 1 user, load average: 0.00, 0.00, 0.01
Tasks: 204 total, 1 running, 164 sleeping, 0 sped, 39 zombie
Cpu(s): 0.9\us, 0.9%sy, 0.0%ni, 98.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1920740k total, 1123552k used, 797188k free, 24216k buffers
Swap: 0k total, 0k used, 0k free, 87436k cached
[root@iZ259r7h4pfZ ~]# free -m
total used free shared buffers cached
Mem: 1875 1097 778 0 23 85
-/buffers/cache: 988 887
Swap: 0 0 0
也可以用watch监控
[root@iZ259r7h4pfZ ~]# watch -n 1 "free -m"
Every 1.0s: free -m Tue Oct 31 16:48:44 2017
total used free shared buffers cached
Mem: 1875 1098 777 0 23 85
-/buffers/cache: 989 886
Swap: 0 0 0
LoadRunner如何监控Linux系统资源
这个需要配置吧
:blogs./yangxia-test/archive/2012/11/27/2790771.
怎样使用loadrunner监控linux系统资源
LR只是模拟客户端和服务器进行交互 , 并不能直观的收集服务器是内部的信息,如果要监控服务器性能情况,linux系统可以用nmon(或者用命令不过,只能监控内存之类的情况 , 写一个shell脚本定时输出日志到本地就可以了),oracle可以用awr 。
如何查看linux资源使用情况
Linux查看系统资源占用
在系统维护的过程中,随时可能有需要查看 CPU和内存的使用率,并根据相应信息分析系统状况的需求 。本文介绍一下几种常见的Linux系统资源查看命令 。
1、总体内存占用的查看
命令:free
图1 free命令查看内存占用
(1) free命令默认是以kb为单位显示的,可以用free -m 用Mb单位来显示 。
(2) Mem行 : total = usedfree 其中buffers和cached虽然计算在used内 , 但其实为可用内存 。
(3) Mem下一行:used为真实已占内存,free为真实可用内存 。
(4)Swap:内存交换区的使用情况 。
2、查看内存占用前五的进程
命令:ps auxw | head -1;ps auxw|sort -rn -k4|head -5
图 2.1查看内存占用前5的进程
如图2.1所示,内存的单位是kb,VSZ是虚拟内存的占用,RSS是真实的内存的占用 。
命令分解:
ps auxw显示系统资源占用情况;
head -1表示显示第一列,即标题列;
sort -r 表示反向排序,-n表示按数字排序,-k4表示列的第4个字符 。
3、查看CPU占用前三的进程
命令:ps auxw|head -1;ps auxw|sort -rn -k3|head -3
图3.1 查看cpu占用前三的进程
该命令与图2.1相仿,只是选择的资源占用情况的第3列(即cpu) , 用“-k3”表示 。
4、查看系统整体的负载
命令:
图4.1 显示系统整体负载
(1)第一行: 系统时间系统运行时间几个用户1/5/15分钟系统平均负载
(2)第二行:进程总数(total)正在运行进程数(running)睡眠进程数(sleeping)停止的进程数(sped)僵尸进程数(zombie)
(3)第三行:用户空间CPU占比(us)内核空间CPU占比(sy)CPU空置率(id)
图4.2 各个任务占用资源情况
注解:
PID :进程ID
USER :用户名
PR :优先级
NI :负值表示高优先级,正值表示低优先级 。
VIRT :虚拟内存
RES : 真实内存
SHR :共享内存
S :进程状态 D=不可中断的睡眠状态; R=运行; S=睡眠 ;T=跟踪/停止; Z=僵尸进程
参数:
-d 2 :每隔2秒显式所有进程的资源占用情况
-c :每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
-p 12345 -p 6789:每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
-d 2 -c -p 123456 :每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数
如何使用vmstat命令监视 CPU 的使用情况
假设一个线程被调度运行,它将一直运行直到它的时间片用完、直到被抢先或直到它自己主动放弃 CPU 控制权 。
当另一个线程被赋予 CPU 控制权时,必须保存前一个线程的上下文或工作环境,并载入当前线程的上下文 。操作系统有一个很有效的上下文切换过程 , 所以每次切换并不耗费资源 。
任何上下文切换的显著增加,如当 cs 比磁盘 I/O 和网络包速率高的多,都应进行进一步调查 。
几个常用的linux性能监控命令1. sar
每两秒刷新一次,总共5次
[root@dbhost01 ~]# sar 2 5
Linux 2.6.32-504.el6.x86_64 (dbhost01)03/30/2018_x86_64_ (4 CPU)
02:53:15 PMCPU\user%nice%system%iowait%steal%idle
02:53:17 PMall0.660.001.720.660.0096.96
02:53:19 PMall1.340.003.350.800.0094.51
02:53:21 PMall0.790.001.591.450.0096.17
02:53:23 PMall0.400.002.000.800.0096.80
02:53:25 PMall0.660.001.850.790.0096.70
Average:all0.770.002.100.900.0096.23
2. top
top -a 按照内存降序
[root@dbhost01 ~]# top -a
top - 15:00:54 up6:04,1 user,load average: 0.31, 0.19, 0.11
Tasks: 306 total,1 running, 305 sleeping,0 stopped,0 zombie
Cpu(s):7.8\us,2.4%sy,0.0%ni, 88.9%id,0.8%wa,0.0%hi,0.1%si,0.0%st
Mem:4048972k total,3848576k used,200396k free,134844k buffers
Swap:4194300k total,1788k used,4192512k free,1835360k cached
3. vmstat
vmstat用于显示虚拟内存,内核线程,磁盘,系统进程, CPU活动等统计信息 。
需要安装sysstat工具 。
[root@dbhost01 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
rbswpdfreebuffcachesisobiboincs us sy id wa st
201788 202508 135064 18359200032269627612 9510
[root@dbhost01 ~]#
[root@dbhost01 ~]# vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
rbswpdfreebuffcachesisobiboincs us sy id wa st
001788 202336 135068 18360000032269727612 9510
001788 202624 135068 1836000002529 4012 668201 9810
001788 202624 135072 1836004005787 4003 668501 9810
101788 202508 135072 1836004005733 4402 735311 9800
001788 202540 135076 1836004003347 4002 667401 9810
4. lsof(list open files)
[root@dbhost01 ~]# lsof | grep 1521
certmonge2348root16rFIFO0,80t015212 pipe
certmonge2348root18rFIFO0,80t015218 pipe
gipcd.bin2754grid109uunix 0xffff8801391521800t036936 socket
5. tcpdump
tcpdump -i eth1
15:24:28.777779 IP dbhost01.ssh192.168.2.82.50990: Flags [P.], seq 393080:393596, ack 105, win 148, options [nop,nop,TS val 22996360 ecr 2443327], length 516
15:24:28.777809 IP dbhost01.ssh192.168.2.82.50990: Flags [P.], seq 393080:393596, ack 105, win 148, options [nop,nop,TS val 22996360 ecr 2443327], length 516
15:24:28.778976 IP dbhost01.ssh192.168.2.82.50990: Flags [P.], seq 393596:393968, ack 105, win 148, options [nop,nop,TS val 22996361 ecr 2443327], length 372
15:24:28.779011 IP dbhost01.ssh192.168.2.82.50990: Flags [P.], seq 393596:393968, ack 105, win 148, options [nop,nop,TS val 22996361 ecr 2443327], length 372
15:24:28.779013 IP 192.168.2.82.50990dbhost01.ssh: Flags [.], ack 393968, win 16652, options [nop,nop,TS val 2443327 ecr 22996360], length 0
15:24:28.779481 IP dbhost02-priv.23602dbhost01-priv.24271: UDP, length 556
15:24:28.779585 IP dbhost01-priv.24271dbhost02-priv.23602: UDP, length 80
15:24:28.779909 IP dbhost01-priv.24271dbhost02-priv.23602: UDP, length 80
15:24:28.780584 IP dbhost01.ssh192.168.2.82.50990: Flags [P.], seq 393968:394724, ack 105, win 148, options [nop,nop,TS val 22996362 ecr 2443327], length 756
15:24:28.780590 IP dbhost01.ssh192.168.2.82.50990: Flags [P.], seq 393968:394724, ack 105, win 148, options [nop,nop,TS val 22996362 ecr 2443327], length 756
15:24:28.780820 IP dbhost01-priv.24271dbhost02-priv.23602: UDP, length 556
15:24:28.782232 IP dbhost01.ssh192.168.2.82.50990: Flags [P.], seq 394724:395176, ack 105, win 148, options [nop,nop,TS val 22996364 ecr 2443327], length 452
15:24:28.782235 IP dbhost01.ssh192.168.2.82.50990: Flags [P.], seq 394724:395176, ack 105, win 148, options [nop,nop,TS val 22996364 ecr 2443327], length 452
6.netstat
[root@dbhost01 ~]# netstat -a | grep oracle
unix2[ ACC ]STREAMLISTENING31861/var/tmp/.oracle/ora_gipc_sdbhost01gridmyracdb-clusterCRFM_SIPC
unix2[ ACC ]STREAMLISTENING33820/var/tmp/.oracle/sdbhost01DBG_LOGD
unix2[ ACC ]STREAMLISTENING41177/var/tmp/.oracle/sdbhost01DBG_EVMD
unix2[ ACC ]STREAMLISTENING65106/var/tmp/.oracle/sAevm
unix2[ ACC ]STREAMLISTENING65108/var/tmp/.oracle/sSYSTEM.evm.acceptor.auth
7. htop
需要安装
8. iostat
Total DISK READ: 91.48 K/s | Total DISK WRITE: 45.27 K/s
TIDPRIOUSERDISK READDISK WRITESWAPINIOCOMMAND
4071 be/4 oracle30.18 K/s0.00 B/s0.00 %4.69 % ora_lmon_orcl1
4117 be/4 oracle60.36 K/s15.09 K/s0.00 %3.69 % ora_ckpt_orcl1
2989 rt/4 grid965.71 B/s0.00 B/s0.00 %2.13 % ocssd.bin
4099 be/4 oracle0.00 B/s30.18 K/s0.00 %0.07 % ora_ckpt_test
2987 rt/4 grid0.00 B/s482.86 B/s0.00 %0.03 % ocssd.bin
2979 rt/3 root0.00 B/s3.77 K/s0.00 %0.00 % ologgerd -M -d /g01/grid/app/11.2.0/grid/crf/db/dbhost01
2980 rt/3 root0.00 B/s15.09 K/s0.00 %0.00 % ologgerd -M -d /g01/grid/app/11.2.0/grid/crf/db/dbhost01
9. iftop(流量监控工具)
Linux命令行监控命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux监控工具有哪些、Linux命令行监控命令的信息别忘了在本站进行查找喔 。

    推荐阅读