存档

‘LINUX’ 分类的存档

LINUX 常用性能分析命令整理

2011年12月10日 admin 没有评论

LINUX

Top 25 Best Linux Performance Monitoring and Debugging Tools

Linux命令—-分析CPU的瓶颈

Linux中常用的监控CPU整体性能的工具有:

 mpstat: mpstat 不但能查看所有CPU的平均信息,还能查看指定CPU的信息。

vmstat:只能查看所有CPU的平均信息;查看cpu队列信息;

iostat: 只能查看所有CPU的平均信息。

sar: 与mpstat 一样,不但能查看CPU的平均信息,还能查看指定CPU的信息。

 top:显示的信息同ps接近,但是top可以了解到CPU消耗,可以根据用户指定的时间来更新显示。

linux cpu相关性能指标

CPU Utilization,一个很直观的概念,在任意时间内,CPU有7个状态:
1.idle,表示CPU闲置并等待工作分配.
2.user,表示CPU在运行用户的进程
3.system,表示CPU在执行kernel工作
4.nice,表示CPU花费在被nice改变过优先级的process上的时间(注意:被nice命令改变优先级的process仅指那些nice值为 负的process.花费在被nice命令改变优先级的任务上的时间也将被计算在系统和用户时间内,因此整个时间加起来可能会超过百分之百)
5.iowait,表示CPU等待IO操作完成的时间
6.irq,表示CPU开销在响应硬中断上的时间
7.softirq,表示CPU开销在响应软中断上的时间.

10 Useful Sar (Sysstat) Examples for UNIX / Linux Performance Monitoring

sar [options] [-A] [-o file] t [n]
在命令行中,n 和t 两个参数组合起来定义采样间隔和次数,t为采样间隔,是必须有
的参数,n为采样次数,是可选的,默认值是1,-o file表示将命令结果以二进制格式
存放在文件中,file 在此处不是关键字,是文件名。options 为命令行选项,sar命令
的选项很多,下面只列出常用选项:
-A:所有报告的总和。
-u:CPU利用率
-v:进程、I节点、文件和锁表状态。
-d:硬盘使用报告。
-r:内存和交换空间的使用统计。
-g:串口I/O的情况。
-b:缓冲区使用情况。
-a:文件读写情况。
-c:系统调用情况。
-q:报告队列长度和系统平均负载
-R:进程的活动情况。
-y:终端设备活动情况。
-w:系统交换活动。
-x { pid | SELF | ALL }:报告指定进程ID的统计信息,SELF关键字是sar进程本身的统计,ALL关键字是所有系统进程的统计。

24 iostat, vmstat and mpstat Examples for Linux Performance Monitoring

UNIX / Linux: 7 Practical PS Command Examples for Process Monitoring

ps -ef, ps –aux List Currently Running Processes
ps -u, ps –C List the Process based on the UID and Commands
ps -p, ps –ppid List the processes based on PIDs or PPIDs
ps –forest List Processes in a Hierarchy
ps –L List all threads for a particular process

 

15 Practical Linux Top Command Examples

Display Absolute Path of the Command and its Arguments – Press c

Linux TOP命令 按内存占用排序和按CPU占用排序

 

分类: LINUX 标签:

Linux iostat监测IO状态

2011年9月25日 admin 没有评论

命令格式

iostat用于输出CPU和磁盘I/O相关的统计信息.
命令格式:

iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ] | ALL ]

[ -p [ device | ALL ]  ] [ interval [ count ] ]

 

参数说明

-c 仅显示CPU统计信息.与-d选项互斥.

 -d 仅显示磁盘统计信息.与-c选项互斥.

 -k 以K为单位显示每秒的磁盘请求数,默认单位块.

 -p device | ALL

  与-x选项互斥,用于显示块设备及系统分区的统计信息.也可以在-p后指定一个设备名,如:

  # iostat -p hda

  或显示所有设备

  # iostat -p ALL

 -t    在输出数据时,打印搜集数据的时间.

 -V    打印版本号和帮助信息.

 -x    输出扩展信息

 

输出项说明

Blk_read   读入块的当总数.

Blk_wrtn   写入块的总数.

kB_read/s  每秒从驱动器读入的数据量,单位为K.

kB_wrtn/s  每秒向驱动器写入的数据量,单位为K.

kB_read    读入的数据总量,单位为K.

kB_wrtn    写入的数据总量,单位为K.

rrqm/s     将读入请求合并后,每秒发送到设备的读入请求数.wrqm/s     将写入请求合并后,每秒发送到设备的写入请求数.

r/s        每秒发送到设备的读入请求数.

w/s        每秒发送到设备的写入请求数.

rsec/s     每秒从设备读入的扇区数.

wsec/s     每秒向设备写入的扇区数.

rkB/s      每秒从设备读入的数据量,单位为K.wkB/s      每秒向设备写入的数据量,单位为K.

avgrq-sz   发送到设备的请求的平均大小,单位是扇区.

avgqu-sz   发送到设备的请求的平均队列长度.

await      I/O请求平均执行时间.包括发送请求和执行的时间.单位是毫秒.

svctm      发送到设备的I/O请求的平均执行时间.单位是毫秒.

%util      在I/O请求发送到设备期间,占用CPU时间的百分比.用于显示设备的带宽利用率.当这个值接近100%时,表示设备带宽已经占满.

1. 基本使用

$iostat -d -k 1 10

参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;1 10表示,数据显示每隔1秒刷新一次,共显示10次。

2. -x 参数

使用-x参数我们可以获得更多统计信息。

rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。

rsec/s:每秒读取的扇区数;wsec/:每秒写入的扇区数。r/s:The number of read requests that were issued to the device per second;w/s:The number of write requests that were issued to the device per second;

await:每一个IO请求的处理的平均时间(单位是毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。

%util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

3. -c 参数

iostat还可以用来获取cpu部分状态值:

4. 常见用法

$iostat -d -k 1 10 #查看TPS和吞吐量信息

iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)

iostat -c 1 10 #查看cpu状态

参考资料

iostat参数说明

Linux iostat监测IO状态

http://www.php-oa.com/2009/02/03/iostat.html

iostat来对linux硬盘IO性能进行了解

分类: LINUX 标签:

Linux column命令详解

2010年4月24日 admin 没有评论

column命令用于格式化列信息。

column命令的使用格式如下:

column [-tx] [-c columns] [-s sep] [file ...]

常用的选项

-c      Output is formatted for a display columns wide.

-s      Specify a set of characters to be used to delimit columns for the -t option.

-t      Determine the number of columns the input contains and create a table.  Columns are delimited with whitespace, by
        default, or with the characters supplied using the -s option.  Useful for pretty-printing displays.

-x      Fill columns before filling rows.

样例

$ mount | column -t

/dev/root                 on  /      type  ext3   (rw)
/proc                     on  /proc  type  proc   (rw)
/dev/mapper/lvmraid-home  on  /home  type  ext3   (rw,noatime)
分类: LINUX 标签:

Linux find命令详解

2010年1月23日 admin 没有评论

find的使用格式如下:

$ find <指定目录> <指定条件> <指定动作>

- <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。

- <指定条件>: 所要搜索的文件的特征。几种常用的条件包括:

+n    大于n,

-n     小于n

n      等于n

-amin n

查找系统中最后N分钟访问的文件

-atime n

查找系统中最后n*24小时访问的文件

-cmin n

查找系统中最后N分钟被改变状态的文件

-ctime n

查找系统中最后n*24小时被改变状态的文件

-empty

查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹

-group gname

查找系统中文件属于gnam文件组,并且指定组和ID的文件

-mmin n

       修改时间在n天的以内的.

-name 匹配文件名

-iname  不区分大小写匹配文件名

-size n[cwbk]

        文件大小小于(-),大于(+)n的文件。

         c-bytes,

         b- for 512-byte blocks (this is the default if no suffix is used)

         k    for Kilobytes (units of 1024 bytes)

 

- <指定动作>: 对搜索结果进行特定的处理。

如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。

使用实例

$ find . -name ‘my*’

搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件。

$ find . -iname ‘my*’

搜索当前目录(含子目录,以下同)中,所有文件名以my,My,mY,MY开头的文件。

$ find . -name ‘my*’ -ls

搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。

find /etc/rc.d -name ‘*crond’ -exec file {} \;
查找/etc/rc.d目录下面所有以crond结束的文件,并使用file指令查看其属性,注意:exec和file间是一个空格,file和{}间是一个空格,{}和\;之间是一个空格,\;是一个整体。

find . -mtime -5 -print

查几天以内的

find . -mtime +5 -print

查几天以外的

find -daystart -mtime 5

#从当天算起第5天被修改过的文件

find / -name ‘*.rmvb’ -exec chmod a-x {} \;

一次性修改rmvb文件的属性。

find / -user manager -exec rm {} \;

假如一个用户已经被删除,然后再删除非用户目录下的文件

find / -name core -print -exec rm -rf {} \;

上述命令表示由根目录开始查找名为core的文件或目录,然后显示在屏幕上,之后再将所查到的结果全部删除。最后提醒大家,在使用-exec参数时,必须以“\;”结尾,否则,系统会提示“find遗漏-exec参数”,命令将无法执行。

其他技巧

无错误查找

find / -name access_log 2>/dev/null

在Linux系统中Linux Find命令是大多数系统用户都可以使用的命令,并不是ROOT系统管理员的专利。但是普通用户使用Linux Find命令时也有可能遇到这样的问题,那就是Linux系统中系统管理员ROOT可以把某些文件目录设置成禁止访问模式。这样普通用户就没有权限用 Linux Find命令来查询这些目录或者文件。当普通用户使用Linux Find命令来查询这些文件目录是,往往会出现"Permissiondenied."(禁止访问)字样。系统将无法查询到你想要的文件。为了避免这样的错误,我们可是使用转移错误提示的方法尝试着查找文件,输入

参考资料

Linux的五个查找命令

Linux Find 命令使用详解

15 Practical Linux Find Command Examples

15 Awesome Linux Find Command Examples

Some Useful Unix File Finding Commands

分类: LINUX 标签:

转载:理解Load Average做好压力测试

2009年9月5日 admin 没有评论

最近刚接手的产品问题很多,主要是集中在产品设计和性能上,另外代码的可维护性也很差,这两周处理故障和问题的时间比较多,博客更新的也少了,下面的这篇文章是解释开发小组成员介绍并发编程的一些基本原理而收集到的一篇比较好的文章,作者以浅显易懂的方式介绍了比较复杂的概念。我觉得如果我们能够把一个复杂、抽象的概念如果能够通过生活中常见的场景来加以说明和描述出来,那么我们就真正理解了这个概念。

SIP的第四期结束了,因为控制策略的丰富,早先的的压力测试结果已经无法反映在高并发和高压力下SIP的运行状况,因此需要重新作压力测试。跟在测试人员后面做了快一周的压力测试,压力测试的报告也正式出炉,本来也就算是告一段落,但第二天测试人员说要修改报告,由于这次作压力测试的同学是第一次作,有一个指标没有注意,因此需要修改几个测试结果。那个没有注意的指标就是load average,他和我一样开始只是注意了CPU,内存的使用状况,而没有太注意这个指标,这个指标与他们通常的限制(10左右)有差别。重新测试的结果由于这个指标被要求压低,最后的报告显然不如原来的好看。自己也没有深入过压力测试,但是觉得不搞明白对将来机器配置和扩容都会有影响,因此去问了DBA和SA,得到的结果相差很大,看来不得不自己去找找问题的根本所在了。

通过下面的几个部分的了解,可以一步一步的找出Load Average在压力测试中真正的作用。

CPU时间片

为了提高程序执行效率,大家在很多应用中都采用了多线程模式,这样可以将原来的序列化执行变为并行执行,任务的分解以及并行执行能够极大地提高程序的运行效率。但这都是代码级别的表现,而硬件是如何支持的呢?那就要靠CPU的时间片模式来说明这一切。程序的任何指令的执行往往都会要竞争CPU这个最宝贵的资源,不论你的程序分成了多少个线程去执行不同的任务,他们都必须排队等待获取这个资源来计算和处理命令。先看看单CPU的情况。下面两图描述了时间片模式和非时间片模式下的线程执行的情况:

图 1 非时间片线程执行情况

图 2 非时间片线程执行情况

在图一中可以看到,任何线程如果都排队等待CPU资源的获取,那么所谓的多线程就没有任何实际意义。图二中的CPU Manager只是我虚拟的一个角色,由它来分配和管理CPU的使用状况,此时多线程将会在运行过程中都有机会得到CPU资源,也真正实现了在单CPU的情况下实现多线程并行处理。

多CPU的情况只是单CPU的扩展,当所有的CPU都满负荷运作的时候,就会对每一个CPU采用时间片的方式来提高效率。

在Linux的内核处理过程中,每一个进程默认会有一个固定的时间片来执行命令(默认为1/100秒),这段时间内进程被分配到CPU,然后独占使用。如果使用完,同时未到时间片的规定时间,那么就主动放弃CPU的占用,如果到时间片尚未完成工作,那么CPU的使用权也会被收回,进程将会被中断挂起等待下一个时间片。

CPU利用率和Load Average的区别

压力测试不仅需要对业务场景的并发用户等压力参数作模拟,同时也需要在压力测试过程中随时关注机器的性能情况,来确保压力测试的有效性。当服务器长期处于一种超负荷的情况下运行,所能接收的压力并不是我们所认为的可接受的压力。就好比项目经理在给一个人估工作量的时候,每天都让这个人工作12个小时,那么所制定的项目计划就不是一个合理的计划,那个人迟早会垮掉,而影响整体的项目进度。

CPU利用率在过去常常被我们这些外行认为是判断机器是否已经到了满负荷的一个标准,看到50%-60%的使用率就认为机器就已经压到了临界了。CPU利用率,顾名思义就是对于CPU的使用状况,这是对一个时间段内CPU使用状况的统计,通过这个指标可以看出在某一个时间段内CPU被占用的情况,如果被占用时间很高,那么就需要考虑CPU是否已经处于超负荷运作,长期超负荷运作对于机器本身来说是一种损害,因此必须将CPU的利用率控制在一定的比例下,以保证机器的正常运作。

Load Average是CPU的Load,它所包含的信息不是CPU的使用率状况,而是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息,也就是CPU使用队列的长度的统计信息。为什么要统计这个信息,这个信息的对于压力测试的影响究竟是怎么样的,那就通过一个类比来解释CPU利用率和Load Average的区别以及对于压力测试的指导意义。

我们将CPU就类比为电话亭,每一个进程都是一个需要打电话的人。现在一共有4个电话亭(就好比我们的机器有4核),有10个人需要打电话。现在使用电话的规则是管理员会按照顺序给每一个人轮流分配1分钟的使用电话时间,如果使用者在1分钟内使用完毕,那么可以立刻将电话使用权返还给管理员,如果到了1分钟电话使用者还没有使用完毕,那么需要重新排队,等待再次分配使用。

图 3 电话使用场景

上图中对于使用电话的用户又作了一次分类,1min的代表这些使用者占用电话时间小于等于1min,2min表示使用者占用电话时间小于等于2min,以此类推。根据电话使用规则,1min的用户只需要得到一次分配即可完成通话,而其他两类用户需要排队两次到三次。

电话的利用率 = sum (active use cpu time)/period

每一个分配到电话的使用者使用电话时间的总和去除以统计的时间段。这里需要注意的是是使用电话的时间总和(sum(active use cpu time)),这与占用时间的总和(sum(occupy cpu time))是有区别的。(例如一个用户得到了一分钟的使用权,在10秒钟内打了电话,然后去查询号码本花了20秒钟,再用剩下的30秒打了另一个电话,那么占用了电话1分钟,实际只是使用了40秒)

电话的Average Load体现的是在某一统计时间段内,所有使用电话的人加上等待电话分配的人一个平均统计。

电话利用率的统计能够反映的是电话被使用的情况,当电话长期处于被使用而没有的到足够的时间休息间歇,那么对于电话硬件来说是一种超负荷的运作,需要调整使用频度。而电话Average Load却从另一个角度来展现对于电话使用状态的描述,Average Load越高说明对于电话资源的竞争越激烈,电话资源比较短缺。对于资源的申请和维护其实也是需要很大的成本,所以在这种高Average Load的情况下电话资源的长期“热竞争”也是对于硬件的一种损害。

低利用率的情况下是否会有高Load Average的情况产生呢?理解占有时间和使用时间就可以知道,当分配时间片以后,是否使用完全取决于使用者,因此完全可能出现低利用率高Load Average的情况。由此来看,仅仅从CPU的使用率来判断CPU是否处于一种超负荷的工作状态还是不够的,必须结合Load Average来全局的看CPU的使用情况和申请情况。

所以回过头来再看测试部对于Load Average的要求,在我们机器为8个CPU的情况下,控制在10 Load左右,也就是每一个CPU正在处理一个请求,同时还有2个在等待处理。看了看网上很多人的介绍一般来说Load简单的计算就是2* CPU个数减去1-2左右(这个只是网上看来的,未必是一个标准)。

补充几点:

1.对于CPU利用率和CPU Load Average的结果来判断性能问题。首先低CPU利用率不表明CPU不是瓶颈,竞争CPU的队列长期保持较长也是CPU超负荷的一种表现。对于应用来说可能会去花时间在I/O,Socket等方面,那么可以考虑是否后这些硬件的速度影响了整体的效率。

这里最好的样板范例就是我在测试中发现的一个现象:SIP当前在处理过程中,为了提高处理效率,将控制策略以及计数信息都放置在Memcached Cache里面,当我将Memcached Cache配置扩容一倍以后,CPU的利用率以及Load都有所下降,其实也就是在处理任务的过程中,等待Socket的返回对于CPU的竞争也产生了影响。

2.未来多CPU编程的重要性。现在服务器的CPU都是多CPU了,我们的服务器处理能力已经不再按照摩尔定律来发展。就我上面提到的电话亭场景来看,对于三种不同时间需求的用户来说,采用不同的分配顺序,我们可看到的Load Average就会有不同。假设我们统计Load的时间段为2分钟,如果将电话分配的顺序按照:1min的用户,2min的用户,3min的用户来分配,那么我们的Load Average将会最低,采用其他顺序将会有不同的结果。所以未来的多CPU编程可以更好的提高CPU的利用率,让程序跑的更快。

以上所提到的内容未必都是很准确或者正确,如果有任何的偏差也请大家指出,可以纠正一些不清楚的概念。

分类: LINUX 标签:

《理解 Linux 的处理器负载均值》阅读笔记续

2009年8月29日 admin 没有评论

有位同事把《理解 Linux 的处理器负载均值(翻译)》群发给了公司的tech团队,同事们纷纷加以评论,下面是对其中经典内容的收集和整理,如果有同学看到下面的内容似曾相识的话,请不要奇怪:-)。

  • Google的工程师都知道, 如果Google面临同质竞争(导致upper line/广告收入的降低), Google最后的一个武器就是他们高效价廉的计算能力。Google自今年五月份以来公布关于其数据中心的技术细节, 其中包括他们高达80%的应用可以被GAE支持(动态部署), 免费冷却技术的大量使用, 极为优化的TPUE, 以及利用通用服务器(所以较为不易出现短板)来提高计算资源的平均利用率…..等项目, Google早已在2003年就开始有序地提高它的计算资源效率, 而这几个月公布的技术还是3-4年历史, 可见Google在计算资源效能的领先。
  • 如看到cpu iowait达到70-80%, 系统run的进程只有1-2个,而load达到几十或者上百。 这个明显是有资源堵塞了,比如磁盘啊,网络啊,增加再多的CPU资源也无效。再一个极端情况,我们看到系统load是1.x,机器有4个核,可程序设计的垃圾,单线程,它只吃一个核, 不加机器或者提高频率就无法解决。所以有时候单独看load,或者单独看cpu利用率都不能的得出准确的答案,系统优化
    和资源利用需要我们去持久的仔细分析。
  • iowait不能简单的理解就是磁盘IO,其他的如内存IO,网络IO都会涉及到iowait.就我们的系统而言,网络IO出现磁盘和网络,且用nas方式连接到存储的,很容易就出现高iowait,典型的代表就是image应用。
  • 还有合理的写磁盘,尽量使数据都压缩在同一block(操作系统)内,这需要对应用程序和操作系统同时做调整。
  • 根据实际经验,iowait 70%还能跑但挺吃力了,load高都是io等待引起的,有必要通过增加磁盘等途径降低io压力。
  • 多个磁盘并发操作来降低io等待时间。比如原来有两块盘来处理任务iowait很高,但是如果你增加到4块或6块盘并发操作,iowait是有一定的程度的下降的,具体下降多少还是要取决于io类型。转速是可以提高io速度,但是现在的单块普通硬盘极限值也就是170/s,oracle等数据库密集型io操作都是通过大量的磁盘来完成的。所以才会有热火朝天的ssd硬盘。
  • 对于磁盘来说,在转速一定的情况下,一块磁盘承受的IOPS是固定的,因为io wait主要在于磁头寻道的时间。所以简单点看IO wait,要不就增加磁盘数量(提高IOPS),要不就系统增加cache(减少IO),别无他法。
  • 对于CPU密集型的应用,可以很容易根据load值的大小决定是否需要增加CPU数量或者服务器数量。对于IO密集型的应用,如果系统load很高,cpu 利用率低,iowait非常高的话,建议修改程序架构(推荐,比如:引入cache机制等),或者升级存储设备(比如:利用SSD硬盘或者更高级别的存储)除了uptime外,top,  vmstat 等也是非常重要的系统性能诊断命令。
  • 应该更加关注应用的响应时间,注重通过性能优化等技术手段提升应用效率。加服务器虽然简单有效,但往往掩盖了软件本身的问题,而且潜在地造成了浪费。
  • 很多WEB类应用是不能充分利用系统资源的。所以会推行虚拟机,也就是在一台物理机上跑多个虚拟机,比较适合于对网络和DISK IO要求不太高的应用。
分类: LINUX 标签:

《理解 Linux 的处理器负载均值》阅读笔记

2009年8月5日 admin 没有评论

在之前的linux uptime命令详解这篇文章中提到了Load Average的概念,今天Gracecode.com上正好有了相关内容的翻译-《理解 Linux 的处理器负载均值(翻译)》,原文是Understanding Linux CPU Load – when should you be worriedGracecode.com描述地很清楚,举例很生动,也涉及了多核和多处理器的情况。下面的内容是阅读笔记。

  • 负荷 1.00 说明系统已经没有剩余的资源了。在实际情况中 ,有经验的系统管理员都会将这条线划在 0.70。
  • “需要进行调查法则”: 如果长期你的系统负载在 0.70 上下,那么你需要在事情变得更糟糕之前,花些时间了解其原因。
  • “现在就要修复法则”:1.00 。 如果你的服务器系统负载长期徘徊于 1.00,那么就应该马上解决这个问题。否则,你将半夜接到你上司的电话,这可不是件令人愉快的事情。
  • “有多少核心即为有多少负荷”法则: 在多核处理中,你的系统均值不应该高于处理器核心的总数量。
  • “核心的核心”法则: 核心分布在分别几个单个物理处理中并不重要,其实两颗四核的处理器 等于 四个双核处理器 等于 八个单处理器。所以,它应该有八个处理器内核。

 

分类: LINUX 标签:

linux watch命令详解

2009年7月24日 admin 没有评论

watch命令可以间断性地运行某个应用程序,并显示输出。

语法

watch  [-dhvt]  [-n <seconds>] [--differences[=cumulative]] [--help] [--interval=<seconds>] [--no-title] [--version] <com-mand>

参数选项

-n或—interval

    watch缺省每2秒运行一下程序,可以用-n或–interval来指定间隔的时间。

-d或–differences

用-d或–differences 选项watch 会高亮显示变化的区域。而—cumulative  选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。

-t 或–no-title

-t 或–no-title 选项会关闭watch命令在顶部的时间间隔、命令、当前时间的输出。

样例

watch –differences=cumulative uptime

watch -t –differences=cumulative uptime

相关资料

linux命令汇总

分类: LINUX 标签:

linux命令汇总

2009年7月23日 admin 没有评论

这是一篇linux 命令的提纲,记录了我对一些linux命令的学习心得,简单的将几个linux命令做了分类。

常用命令

用户、权限管理命令

系统命令

To Be continued……

分类: LINUX 标签:

linux uptime命令详解

2009年7月23日 admin 没有评论

uptime跟w命令很类似会输出系统当前的时间、已运行的时间、当前用户数、平均负载(Load Average)信息。

那么什么是系统平均负载呢?
系统平均负载被定义为在特定时间间隔内运行队列中的平均进程数。这些进程要么正在运行(正在使用CPU),或者可运行(等待CPU),如果一个进程满足以下条件则其就会位于运行队列中:

  • 它没有在等待I/O操作的结果
  • 它没有主动进入等待状态(也就是没有调用’wait’)
  • 没有被停止(例如:等待终止)

如果一台服务器有2个双核CPU,当Load Average 为4的时候说明机器已经被充分使用了。

样例

[root@www2 init.d]# uptime
7:51pm up 2 days, 5:43, 2 users, load average: 8.13, 5.90, 4.94
命令输出的最后内容表示在过去的1、5、15分钟内运行队列中的平均进程数量。
一般来说只要每个CPU的当前活动进程数不大于3那么系统的性能就是良好的,如果每个CPU的任务数大于5,那么就表示这台机器的性能有严重问题。对于上面的例子来说,假设系统有两个CPU,那么其每个CPU的当前任务数为:8.13/2=4.065。这表示该系统的性能是可以接受的。

虽然uptime命令的使用就这些内容了,可到底什么是Load Average?它和CPU Usage是什么关系?这些等以后的文章来揭晓吧!

参考资料

Linux 负载查询和uptime命令解释

What exactly is a load average?

《理解 Linux 的处理器负载均值》阅读笔记

相关资料

linux命令汇总

分类: LINUX 标签: