Linux系统命令查看cpu使用率率的几个命令

您现在的位置:&&>>&&>>&&>>&&>>&正文
LINUX下查看CPU使用率的命令
  mpstat可以显示每个CPU的运行状况,比如系统有4个CPU.我们可以看到:
  # mpstat CP ALL 1
  Linux 2.4.21-20.ELsmp (localhost.localdomain) 05/23/2006
  05:17:31 PM CPU %user %nice %system %idle intr/s
  05:17:32 PM all 0.00 0.00 3.19 96.53 13.27
  05:17:32 PM 0 0.00 0.00 0.00 100.00 0.00
  05:17:32 PM 1 1.12 0.00 12.73 86.15 13.27
  05:17:32 PM 2 0.00 0.00 0.00 100.00 0.00
  05:17:32 PM 3 0.00 0.00 0.00 100.00 0.00
  总结的说,CPU性能监控包含以下方面:
  检查系统的运行队列,确保每一个CPU的运行队列不大于3.
  确保CPU使用分布满足70/30原则(用户70%,系统30%)。
  如果系统时间过长,可能是因为频繁的调度和改变优先级。
  CPU Bound进程总是会被惩罚(降低优先级)而IO Bound进程总会被奖励(提高优先级)。
  4.prstat命令
  要显示系统上当前运行的进程和项目的各种统计信息,请使用带有-J选项的prstat命令:
%prstat -J
&&&&&&&&PID USERNAME&SIZE&&RSS STATE&PRI NICE&&&&&TIME&CPU PROCESS/NLWP
&21634 jtd&&&&&K cpu0&&&44&&&0&&0:00.00 0.3% prstat/1
&&324 root&&&&&&29M&&75M sleep&&59&&&0&&0:08.27 0.2% Xsun/1
&15497 jtd&&&&&&&48M&&41M sleep&&49&&&0&&0:08.26 0.1% adeptedit/1
&&328 root&&&&K sleep&&58&&&0&&0:00.00 0.0% mibiisa/11
&1979 jtd&&&&&K sleep&&49&&&0&&0:00.00 0.0% csh/1
&1977 jtd&&&&&K sleep&&49&&&0&&0:00.00 0.0% dtterm/1
&&192 root&&&&K sleep&&58&&&0&&0:00.36 0.0% automountd/5
&1845 jtd&&&&&&&24M&&22M sleep&&49&&&0&&0:00.29 0.0% dtmail/11
&1009 jtd&&&&&K sleep&&49&&&0&&0:00.59 0.0% dtwm/8
&&114 root&&&&K sleep&&58&&&0&&0:01.16 0.0% in.routed/1
&&180 daemon&&K sleep&&58&&&0&&0:00.00 0.0% statd/4
&&145 root&&&&K sleep&&58&&&0&&0:00.00 0.0% ypbind/1
&&181 root&&&&K sleep&&51&&&0&&0:00.00 0.0% lockd/1
&&173 root&&&&K sleep&&58&&&0&&0:00.00 0.0% inetd/1
&&135 root&&&&K sleep&&&0&&&0&&0:00.00 0.0% keyserv/4
PROJID&&&NPROC&SIZE&&RSS MEMORY&&&&&TIME&CPU PROJECT
&&&10&&&&&&52&400M&271M&&&68%&&0:11.45 0.4% booksite
&&&&0&&&&&&35&113M&129M&&&32%&&0:10.46 0.2% system
Total: 87 processes, 205 lwps, load averages: 0.05, 0.02, 0.02
  要显示系统上当前运行的进程和任务的各种统计信息,请使用带有-T选项的prstat命令:
%prstat -T
&&PID USERNAME&SIZE&&RSS STATE&PRI NICE&&&&&TIME&CPU PROCESS/NLWP
&23023 root&&&&&&26M&&20M sleep&&59&&&0&&0:03:18 0.6% Xsun/1
&23476 jtd&&&&&&&51M&&45M sleep&&49&&&0&&0:04:31 0.5% adeptedit/1
&23432 jtd&&&&&K sleep&&59&&&0&&0:00:00 0.1% dtterm/1
&28959 jtd&&&&&&&26M&&18M sleep&&49&&&0&&0:00:18 0.0% .netscape.bin/1
&23116 jtd&&&&&K sleep&&59&&&0&&0:00:27 0.0% dtwm/5
&29010 jtd&&&&&K cpu0&&&59&&&0&&0:00:00 0.0% prstat/1
&&200 root&&&&K sleep&&59&&&0&&0:00:00 0.0% lpsched/1
&&161 root&&&&K sleep&&59&&&0&&0:00:00 0.0% lockd/2
&&170 root&&&&K sleep&&59&&&0&&0:03:10 0.0% automountd/3
&&132 root&&&&K sleep&&59&&&0&&0:00:00 0.0% ypbind/1
&&162 daemon&&K sleep&&59&&&0&&0:00:00 0.0% statd/2
&&146 root&&&&K sleep&&59&&&0&&0:00:00 0.0% inetd/1
&&122 root&&&&K sleep&&59&&&0&&0:00:00 0.0% keyserv/2
&&119 root&&&&K sleep&&59&&&0&&0:00:02 0.0% rpcbind/1
&&104 root&&&&K sleep&&59&&&0&&0:00:03 0.0% in.rdisc/1
TASKID&&&NPROC&SIZE&&RSS MEMORY&&&&&TIME&CPU PROJECT&&&&&&&&&&&&&&&&&&&&
&&222&&&&&&30&229M&161M&&&44%&&0:05:54 0.6% group.staff&&&&&&&&&&&&&&&&
&&223&&&&&&&1&&26M&&20M&&5.3%&&0:03:18 0.6% group.staff&&&&&&&&&&&&&&&&
&&&12&&&&&&&1&&61M&&33M&&8.9%&&0:00:31 0.0% group.staff&&&&&&&&&&&&&&&&
&&&&1&&&&&&33&&85M&&53M&&&14%&&0:03:33 0.0% system&&&&&&&&&&&&&&&&&&&&&
Total: 65 processes, 154 lwps, load averages: 0.04, 0.05, 0.06&&&&&&
  -J和-T选项不能一起使用。&&&[2]&
【责编:peter】
?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]
相关产品和培训
 友情推荐链接
 专题推荐
 ? ? ? ? ? ? ? ? ? ?
 今日更新
?&?&?&?&?&?&?&?&?&?&
 认证培训
 频道精选
 Windows频道导航
                      Linux 系统性能监控命令详解 - argb - 博客园
随笔 - 178, 文章 - 1, 评论 - 16, 引用 - 0
系统负载过重时往往会引起其它子系统的问题,比如:-&大量的读入内存的IO请求(page-in IO)会用完内存队列;-&大量的网络流量会造成CPU的过载;-&CPU的高使用率可能正在处理空闲内存队列;-&大量的磁盘读写会消耗CPU和IO资源。
我们测试的系统,总的来说可分为二类:第一,IO Bound,这类系统会大量消耗内存和底层的存储系统,它并不消耗过多的CPU和网络资源(除非系统是网络的)。IO bound系统消耗CPU资源用来接受IO请求,然后会进入休眠状态。数据库通常被认为是IO bound系统。第二,CPU Bound,这类系统需要消耗大量的CPU资源。他们往往进行大量的数学计算。高吞吐量的Web server,Mail Server通常被认为是CPU Bound系统。
在性能测试中首先要做的是建立基线(Baseline),这样后续的调整才会有一个参考标准。值得注意的是,在测试基线的时候,一定要保证系统工作在正常的状态下。
常用的监视工具有:mpstat,vmstat,top。
mpstat是 Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。下面只介绍 mpstat与CPU相关的参数,mpstat的语法如下:
mpstat [-P {cpu|ALL}] [internal [count]]
参数的含义如下:
表示监控哪个CPU, cpu在[0,cpu个数-1]中取值
相邻的两次采样的间隔时间
采样的次数,count只能和delay一起使用
当没有参数时,mpstat则显示系统启动以后所有信息的平均值。有interval时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个interval时间段的平均信息。与CPU有关的输出的含义如下:
在internal时间段里,用户态的CPU时间(%),不包含 nice值为负进程
usr/total*100
在internal时间段里,nice值为负进程的CPU时间(%)
nice/total*100
在internal时间段里,核心时间(%)
system/total*100
在internal时间段里,硬盘IO等待时间(%)
iowait/total*100
在internal时间段里,硬中断时间(%)
irq/total*100
在internal时间段里,软中断时间(%)
softirq/total*100
在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间 (%)
idle/total*100
在internal时间段里,每秒CPU接收的中断的次数
intr/total*100
CPU总的工作时间:total_cur = user + system + nice + idle + iowait + irq + softirq
total_pre = pre_user + pre_system + pre_nice + pre_idle + pre_iowait + pre_irq + pre_softirq
user = user_cur & user_pre
total = total_cur - total_pre
其中_cur 表示当前值,_pre表示interval时间前的值。上表中的所有值可取到两位小数点。
范例1 average mode (粗略信息)
当mpstat不带参数时,输出为从系统启动以来的平均值。
[work@jx-testing-ps1933. ~]$ mpstatLinux 2.6.9-52bs (jx-testing-ps1933.) 07/30/200810:06:32 AM CPU %user %nice %system %iowait %irq %soft %idle intr/s10:06:32 AM all 0.71 0.00 0.19 0.01 0.00 0.04 99.05 271.64
范例2 每2秒产生了4个处理器的统计数据报告
下面的命令可以每2秒产生了4个处理器的统计数据报告,一共产生三个interval 的信息,然后再给出这三个interval的平均信息。默认时,输出是按照CPU 号排序。第一个行给出了从系统引导以来的所有活跃数据。接下来每行对应一个处理器的活跃状态。
[work@jx-testing-ps1933. ~]$ mpstat -P ALL 2 3Linux 2.6.9-52bs (jx-testing-ps1933.) 07/30/200810:11:04 AM CPU %user %nice %system %iowait %irq %soft %idle intr/s10:11:06 AM all 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1013.1310:11:06 AM 0 0.00 0.00 0.00 0.00 0.00 0.00 100.00 253.5410:11:06 AM 1 0.00 0.00 0.00 0.00 0.00 0.00 100.00 252.5310:11:06 AM 2 0.00 0.00 0.00 0.00 0.00 0.00 100.00 254.5510:11:06 AM 3 0.00 0.00 0.00 0.00 0.00 0.00 100.00 252.5310:11:06 AM CPU %user %nice %system %iowait %irq %soft %idle intr/s10:11:08 AM all 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1015.1510:11:08 AM 0 0.00 0.00 0.00 0.00 0.00 0.00 100.00 252.5310:11:08 AM 1 0.00 0.00 0.00 0.00 0.00 0.00 100.00 253.0310:11:08 AM 2 0.00 0.00 0.00 0.00 0.00 0.00 99.49 257.5810:11:08 AM 3 0.00 0.00 0.00 0.00 0.00 0.00 100.00 252.5310:11:08 AM CPU %user %nice %system %iowait %irq %soft %idle intr/s10:11:10 AM all 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1016.1610:11:10 AM 0 0.00 0.00 0.00 0.00 0.00 0.00 100.00 252.5310:11:10 AM 1 0.00 0.00 0.00 0.00 0.00 0.00 100.00 252.5310:11:10 AM 2 0.00 0.00 0.00 0.00 0.00 0.00 100.00 258.0810:11:10 AM 3 0.00 0.00 0.00 0.00 0.00 0.00 100.00 252.53Average: CPU %user %nice %system %iowait %irq %soft %idle intr/sAverage: all 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1014.81Average: 0 0.00 0.00 0.00 0.00 0.00 0.00 100.00 252.86Average: 1 0.00 0.00 0.00 0.00 0.00 0.00 100.00 252.69Average: 2 0.00 0.00 0.00 0.00 0.00 0.00 99.83 256.73Average: 3 0.00 0.00 0.00 0.00 0.00 0.00 100.00 252.53
vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写, 是实时系统监控工具。该命令通过使用knlist子程序和/dev/kmen伪设备驱动器访问这些数据,输出信息直接打印在屏幕。vmstat反馈的与CPU相关的信息包括:(1)多少任务在运行(2)CPU使用的情况(3)CPU收到多少中断(4)发生多少上下文切换
下面只介绍 Vmstat与CPU相关的参数
vmstat的语法如下:
vmstat [delay [count]]
参数的含义如下:
相邻的两次采样的间隔时间
采样的次数,count只能和delay一起使用
当没有参数时,vmstat则显示系统启动以后所有信息的平均值。有delay时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个delay时间段的平均信息。当系统有多个CPU时,输出为所有CPU的平均值。
在internal时间段里,运行队列里等待CPU的任务(任务)的个数,即不包含vmstat进程
procs_running-1
在internal时间段里,被资源阻塞的任务数(I/0,页面调度,等等.)通常情况下是接近0的
procs_blocked
在internal时间段里,用户态的CPU时间(%),包含 nice值为负进程
(user+nice)/total*100
在internal时间段里,核心态的CPU时间(%)
(system+irq+softirq)/total*100
在internal时间段里,cpu空闲的时间,不包括等待i/o的时间(%)
idle/total*100
在internal时间段里,等待i/o的时间(%)
iowait/total*100
在internal时间段里,每秒发生中断的次数
intr/interval
在internal时间段里,每秒上下文切换的次数,即每秒内核任务交换的次数
ctxt/interval
total_cur = user + system + nice + idle + iowait + irq + softirq
total_pre = pre_user + pre_system + pre_nice + pre_idle + pre_iowait + pre_irq + pre_softirq
total = total_cur - total_pre
iostat [-t] [-c] [interval [count]]
参数的含义如下:
表示输出采用的时间
表示只显示CPU的信息
相邻的两次采样的间隔时间
采样的次数,count只能和delay一起使用
当没有参数时,iostat则显示系统启动以后所有信息的平均值。与CPU有关的输出的含义
在internal时间段里,用户态的CPU时间(%) ,不包含 nice值为负进程
usr/total*100
在internal时间段里,nice值为负进程的CPU时间(%)
nice/total*100
在internal时间段里,核心时间(%)
(system+irq+softirq)/total*100
在internal时间段里,硬盘IO等待时间(%)
iowait/total*100
在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间 (%)
idle/total*100
total_cur = user + system + nice + idle + iowait + irq + softirq
total_pre = pre_user + pre_system + pre_nice + pre_idle + pre_iowait + pre_irq + pre_softirq
total = total_cur - total_pre
有interval时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个interval时间段的平均信息。
[work@jx-testing-ps1933. ~]$ iostat -c 1Linux 2.6.9-52bs (jx-testing-ps1933.) 07/30/2008avg-cpu: %user %nice %sys %iowait %idle0.71 0.00 0.22 0.01 99.05avg-cpu: %user %nice %sys %iowait %idle0.00 0.00 0.00 0.00 100.00avg-cpu: %user %nice %sys %iowait %idle0.00 0.00 0.00 0.00 100.00
sar是System Activity Reporter(系统活跃情况报告)的缩写。顾名思义,sar工具将对系统当前的状态进行采样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统采样,获得大量的采样数据;采样数据和分析的结果都可以存入文件,所需的负载很小。这些是检查历史数据和一些近来的系统事件。sar 用于检查的性能数据类似于vmstat, mpstat和 iostat的显示。 sar的数据是一段时间保存的内容,因此可以察看过去的信息。 lastcomm可以现在系统最近被执行的命令。这些可以用在系统审计中。sar可以在*BSD和Linux中找到,它给用户在系统审计中更多的选项来收集信息。
在反馈CPU整体信息方面,sar 反馈的与CPU相关的信息包括:(1)多少任务在运行(2)CPU使用的情况(3)CPU收到多少中断(4)发生多少上下文切换
sar的语法如下:
sar [-options] [interval [count]]
其中,internal是两次采样的间隔时间;count是指采样的次数;与CPU相关的options有:
参数的含义如下:
表示输出采用的时间
-e hh:mm:ss
表示只显示CPU的信息
相邻的两次采样的间隔时间
显示在采样的时刻,可运行队列的任务的个数,以及系统平均负载
CPU 使用的情况,报告了cpu的用户态,系统态,等待I/O和空闲时间上的百分比。
每秒上下文交换率
filename 将结果放在文件里
filename 表示从file文件中取出数据,如果没有指定-f file,则从标准数据文件
首先在后台运行一个创建2GB文件的任务,然后输入:&sar -c -q -w 3 2&,表示每3秒采样一次,采样两次,可以看到系统有58个任务,但是在10时47分01秒时有一个任务在运行,在下一次采样10时47分04秒时,没有任务在运行。
[work@jx-testing-ps1933. ~]$ dd if=/dev/zero of=./1.img bs=2048 count=1000000&&[1] 22332[work@jx-testing-ps1933. ~]$ sar -c -q -w -I SUM 3 2&Linux 2.6.9-52bs (jx-testing-ps1933.) 07/30/2008 records in records out10:46:58 AM proc/s10:47:01 AM 0.0010:46:58 AM cswch/s10:47:01 AM 166.4410:46:58 AM INTR intr/s10:47:01 AM sum 1172.1510:46:58 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-1510:47:01 AM 1 58 0.04 0.01 0.0010:47:01 AM proc/s10:47:04 AM 0.0010:47:01 AM cswch/s10:47:04 AM 57.9110:47:01 AM INTR intr/s10:47:04 AM sum 1142.0910:47:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-1510:47:04 AM 0 58 0.11 0.03 0.01Average: proc/sAverage: 0.00Average: cswch/sAverage: 112.27Average: INTR intr/sAverage: sum 1157.14Average: runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15Average: 0 58 0.07 0.02 0.01
与CPU有关的输出的含义
在internal时间段里,每秒上下文切换率
processes/total*100
在internal时间段里,每秒上下文切换率
ctxt/total*100
在internal时间段里,每秒CPU接收的中断的次数
idle/total*100
采样时,运行队列中任务的个数,不包括vmstat 进程。
procs_running-1
采样时,系统中活跃的任务的个数
nr_threads
采样的前一秒钟系统的负载(%)
采样的5秒钟系统的负载(%)
采样的前15秒钟系统的负载(%)
下面输入命令&sar 3 2&,表示每隔3秒显示CPU的状态,共显示2次。此时创建2GB文件的任务还在后台进行。
[work@jx-testing-ps1933. ~]$ sar 3 2Linux 2.6.9-52bs (jx-testing-ps1933.) 07/30/2008 records in records out10:59:22 AM CPU %user %nice %system %iowait %idle10:59:25 AM all 0.76 0.00 18.01 29.46 51.7710:59:28 AM all 0.00 0.00 1.69 19.81 78.50Average: all 0.38 0.00 9.86 24.64 65.12
与CPU有关的输出的含义
在internal时间段里,用户态的CPU时间(%) ,不包含 nice值为负进程
usr/total*100
在internal时间段里,nice值为负进程的CPU时间(%)
nice/total*100
在internal时间段里,核心时间(%)
(system+irq+softirq)/total*100
在internal时间段里,硬盘IO等待时间(%)
iowait/total*100
在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间 (%)
irq/total*100
首先说说虚拟内存和物理内存:
虚拟内存就是采用硬盘来对物理内存进行扩展,将暂时不用的内存页写到硬盘上而腾出更多的物理内存让有需要的进程来用。当这些内存页需要用的时候在从硬盘读回内存。这一切对于用户来说是透明的。通常在Linux系统说,虚拟内存就是swap分区。在X86系统上虚拟内存被分为大小为4K的页。
每一个进程启动时都会向系统申请虚拟内存(VSZ),内核同意或者拒就请求。当程序真正用到内存时,系统就它映射到物理内存。RSS表示程序所占的物理内存的大小。用ps命令我们可以看到进程占用的VSZ和RSS。
[work@jx-testing-ps1933. ~]$ ps -auxUSER PID %CPU %MEM VSZ&&TTY STAT START TIME COMMANDroot 1 0.0 0.0
init [3]&root 2 0.0 0.0 0 0 ? S
[migration/0]root 3 0.0 0.0 0 0 ? SN
[ksoftirqd/0]root 4 0.0 0.0 0 0 ? S
[migration/1]root 5 0.0 0.0 0 0 ? SN
[ksoftirqd/1]root 6 0.0 0.0 0 0 ? S
[migration/2]root 7 0.0 0.0 0 0 ? SN
[ksoftirqd/2]root 8 0.0 0.0 0 0 ? S
[migration/3]root 9 0.0 0.0 0 0 ? SN
[ksoftirqd/3]
在命令行使用&Free&命令可以监控内存使用情况
[work@tc-testing-ps5006. ~]$ freetotal used free shared buffers cachedMem:
0 6-/+ buffers/cache: 3924Swap: 6 1021740
输出的含义
不显示核心使用的物理内存(通常大约1MB)
被使用的内存总额(第二行不计缓冲)
全部没使用的内存
多个进程共享的内存总额
显示磁盘缓存的当前大小
对对换空间,显示的信息类似上面。如果这行为全0,那么没使用对换空间
在缺省的状态下,free命令以千字节(也就是1024字节为单位)来显示内存使用情况。可以使用&h参数以字节为单位显示内存使用情况,或者可以使用&m参数以兆字节为单位显示内存使用情况。还可以通过&s参数使用命令来不间断地监视内存使用情况。
使甩vmstat命令监视虚拟内存使用情况
[work@jx-testing-ps1933. ~]$ ps -auxUSER PID %CPU %MEM VSZ&&TTY STAT START TIME COMMANDroot 1 0.0 0.0
init [3]&root 2 0.0 0.0 0 0 ? S
[migration/0]root 3 0.0 0.0 0 0 ? SN
[ksoftirqd/0]root 4 0.0 0.0 0 0 ? S
[migration/1]root 5 0.0 0.0 0 0 ? SN
[ksoftirqd/1]root 6 0.0 0.0 0 0 ? S
[migration/2]root 7 0.0 0.0 0 0 ? SN
[ksoftirqd/2]root 8 0.0 0.0 0 0 ? S
[migration/3]root 9 0.0 0.0 0 0 ? SN
[ksoftirqd/3]
与内存和IO相关的参数含义
现时可用的交换内存(单位KB)
空闲的内存(单位KB)
缓冲去中的内存数(单位:KB)
被用来做为高速缓存的内存数(单位:KB)
从磁盘交换到内存的交换页数量,单位:KB/秒
从内存交换到磁盘的交换页数量,单位:KB/秒
发送到块设备的块数,单位:块/秒
从块设备接收到的块数,单位:块/秒
监控IO的常用命令为iostat
[work@jx-testing-ps1933. ~]$ iostat -xLinux 2.6.9-52bs (jx-testing-ps1933.) 07/30/2008avg-cpu: %user %nice %sys %iowait %idle0.71 0.00 0.22 0.01 99.05Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %utilsda 0.01 0.26 0.40 1.01 50.25 152.31 25.12 76.15 144.46 0.02 12.24 0.65 0.09
io相关的参数含义
每秒进行 merge 的读操作数目
每秒进行 merge 的写操作数目
每秒完成的读 I/O 设备次数
每秒完成的写 I/O 设备次数
每秒读扇区数
每秒写扇区数
每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节
每秒写K字节数。是 wsect/s 的一半
平均每次设备I/O操作的数据大小 (扇区)
平均I/O队列长度
平均每次设备I/O操作的等待时间 (毫秒)
平均每次设备I/O操作的服务时间 (毫秒)
一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的
网络是所有子系统中最难监控的了。首先是由于网络是抽象的,更重要的是许多影响网络的因素并不在我们的控制范围之内。这些因素包括,延迟、冲突、阻塞等等。
由于网络监控中,需要查看许多设备的状态和参数,需要root权限才可以,所以就不在这里进行介绍了。
LINUX进程内存占用查看方法
(1)top可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:$ top -u oracle(2)pmap可以根据进程查看进程相关信息占用的内存情况,(进程号可以通过ps查看)如下所示:$ pmap -d 14596(3)ps如下例所示:$ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' 其中rsz是是实际内存$ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep oracle | sort -nrk5其中rsz为实际内存,上例实现按内存排序,由大到小转载 - LINUX下查看CPU使用率的命令 -
- ITeye技术网站
博客分类:
几个常用的命令,一些不错的解释
http://blog.csdn.net/wengpingbo/article/details/6302058
使用权限:所有使用者
使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
说明:即时显示process的动态
d :改变显示的更新速度,或是在交谈式指令列( interactive command)按s
q :没有任何延迟的显示速度,如果使用者是有superuser的权限,则top将会以最高的优先序执行
c :切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S :累积模式,会将己完成或消失的子行程( dead child process )的CPU time累积起来
s :安全模式,将交谈式指令取消,避免潜在的危机
i :不显示任何闲置(idle)或无用(zombie)的行程
n :更新的次数,完成后将会退出top
b :批次档模式,搭配"n"参数一起使用,可以用来将top的结果输出到档案内
显示更新十次后退出;
使用者将不能利用交谈式指令来对行程下命令:
将更新显示二次的结果输入到名称为top.log的档案里:
top -n 2 -b & top.log
另附一个命令简介 traceroutewindows tracert两个命令相当,跟踪网络路由
正如我们之前讨论的任何系统的性能比较都是基于基线的,并且监控CPU的性能就是以上3点,运行队列、CPU使用率和上下文切换。以下是一些对于CPU很普遍的性能要求:
1.对于每一个CPU来说运行队列不要超过3,例如,如果是双核CPU就不要超过6;
2.如果CPU在满负荷运行,应该符合下列分布,
a) User Time:65%~70%
b) System Time:30%~35%
c) Idle:0%~5%
对于上下文切换要结合CPU使用率来看,如果CPU使用满足上述分布,大量的上下文切换也是可以接受的。
常用的监视工具有:vmstat, top,dstat和mpstat.
# vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 5 26 7 14 4 1 95 0
r表示运行队列的大小,
b表示由于IO等待而block的线程数量,
in表示中断的数量,
cs表示上下文切换的数量,
us表示用户CPU时间,
sys表示系统CPU时间,
wa表示由于IO等待而是CPU处于idle状态的时间,
id表示CPU处于idle状态的总时间。
dstat可以给出每一个设备产生的中断数:
# dstat -cip 1
----total-cpu-usage---- ----interrupts--- ---procs---
usr sys idl wai hiq siq| 15 169 185 |run blk new
6 1 91 2 0 0| 12 0 13
1 0 99 0 0 0| 0
0 0 100 0 0 0| 18 0
0 0 100 0 0 0| 0
我们可以看到这里有3个设备号15,169和185.设备名和设备号的关系我们可以参考文件/proc/interrupts,这里185代表网卡eth1.
# cat /proc/interrupts
IO-APIC-edge timer
6: 5 IO-APIC-edge floppy
7: 0 IO-APIC-edge parport0
8: 1 IO-APIC-edge rtc
9: 1 IO-APIC-level acpi
14: 6011913 IO-APIC-edge ide0
IO-APIC-edge ide1
169: 26 IO-APIC-level Intel 82801BA-ICH2
IO-APIC-level eth1
193: 0 IO-APIC-level uhci_hcd:usb1
mpstat可以显示每个CPU的运行状况,比如系统有4个CPU。我们可以看到:
# mpstat –P ALL 1
Linux 2.4.21-20.ELsmp (localhost.localdomain) 05/23/2006
05:17:31 PM CPU %user %nice %system %idle intr/s
05:17:32 PM all 0.00 0.00 3.19 96.53 13.27
05:17:32 PM 0 0.00 0.00 0.00 100.00 0.00
05:17:32 PM 1 1.12 0.00 12.73 86.15 13.27
05:17:32 PM 2 0.00 0.00 0.00 100.00 0.00
05:17:32 PM 3 0.00 0.00 0.00 100.00 0.00
总结的说,CPU性能监控包含以下方面:
检查系统的运行队列,确保每一个CPU的运行队列不大于3.
确保CPU使用分布满足70/30原则(用户70%,系统30%)。
如果系统时间过长,可能是因为频繁的调度和改变优先级。
CPU Bound进程总是会被惩罚(降低优先级)而IO Bound进程总会被奖励(提高优先级)。
4.prstat命令
要显示系统上当前运行的进程和项目的各种统计信息,请使用带有-J选项的prstat命令:
%prstat -J
PID USERNAME SIZE
RSS STATE PRI NICE
TIME CPU PROCESS/NLWP
0:00.00 0.3% prstat/1
0:08.27 0.2% Xsun/1
0:08.26 0.1% adeptedit/1
0:00.00 0.0% mibiisa/11
0:00.00 0.0% csh/1
0:00.00 0.0% dtterm/1
0:00.36 0.0% automountd/5
0:00.29 0.0% dtmail/11
0:00.59 0.0% dtwm/8
0:01.16 0.0% in.routed/1
180 daemon
0:00.00 0.0% statd/4
0:00.00 0.0% ypbind/1
0:00.00 0.0% lockd/1
0:00.00 0.0% inetd/1
0:00.00 0.0% keyserv/4
NPROC SIZE
RSS MEMORY
TIME CPU PROJECT
52 400M 271M
0:11.45 0.4% booksite
35 113M 129M
0:10.46 0.2% system
Total: 87 processes, 205 lwps, load averages: 0.05, 0.02, 0.02
要显示系统上当前运行的进程和任务的各种统计信息,请使用带有-T选项的prstat命令:
%prstat -T
PID USERNAME SIZE
RSS STATE PRI NICE
TIME CPU PROCESS/NLWP
23023 root
0:03:18 0.6% Xsun/1
0:04:31 0.5% adeptedit/1
0:00:00 0.1% dtterm/1
0:00:18 0.0% .netscape.bin/1
0:00:27 0.0% dtwm/5
0:00:00 0.0% prstat/1
0:00:00 0.0% lpsched/1
0:00:00 0.0% lockd/2
0:03:10 0.0% automountd/3
0:00:00 0.0% ypbind/1
162 daemon
0:00:00 0.0% statd/2
0:00:00 0.0% inetd/1
0:00:00 0.0% keyserv/2
0:00:02 0.0% rpcbind/1
0:00:03 0.0% in.rdisc/1
NPROC SIZE
RSS MEMORY
TIME CPU PROJECT
30 229M 161M
0:05:54 0.6% group.staff
0:03:18 0.6% group.staff
0:00:31 0.0% group.staff
0:03:33 0.0% system
Total: 65 processes, 154 lwps, load averages: 0.04, 0.05, 0.06
-J和-T选项不能一起使用。
jiayanjujyj
浏览: 132412 次
来自: 北京
一点帮助没有
把源代码贴出来
你安装软件的习惯都不指定安装目录的吗? 通过这tar.gz包安 ...
加油,好好努力下,也好好总结下原因。
4)要多写技术博客,只有自己真正掌握的才能完全的写出来。这个是 ...
ansjsun 写道加油吧..没事...来来去去的...这行就 ...

我要回帖

更多关于 windows命令cpu使用率 的文章

 

随机推荐