linux查看linux 内存 cpu使用率率和内存并写入txt文件

用户名:zouliuyun
文章数:53
访问量:9021
注册日期:
阅读量:1297
阅读量:3317
阅读量:442359
阅读量:1128511
51CTO推荐博文
cat&/proc/meminfo
cat&/proc/cpuinfo
[root@centerlisdb&proc]#&dmidecode&|grep&-A16&"Memory&Device"&|&more&[object&Object]&
======================================================================================================================================================一般我们查看系统性能主要是在以下几个方面1.用户使用CPU情况 展现为 %user2.系统使用CPU情况 展现为 %sys3.wio或iowait&&&&&展现为 %iowait 进程由于等待磁盘IO而使CPU处于空闲状态的比率4.CPU的空闲率5.CPU上下文的交换的比率,也有说明为CPU上下文的切换。即内存和寄存器中数据的切换6.nice 这个还不是很明白是啥意思7.real-time 还是未知8.运行队列的长度9.平均负载常见用法:top -d 3&&&&//每三秒刷新一次数据 默认是每5秒刷新一次数据Ctrl+L&&&&&&//擦除并且重写屏幕。概念详解:load average:&&&可以理解为每秒钟CPU等待运行的进程个数.&&&在Linux系统中,sar -q、uptime、w、top等命令都会有系统平均负载load average的输出,那么什么是系统平均负载呢?&&&系统平均负载被定义为在特定时间间隔内运行队列中的平均任务数。如果一个进程满足以下条件则其就会位于运行队列中:&&&&&- 它没有在等待I/O操作的结果&&&&&- 它没有主动进入等待状态(也就是没有调用'wait')&&&&&- 没有被停止(例如:等待终止)&二 常用命令1.mpstat2.iostat3.vmstat4.sar三命令详解1. mpstat -P ALL 5&&&&//需要注意的P和ALL一定要大写17时22分24秒&&CPU&&&%user&&&%nice&&&&%sys&%iowait&&&&%irq&&&%soft&&%steal&&&%idle&&&&intr/s
17时22分29秒&&all&&&&0.30&&&&0.00&&&&0.10&&&&0.67&&&&0.02&&&&0.07&&&&0.00&&&98.83&&&&821.40
17时22分29秒&&&&0&&&&1.00&&&&0.00&&&&0.60&&&&1.00&&&&0.20&&&&0.60&&&&0.00&&&96.60&&&&560.00
17时22分29秒&&&&1&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&100.20&&&&&&0.00
17时22分29秒&&&&2&&&&0.60&&&&0.00&&&&0.20&&&&0.20&&&&0.00&&&&0.20&&&&0.00&&&99.00&&&&250.20
17时22分29秒&&&&3&&&&0.00&&&&0.00&&&&0.00&&&&4.00&&&&0.00&&&&0.00&&&&0.00&&&96.00&&&&&11.20
17时22分29秒&&&&4&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&100.20&&&&&&0.00
17时22分29秒&&&&5&&&&0.80&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&&99.20&&&&&&0.00
17时22分29秒&&&&6&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&100.00&&&&&&0.00
17时22分29秒&&&&7&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&&&0.00&&100.00&&&&&&0.00上面信息我们可以看出,有8个CPU。%user :在internal时间段里,即为用户态的CPU时间,及登录用户所消耗的CPU时间比。%sys&&:在internal时间段里,负进程消耗的CPU时间,占所有CPU的百分比%nice :优先进程占用时间%iowait:在internal时间段里,所有未等待磁盘IO操作进程占CPU的百分比%irq&&: 这个还是未知%soft : 在internal时间段里,软中断时间(%) softirq/total*100%idle : 在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间 (%)intr/s: 在internal时间段里,每秒CPU接收的中断的次数&2.iostat 主要是为了查看磁盘IOLinux&2.6.16.46-0.12-smp&(iread-85)&&&&&03/29/2010
avg-cpu:&&%user&&&%nice&%system&%iowait&&%steal&&&%idle
&&&&&&&&&&&9.47&&&&0.00&&&&1.59&&&&1.27&&&&0.00&&&86.67
Device:&&&&&&&&&&&&tps&&&Blk_read/s&&&Blk_wrtn/s&&&Blk_read&&&Blk_wrtn
sda&&&&&&&&&&&&&&15.46&&&&&&&114.45&&&&&&&401.22&&&5576936参数详解:avg-cpu中参数不做过多解释,详细可见其他命令,类似。rrqm/s:&&&每秒进行 merge 的读操作数目。即 delta(rmerge)/swrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/sr/s:&&&&&&&&&&&每秒完成的读 I/O 设备次数。即 delta(rio)/sw/s:&&&&&&&&&每秒完成的写 I/O 设备次数。即 delta(wio)/srsec/s:&&&&每秒读扇区数。即 delta(rsect)/swsec/s: 每秒写扇区数。即 delta(wsect)/srkB/s:&&&&&每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)wkB/s:&&&&每秒写K字节数。是 wsect/s 的一半。(需要计算)avgrq-sz:平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)avgqu-sz:平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。await:&&&&平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)%util:&&&&&一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。idle小于70% IO压力就较大了,一般读取速度有较多的wait.同时可以结合vmstat 查看查看b参数(等待资源的进程数)和wa参数(IO等待所占用的CPU时间的百分比,高过30%时IO压力高)&#&iostat&-x&1
avg-cpu:&%user&%nice&%sys&%idle
16.24&0.00&4.31&79.44
Device:&rrqm/s&wrqm/s&r/s&w/s&rsec/s&wsec/s&rkB/s&wkB/s&avgrq-sz&avgqu-sz&await&svctm&%util
/dev/cciss/c0d0
0.00&44.90&1.02&27.55&8.16&579.59&4.08&289.80&20.57&22.35&78.21&5.00&14.29
/dev/cciss/c0d0p1
0.00&44.90&1.02&27.55&8.16&579.59&4.08&289.80&20.57&22.35&78.21&5.00&14.29
/dev/cciss/c0d0p2
0.00&0.00&0.00&0.00&0.00&0.00&0.00&0.00&0.00&0.00&0.00&0.00&0.00上面的 iostat 输出表明秒有 28.57 次设备 I/O 操作: 总IO(io)/s = r/s(读) +w/s(写) = 1.02+27.55 = 28.57 (次/秒) 其中写操作占了主体 (w:r = 27:1)。平均每次设备 I/O 操作只需要 5ms 就可以完成,但每个 I/O 请求却需要等上 78ms,为什么? 因为发出的 I/O 请求太多 (每秒钟约 29 个),假设这些请求是同时发出的,那么平均等待时间可以这样计算:平均等待时间 = 单个 I/O 服务时间 * ( 1 + 2 + ... + 请求总数-1) / 请求总数应用到上面的例子: 平均等待时间 = 5ms * (1+2+...+28)/29 = 70ms,和 iostat 给出的78ms 的平均等待时间很接近。这反过来表明 I/O 是同时发起的。每秒发出的 I/O 请求很多 (约 29 个),平均队列却不长 (只有 2 个 左右),这表明这 29 个请求的到来并不均匀,大部分时间 I/O 是空闲的。一秒中有 14.29% 的时间 I/O 队列中是有请求的,也就是说,85.71% 的时间里 I/O 系统无事可做,所有 29 个 I/O 请求都在142毫秒之内处理掉了。delta(ruse+wuse)/delta(io) = await = 78.21 =& delta(ruse+wuse)/s =78.21 * delta(io)/s = 78.21*28.57 = 2232.8,表明每秒内的I/O请求总共需要等待2232.8ms。所以平均队列长度应为 2232.8ms/1000ms = 2.23,而 iostat 给出的平均队列长度 (avgqu-sz) 却为 22.35,为什么?! 因为 iostat 中有 bug,avgqu-sz 值应为 2.23,而不是 22.35。&&&&3.vmstat&procs&-----------memory----------&---sw
ap--&-----io----&-system--&-----cpu------
r&&b&&&swpd&&&free&&&buff&&cache&&&si&&&so&&&&bi&&&&bo&&&in&&&cs&us&sy&id&wa&st
1&&1&752&9992&&3&&&&4&&&&14&&&&50&&&14&&&&2&10&&2&88&&1&&0
1&&0&540&0976&&0&&&&0&&&&&3&&&104&&&2&81&&3&&0
0&&0&084&3008&&0&&&&0&&&&&1&&72&18&&1&77&&4&&0
0&&0&808&4036&&0&&&&0&&&&&1&&&&29&&730&&90&&1&&0参数详解:r:当前系统中等待CPU的进程数(所有的CPU),若是改值连续都大于CPU的个数,表明有多数进程在等待CPU进行处理。若是该值大于CPU个数4倍的话,那么表明该服务器缺少CPU,或者CPU的处理速度过慢in :cpu每秒产生的中断数cs :每秒产生的上下文切换us:用户占用的CPU时间百分比,同mpstat 的%user,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速(比如PHP/PERL)sy:系统占用的CPU时间百分比,同mpstat 的%sys。内核进程消耗的CPU时间百分比(sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因)id:CPU处于空闲状态时间百分比,如果空闲时间(cpu id)持续为0并且系统时间(cpu sy)是用户时间的两倍(cpu us) 系统则面临着CPU资源的短缺.&wa:IO等待消耗的CPU时间百分比,wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。us+sy+id = 100%常见用法:vmstat -n 3 //每三秒获取一次数据vmstat 4 5&&//间隔4次输出5次数据概念详解:&&上下文切换:CPU的切换就是将轮到该时间片的进程,将该进程中的数据从内容中刷到CPU的寄存器中,同时将原寄存器中的数据刷到内存中保存。4.sar&sar [options] [-A] [-o file] t [n]t 和 n两个参数指定了采样间隔和采样次数 - o 较日志记录到某个文件中sar 5 6 //每5秒采用一次,共采样6次。Linux&2.6.18-53.el5PAE&(localhost.localdomain)&&03/28/2009
07:40:17&PM&&&&&&&CPU&&&&&%user&&&&&%nice&&&%system&&&%iowait&&&&%steal&&&&&%idle
07:40:19&PM&&&&&&&all&&&&&12.44&&&&&&0.00&&&&6.97&&&&&&&1.74&&&&&&0.00&&&&&&&78.86
07:40:21&PM&&&&&&&all&&&&&26.75&&&&&&0.00&&&&12.50&&&&&&16.00&&&&&0.00&&&&&&&44.75
07:40:23&PM&&&&&&&all&&&&&16.96&&&&&&0.00&&&&7.98&&&&&&&0.00&&&&&&0.00&&&&&&&75.06参数详解:大部分的参数同mpstat top等命令。%idle :等同于vmstat 中的id .就是空闲CPU百分比.如果该值高,表明CPU较空闲,但是处理速度还是很慢,则表明CPU在等待内存分配,应该加大服务器的内存。若是该值持续低于10%,表明CPU处理能力较弱,需要增加CPU。%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
了这篇文章
类别:┆阅读(0)┆评论(0)2721人阅读
LINUX(22)
CPU占用率查看命令:top
图中红色部分即为占用百分率,下面是每个进程的CPU占用率,如果服务器是多核CPU可能在下方看到有些进程CPU占用超过100%,这种一般是该进程使用了多核。
内存占用率:free -m
图中红色部分即为占用,即used、free即为剩余。(注意中在第二行数字中找哦。)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
使用权限:所有使用者
使用方式: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&&| 0 0 0
1 0 99 0 0 0| 0&&&&0&&6 | 0 0 0
0 0 100 0 0 0| 18 0&&2 | 0 0 0
0 0 100 0 0 0| 0&&&&0&&3 | 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
&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选项不能一起使用。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
  可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:
  $ top -u oracle
内容解释:
  PID:进程的ID
  USER:进程所有者
  PR:进程的优先级别,越小越优先被执行
  NInice:值
  VIRT:进程占用的虚拟内存
  RES:进程占用的物理内存
  SHR:进程使用的共享内存
  S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
  %CPU:进程占用CPU的使用率
  %MEM:进程使用的物理内存和总内存的百分比
  TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
  COMMAND:进程启动命令名称
  操作实例:
  在命令行中输入 “top”
  即可启动 top
  top 的全屏对话模式可分为3部分:系统信息栏、命令输入栏、进程列表栏。
  第一部分 -- 最上部的 系统信息栏 :
  第一行(top):
    “00:11:04”为系统当前时刻;
    “3:35”为系统启动后到现在的运作时间;
    “2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数 -- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目;
    “load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程;
  第二行(Tasks):
    “59 total”为当前系统进程总数;
    “1 running”为当前运行中的进程数;
    “58 sleeping”为当前处于等待状态中的进程数;
    “0 stoped”为被停止的系统进程数;
    “0 zombie”为被复原的进程数;
  第三行(Cpus):
    分别表示了 CPU 当前的使用率;
  第四行(Mem):
    分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量;
  第五行(Swap):
    表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。
  第二部分 -- 中间部分的内部命令提示栏:
  top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下表:
  - 改变画面更新频率
  l - 关闭或开启第一部分第一行 top 信息的表示
  t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
  m - 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
  N - 以 PID 的大小的顺序排列表示进程列表(第三部分后述)
  P - 以 CPU 占用率大小的顺序排列进程列表 (第三部分后述)
  M - 以内存占用率大小的顺序排列进程列表 (第三部分后述)
  h - 显示帮助
  n - 设置在进程列表所显示进程的数量
  q - 退出 top
  改变画面更新周期
  第三部分 -- 最下部分的进程列表栏:
  以 PID 区分的进程列表将根据所设定的画面更新时间定期的更新。通过 top 内部命令可以控制此处的显示方式
可以根据进程查看进程相关信息占用的内存情况,(进程号可以通过ps查看)如下所示:
  $ pmap -d 5647
  如下例所示:
  $ 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 -nrk
  其中rsz为实际内存,上例实现按内存排序,由大到小
在Linux下查看内存我们一般用free命令:
[root@scs-2 tmp]# free
&&&&&&&&&&&& total&&&&&& used&&&&&& free&&&& shared&&& buffers&&&& cached
Mem:&&&&&& 3266180&&& 3250004&&&&& 16176&&&&&&&&& 0&&&& 110652&&& 2668236
-/+ buffers/cache:&&&& 471116&&& 2795064
Swap:&&&&& 2048276&&&&& 80160&&& 1968116
下面是对这些数值的解释:
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
第四行就不多解释了。
区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是16176KB,已用内存是3250004KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.
第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。
76+;2668236
接下来解释什么时候内存会被交换,以及按什么方交换。 当可用内存少于额定值的时候,就会开会进行交换。
如何看额定值:
cat /proc/meminfo
[root@scs-2 tmp]# cat /proc/meminfo
MemTotal:&&&&& 3266180 kB
MemFree:&&&&&&&& 17456 kB
Buffers:&&&&&&& 111328 kB
Cached:&&&&&&& 2664024 kB
SwapCached:&&&&&&&&& 0 kB
Active:&&&&&&&& 467236 kB
Inactive:&&&&& 2644928 kB
HighTotal:&&&&&&&&&& 0 kB
HighFree:&&&&&&&&&&& 0 kB
LowTotal:&&&&& 3266180 kB
LowFree:&&&&&&&& 17456 kB
SwapTotal:&&&& 2048276 kB
SwapFree:&&&&& 1968116 kB
Dirty:&&&&&&&&&&&&&& 8 kB
Writeback:&&&&&&&&&& 0 kB
Mapped:&&&&&&&& 345360 kB
Slab:&&&&&&&&&& 112344 kB
Committed_AS:&& 535292 kB
PageTables:&&&&&& 2340 kB
VmallocTotal:
VmallocUsed:&&& 272696 kB
VmallocChunk:
HugePages_Total:&&&& 0
HugePages_Free:&&&&& 0
Hugepagesize:&&&& 2048 kB
用free -m查看的结果:
[root@scs-2 tmp]# free -m&
&&&&&&&&&&&& total&&&&&& used&&&&&& free&&&& shared&&& buffers&&&& cached
Mem:&&&&&&&&& 3189&&&&&& 3173&&&&&&&& 16&&&&&&&&& 0&&&&&&& 107&&&&&& 2605
-/+ buffers/cache:&&&&&&& 460&&&&&& 2729
Swap:&&&&&&&& 2000&&&&&&&& 78&&&&&& 1921
查看/proc/kcore文件的大小(内存镜像):
[root@scs-2 tmp]# ll -h /proc/kcore&
-r-------- 1 root root 4.1G Jun 12 12:04 /proc/kcore
占用内存的测量
测量一个进程占用了多少内存,linux为我们提供了一个很方便的方法,/proc目录为我们提供了所有的信息,实际上top等工具也通过这里来获取相应的信息。
/proc/meminfo 机器的内存使用信息
/proc/pid/maps pid为进程号,显示当前进程所占用的虚拟地址。
/proc/pid/statm 进程所占用的内存
[root@localhost ~]# cat /proc/self/statm
654 57 44 0 0 334 0
CPU 以及CPU0。。。的每行的每个参数意思(以第一行为例)为:
参数 解释 /proc//status
Size (pages) 任务虚拟地址空间的大小 VmSize/4
Resident(pages) 应用程序正在使用的物理内存的大小 VmRSS/4
Shared(pages) 共享页数 0
Trs(pages) 程序所拥有的可执行虚拟内存的大小 VmExe/4
Lrs(pages) 被映像到任务的虚拟内存空间的库的大小 VmLib/4
Drs(pages) 程序数据段和用户态的栈的大小 (VmData+ VmStk )4
dt(pages) 04
查看机器可用内存
/proc/28248/&free
total used free shared buffers cached
Mem: 400 668 503688
-/+ buffers/cache: 744
Swap: 08 1870312
我们通过free命令查看机器空闲内存时,会发现free的值很小。这主要是因为,在linux中有这么一种思想,内存不用白不用,因此它尽可能的cache和buffer一些数据,以方便下次使用。但实际上这些内存也是可以立刻拿来使用的。
所以 空闲内存=free+buffers+cached=total-used
top命令 是Linux下常用的性能 分析工具 ,能够实时显示系统 中各个进程的资源占用状况,类似于Windows的任务管理 器。下面详细介绍它的使用方法。
top - 02:53:32 up 16 days,& 6:34, 17 users,& load average: 0.24, 0.21, 0.24
Tasks: 481 total,&& 3 running, 474 sleeping,&& 0 stopped,&& 4 zombie
Cpu(s): 10.3%us,& 1.8%sy,& 0.0%ni, 86.6%id,& 0.5%wa,& 0.2%hi,& 0.6%si,& 0.0%st
Mem:&& 4042764k total,& 4001096k used,&&& 41668k free,&& 383536k buffers
Swap:& 2104472k total,&&&& 7900k used,& 2096572k free,& 1557040k cached
& PID USER&&&&& PR& NI& VIRT& RES& SHR S %CPU %MEM&&& TIME+& COMMAND
32497 jacky&&&& 20&& 0& 669m 222m& 31m R&& 10& 5.6&&&&&& 29:27.62 firefox
&4788 yiuwing&& 20&& 0& 257m& 18m& 13m S&&& 5& 0.5&&&&&&&&& 5:42.44 konsole
&5657 Liuxiaof& 20&& 0& 585m 159m& 30m S&&& 4& 4.0&&&&&&&&& 5:25.06 firefox
&4455 xiefc&&&&& 20&& 0& 542m& 124m& 30m R&&& 4& 3.1&&&&&&&& 7:23.03 firefox
&6188 Liuxiaof& 20&& 0& 191m&& 17m& 13m S&&& 4& 0.5&&&&&&&&& 0:01.16 konsole
统计信息区前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime& 命令的执行结果。其内容如下:
01:06:48& 当前时间&&
up 1:22& 系统运行 时间,格式为时:分&&
1 user& 当前登录用户 数&&
load average: 0.06, 0.60, 0.48& 系统负载 ,即任务队列的平均长度。
&&&&&&&&&&& 三个数值分别为& 1分钟、5分钟、15分钟前到现在的平均值。&
第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:
Tasks: 29 total& 进程总数&&
1 running& 正在运行的进程数&&
28 sleeping& 睡眠的进程数&&
0 stopped& 停止的进程数&&
0 zombie& 僵尸进程数&&
Cpu(s): 0.3% us& 用户空间占用CPU百分比&&
1.0% sy& 内核 空间占用CPU百分比&&
0.0% ni& 用户进程空间内改变过优先级的进程占用CPU百分比&&
98.7% id& 空闲CPU百分比&&
0.0% wa& 等待输入输出的CPU时间百分比&&
0.0% hi&&&&&
0.0% si&&&&
最后两行为内存 信息。内容如下:
Mem: 191272k total& 物理内存总量&&
173656k used& 使用的物理内存总量&&
17616k free& 空闲内存总量&&
22052k buffers& 用作内核缓存 的内存量&&
Swap: 192772k total& 交换区总量&&
0k used& 使用的交换区总量&&
192772k free& 空闲交换区总量&&
123988k cached& 缓冲的交换区总量。
&&&&&&&&&&& 内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
&&&&&&&&&&& 该数值即为这些内容已存在于内存中 的交换区的大小。
&&&&&&&&&&& 相应的内存再次被换出时可不必再对交换区写入。&
进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
序号& 列名& 含义&&
a& PID& 进程id&&
b& PPID& 父进程id&&
c& RUSER& Real user name&&
d& UID& 进程所有者的用户id&&
e& USER& 进程所有者的用户名&&
f& GROUP& 进程所有者的组名&&
g& TTY& 启动进程的终端名。不是从终端启动的进程则显示为 ?&&
h& PR& 优先级&&
i& NI& nice值。负值表示高优先级,正值表示低优先级&&
j& P& 最后使用的CPU,仅在多CPU环境 下有意义&&
k& %CPU& 上次更新到现在的CPU时间占用百分比&&
l& TIME& 进程使用的CPU时间总计,单位秒&&
m& TIME+& 进程使用的CPU时间总计,单位1/100秒&&
n& %MEM& 进程使用的物理内存 百分比&&
o& VIRT& 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES&&
p& SWAP& 进程使用的虚拟内存中,被换出的大小,单位kb。&&
q& RES& 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA&&
r& CODE& 可执行代码占用的物理 内存大小,单位kb&&
s& DATA& 可执行代码以外的部分(数据 段+栈)占用的物理 内存大小,单位kb&&
t& SHR& 共享内存大小,单位kb&&
u& nFLT& 页面错误次数&&
v& nDRT& 最后一次写入到现在,被修改过的页面数。&&
w& S& 进程状态。
&&&&&&&&&&& D =不可中断的睡眠状态
&&&&&&&&&&& R =运行
&&&&&&&&&&& S =睡眠
&&&&&&&&&&& T =跟踪/停止
&&&&&&&&&&& Z =僵尸进程&&
x& COMMAND& 命令名/命令行&&
y& WCHAN& 若该进程在睡眠,则显示睡眠中的系统函数名&&
z& Flags& 任务标志,参考 sched.h&
默认情况下仅显示比较重要的& PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND& 列。可以通过下面的快捷键来更改显示内容。
更改显示内容通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z& 即可显示或隐藏对应的列,最后按回车键确定。
按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z& 可以将相应的列向左移动。最后按回车键确定。
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的& R 键可以将当前的排序倒转。
==============================
top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。
<空格>:立刻刷新。
P:根据CPU使用大小进行排序。
T:根据时间、累计时间排序。
q:退出top命令。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c:切换显示命令名称和完整命令行。
M:根据使用内存大小进行排序。
W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。
可以看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,它的缺点是会消耗很多系统资源。
&应用实例&
使用top命令可以监视指定用户,缺省情况是监视所有用户的进程。如果想查看指定用户的情况,在终端中按“U”键,然后输入用户名,系统就会切换为指定用户的进程运行界面。
free命令用来显示内存的使用情况,使用权限是所有用户。
b.格式
free [-b -k -m] [-o] [-s delay] [-t] [-V]
c.主要参数
-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
-t:显示内存总和列。
-o:不显示缓冲区调节列。
d.应用实例
free命令是用来查看内存使用情况的主要命令。和top命令相比,它的优点是使用简单,并且只占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作一个方便实时监控器。
#free -b -s5
使用这个命令后终端会连续不断地报告内存使用情况(以字节为单位),每5秒更新一次。
在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
  可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:
  $ top -u oracle
内容解释:
  PID:进程的ID
  USER:进程所有者
  PR:进程的优先级别,越小越优先被执行
  NInice:值
  VIRT:进程占用的虚拟内存
  RES:进程占用的物理内存
  SHR:进程使用的共享内存
  S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
  %CPU:进程占用CPU的使用率
  %MEM:进程使用的物理内存和总内存的百分比
  TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
  COMMAND:进程启动命令名称
  操作实例:
  在命令行中输入 “top”
  即可启动 top
  top 的全屏对话模式可分为3部分:系统信息栏、命令输入栏、进程列表栏。
  第一部分 -- 最上部的 系统信息栏 :
  第一行(top):
    “00:11:04”为系统当前时刻;
    “3:35”为系统启动后到现在的运作时间;
    “2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数 -- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目;
    “load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程;
  第二行(Tasks):
    “59 total”为当前系统进程总数;
    “1 running”为当前运行中的进程数;
    “58 sleeping”为当前处于等待状态中的进程数;
    “0 stoped”为被停止的系统进程数;
    “0 zombie”为被复原的进程数;
  第三行(Cpus):
    分别表示了 CPU 当前的使用率;
  第四行(Mem):
    分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量;
  第五行(Swap):
    表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。
  第二部分 -- 中间部分的内部命令提示栏:
  top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下表:
  - 改变画面更新频率
  l - 关闭或开启第一部分第一行 top 信息的表示
  t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
  m - 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
  N - 以 PID 的大小的顺序排列表示进程列表(第三部分后述)
  P - 以 CPU 占用率大小的顺序排列进程列表 (第三部分后述)
  M - 以内存占用率大小的顺序排列进程列表 (第三部分后述)
  h - 显示帮助
  n - 设置在进程列表所显示进程的数量
  q - 退出 top
  改变画面更新周期
  第三部分 -- 最下部分的进程列表栏:
  以 PID 区分的进程列表将根据所设定的画面更新时间定期的更新。通过 top 内部命令可以控制此处的显示方式
可以根据进程查看进程相关信息占用的内存情况,(进程号可以通过ps查看)如下所示:
  $ pmap -d 5647
  如下例所示:
  $ 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 -nrk
  其中rsz为实际内存,上例实现按内存排序,由大到小
在Linux下查看内存我们一般用free命令:
[root@scs-2 tmp]# free
&&&&&&&&&&&& total&&&&&& used&&&&&& free&&&& shared&&& buffers&&&& cached
Mem:&&&&&& 3266180&&& 3250004&&&&& 16176&&&&&&&&& 0&&&& 110652&&& 2668236
-/+ buffers/cache:&&&& 471116&&& 2795064
Swap:&&&&& 2048276&&&&& 80160&&& 1968116
下面是对这些数值的解释:
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
第四行就不多解释了。
区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是16176KB,已用内存是3250004KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.
第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。
76+;2668236
接下来解释什么时候内存会被交换,以及按什么方交换。 当可用内存少于额定值的时候,就会开会进行交换。
如何看额定值:
cat /proc/meminfo
[root@scs-2 tmp]# cat /proc/meminfo
MemTotal:&&&&& 3266180 kB
MemFree:&&&&&&&& 17456 kB
Buffers:&&&&&&& 111328 kB
Cached:&&&&&&& 2664024 kB
SwapCached:&&&&&&&&& 0 kB
Active:&&&&&&&& 467236 kB
Inactive:&&&&& 2644928 kB
HighTotal:&&&&&&&&&& 0 kB
HighFree:&&&&&&&&&&& 0 kB
LowTotal:&&&&& 3266180 kB
LowFree:&&&&&&&& 17456 kB
SwapTotal:&&&& 2048276 kB
SwapFree:&&&&& 1968116 kB
Dirty:&&&&&&&&&&&&&& 8 kB
Writeback:&&&&&&&&&& 0 kB
Mapped:&&&&&&&& 345360 kB
Slab:&&&&&&&&&& 112344 kB
Committed_AS:&& 535292 kB
PageTables:&&&&&& 2340 kB
VmallocTotal:
VmallocUsed:&&& 272696 kB
VmallocChunk:
HugePages_Total:&&&& 0
HugePages_Free:&&&&& 0
Hugepagesize:&&&& 2048 kB
用free -m查看的结果:
[root@scs-2 tmp]# free -m&
&&&&&&&&&&&& total&&&&&& used&&&&&& free&&&& shared&&& buffers&&&& cached
Mem:&&&&&&&&& 3189&&&&&& 3173&&&&&&&& 16&&&&&&&&& 0&&&&&&& 107&&&&&& 2605
-/+ buffers/cache:&&&&&&& 460&&&&&& 2729
Swap:&&&&&&&& 2000&&&&&&&& 78&&&&&& 1921
查看/proc/kcore文件的大小(内存镜像):
[root@scs-2 tmp]# ll -h /proc/kcore&
-r-------- 1 root root 4.1G Jun 12 12:04 /proc/kcore
占用内存的测量
测量一个进程占用了多少内存,linux为我们提供了一个很方便的方法,/proc目录为我们提供了所有的信息,实际上top等工具也通过这里来获取相应的信息。
/proc/meminfo 机器的内存使用信息
/proc/pid/maps pid为进程号,显示当前进程所占用的虚拟地址。
/proc/pid/statm 进程所占用的内存
[root@localhost ~]# cat /proc/self/statm
654 57 44 0 0 334 0
CPU 以及CPU0。。。的每行的每个参数意思(以第一行为例)为:
参数 解释 /proc//status
Size (pages) 任务虚拟地址空间的大小 VmSize/4
Resident(pages) 应用程序正在使用的物理内存的大小 VmRSS/4
Shared(pages) 共享页数 0
Trs(pages) 程序所拥有的可执行虚拟内存的大小 VmExe/4
Lrs(pages) 被映像到任务的虚拟内存空间的库的大小 VmLib/4
Drs(pages) 程序数据段和用户态的栈的大小 (VmData+ VmStk )4
dt(pages) 04
查看机器可用内存
/proc/28248/&free
total used free shared buffers cached
Mem: 400 668 503688
-/+ buffers/cache: 744
Swap: 08 1870312
我们通过free命令查看机器空闲内存时,会发现free的值很小。这主要是因为,在linux中有这么一种思想,内存不用白不用,因此它尽可能的cache和buffer一些数据,以方便下次使用。但实际上这些内存也是可以立刻拿来使用的。
所以 空闲内存=free+buffers+cached=total-used
top命令 是Linux下常用的性能 分析工具 ,能够实时显示系统 中各个进程的资源占用状况,类似于Windows的任务管理 器。下面详细介绍它的使用方法。
top - 02:53:32 up 16 days,& 6:34, 17 users,& load average: 0.24, 0.21, 0.24
Tasks: 481 total,&& 3 running, 474 sleeping,&& 0 stopped,&& 4 zombie
Cpu(s): 10.3%us,& 1.8%sy,& 0.0%ni, 86.6%id,& 0.5%wa,& 0.2%hi,& 0.6%si,& 0.0%st
Mem:&& 4042764k total,& 4001096k used,&&& 41668k free,&& 383536k buffers
Swap:& 2104472k total,&&&& 7900k used,& 2096572k free,& 1557040k cached
& PID USER&&&&& PR& NI& VIRT& RES& SHR S %CPU %MEM&&& TIME+& COMMAND
32497 jacky&&&& 20&& 0& 669m 222m& 31m R&& 10& 5.6&&&&&& 29:27.62 firefox
&4788 yiuwing&& 20&& 0& 257m& 18m& 13m S&&& 5& 0.5&&&&&&&&& 5:42.44 konsole
&5657 Liuxiaof& 20&& 0& 585m 159m& 30m S&&& 4& 4.0&&&&&&&&& 5:25.06 firefox
&4455 xiefc&&&&& 20&& 0& 542m& 124m& 30m R&&& 4& 3.1&&&&&&&& 7:23.03 firefox
&6188 Liuxiaof& 20&& 0& 191m&& 17m& 13m S&&& 4& 0.5&&&&&&&&& 0:01.16 konsole
统计信息区前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime& 命令的执行结果。其内容如下:
01:06:48& 当前时间&&
up 1:22& 系统运行 时间,格式为时:分&&
1 user& 当前登录用户 数&&
load average: 0.06, 0.60, 0.48& 系统负载 ,即任务队列的平均长度。
&&&&&&&&&&& 三个数值分别为& 1分钟、5分钟、15分钟前到现在的平均值。&
第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:
Tasks: 29 total& 进程总数&&
1 running& 正在运行的进程数&&
28 sleeping& 睡眠的进程数&&
0 stopped& 停止的进程数&&
0 zombie& 僵尸进程数&&
Cpu(s): 0.3% us& 用户空间占用CPU百分比&&
1.0% sy& 内核 空间占用CPU百分比&&
0.0% ni& 用户进程空间内改变过优先级的进程占用CPU百分比&&
98.7% id& 空闲CPU百分比&&
0.0% wa& 等待输入输出的CPU时间百分比&&
0.0% hi&&&&&
0.0% si&&&&
最后两行为内存 信息。内容如下:
Mem: 191272k total& 物理内存总量&&
173656k used& 使用的物理内存总量&&
17616k free& 空闲内存总量&&
22052k buffers& 用作内核缓存 的内存量&&
Swap: 192772k total& 交换区总量&&
0k used& 使用的交换区总量&&
192772k free& 空闲交换区总量&&
123988k cached& 缓冲的交换区总量。
&&&&&&&&&&& 内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
&&&&&&&&&&& 该数值即为这些内容已存在于内存中 的交换区的大小。
&&&&&&&&&&& 相应的内存再次被换出时可不必再对交换区写入。&
进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
序号& 列名& 含义&&
a& PID& 进程id&&
b& PPID& 父进程id&&
c& RUSER& Real user name&&
d& UID& 进程所有者的用户id&&
e& USER& 进程所有者的用户名&&
f& GROUP& 进程所有者的组名&&
g& TTY& 启动进程的终端名。不是从终端启动的进程则显示为 ?&&
h& PR& 优先级&&
i& NI& nice值。负值表示高优先级,正值表示低优先级&&
j& P& 最后使用的CPU,仅在多CPU环境 下有意义&&
k& %CPU& 上次更新到现在的CPU时间占用百分比&&
l& TIME& 进程使用的CPU时间总计,单位秒&&
m& TIME+& 进程使用的CPU时间总计,单位1/100秒&&
n& %MEM& 进程使用的物理内存 百分比&&
o& VIRT& 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES&&
p& SWAP& 进程使用的虚拟内存中,被换出的大小,单位kb。&&
q& RES& 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA&&
r& CODE& 可执行代码占用的物理 内存大小,单位kb&&
s& DATA& 可执行代码以外的部分(数据 段+栈)占用的物理 内存大小,单位kb&&
t& SHR& 共享内存大小,单位kb&&
u& nFLT& 页面错误次数&&
v& nDRT& 最后一次写入到现在,被修改过的页面数。&&
w& S& 进程状态。
&&&&&&&&&&& D =不可中断的睡眠状态
&&&&&&&&&&& R =运行
&&&&&&&&&&& S =睡眠
&&&&&&&&&&& T =跟踪/停止
&&&&&&&&&&& Z =僵尸进程&&
x& COMMAND& 命令名/命令行&&
y& WCHAN& 若该进程在睡眠,则显示睡眠中的系统函数名&&
z& Flags& 任务标志,参考 sched.h&
默认情况下仅显示比较重要的& PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND& 列。可以通过下面的快捷键来更改显示内容。
更改显示内容通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z& 即可显示或隐藏对应的列,最后按回车键确定。
按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z& 可以将相应的列向左移动。最后按回车键确定。
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的& R 键可以将当前的排序倒转。
==============================
top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。
<空格>:立刻刷新。
P:根据CPU使用大小进行排序。
T:根据时间、累计时间排序。
q:退出top命令。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c:切换显示命令名称和完整命令行。
M:根据使用内存大小进行排序。
W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。
可以看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,它的缺点是会消耗很多系统资源。
&应用实例&
使用top命令可以监视指定用户,缺省情况是监视所有用户的进程。如果想查看指定用户的情况,在终端中按“U”键,然后输入用户名,系统就会切换为指定用户的进程运行界面。
free命令用来显示内存的使用情况,使用权限是所有用户。
b.格式
free [-b -k -m] [-o] [-s delay] [-t] [-V]
c.主要参数
-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
-t:显示内存总和列。
-o:不显示缓冲区调节列。
d.应用实例
free命令是用来查看内存使用情况的主要命令。和top命令相比,它的优点是使用简单,并且只占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作一个方便实时监控器。
#free -b -s5
使用这个命令后终端会连续不断地报告内存使用情况(以字节为单位),每5秒更新一次。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:6773857次
积分:59882
积分:59882
排名:第38名
原创:247篇
转载:2594篇
评论:644条
(8)(92)(17)(25)(37)(63)(7)(74)(67)(95)(177)(114)(86)(40)(43)(71)(14)(10)(17)(12)(6)(20)(27)(54)(71)(97)(74)(32)(2)(24)(21)(62)(60)(36)(23)(27)(46)(34)(76)(63)(121)(141)(74)(54)(120)(77)(42)(4)(12)(19)(1)(9)(15)(19)(18)(16)(31)(79)(68)

我要回帖

更多关于 linux查看内存使用率 的文章

 

随机推荐