`

查看CPU and Memory 使用率的命令 in linux

阅读更多
1.top
使用权限:所有使用者
使用方式: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 -n 10

使用者将不能利用交谈式指令来对行程下命令:
top -s

将更新显示二次的结果输入到名称为top.log的档案里:
top -n 2 -b < top.log
另附一个命令简介linux traceroutewindows tracert两个命令相当,跟踪网络路由

2.vmstat
正如我们之前讨论的任何系统的性能比较都是基于基线的,并且监控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%

To check the memory usage in linux system, we can use below command to show the result:
1). vmstat
2). free -t -m
3). egrep --color 'Mem|Cache|Swap' /proc/meminfo

3. mpstat
对于上下文切换要结合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 104300 16800 95328 72200 0 0 5 26 7 14 4 1 95 0

0 0 104300 16800 95328 72200 0 0 0 24 1021 64 1 1 98 0

0 0 104300 16800 95328 72200 0 0 0 0 1009 59 1 1 98 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
CPU0

0: 1277238713 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

15: 15761438 IO-APIC-edge ide1

169: 26 IO-APIC-level Intel 82801BA-ICH2

185: 16785489 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     5512K 4848K 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    2856K 2600K sleep  58   0  0:00.00 0.0% mibiisa/11

1979 jtd     1568K 1352K sleep  49   0  0:00.00 0.0% csh/1

1977 jtd     7256K 5512K sleep  49   0  0:00.00 0.0% dtterm/1

  192 root    3680K 2856K 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     9864K 8384K sleep  49   0  0:00.59 0.0% dtwm/8

  114 root    1640K 704K sleep  58   0  0:01.16 0.0% in.routed/1

  180 daemon  2704K 1944K sleep  58   0  0:00.00 0.0% statd/4

  145 root    2120K 1520K sleep  58   0  0:00.00 0.0% ypbind/1

  181 root    1864K 1336K sleep  51   0  0:00.00 0.0% lockd/1

  173 root    2584K 2136K sleep  58   0  0:00.00 0.0% inetd/1

  135 root    2960K 1424K 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     6928K 5064K 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     9232K 8104K sleep  59   0  0:00:27 0.0% dtwm/5

29010 jtd     5144K 4664K cpu0   59   0  0:00:00 0.0% prstat/1

  200 root    3096K 1024K sleep  59   0  0:00:00 0.0% lpsched/1

  161 root    2120K 1600K sleep  59   0  0:00:00 0.0% lockd/2

  170 root    5888K 4248K sleep  59   0  0:03:10 0.0% automountd/3

  132 root    2120K 1408K sleep  59   0  0:00:00 0.0% ypbind/1

  162 daemon  2504K 1936K sleep  59   0  0:00:00 0.0% statd/2

  146 root    2560K 2008K sleep  59   0  0:00:00 0.0% inetd/1

  122 root    2336K 1264K sleep  59   0  0:00:00 0.0% keyserv/2

  119 root    2336K 1496K sleep  59   0  0:00:02 0.0% rpcbind/1

  104 root    1664K 672K 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-MEM-monitor:一个简单的脚本,用于记录一段时间内Linux CPU和内存使用情况(使用top或pidstat命令),并输出Excel或OpenOfficeCalc友好的报告

    CPU-MEM-monitor:一个简单的脚本,用于记录一段时间内Linux CPU和内存使用情况(使用top或pidstat命令),并输出Excel或OpenOfficeCalc友好的报告

    linux操作系统性能监控优化–CPU、Memory、IO、Network

    操作系统性能监控优化不外乎对CPU、Memory、IO、Network这四个方面,下面分别介绍使用工具和指标  一、CPU  1、良好状态指标  CPU利用率:User Time &lt;= 70%,System Time &lt;= 35%,User Time + System...

    Linux vmstat命令实战详细解析

    这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。 一般vmstat工具的...

    java在cpu的占有率

    /** cpu使用率. */ private double cpuRatio; /** java使用内存 */ private double javaUseMemory; public String getOsName() { return osName; } public void setOsName(String osName) { this....

    如何利用Bash脚本监控Linux的内存使用情况

    它可以监视 CPU 利用率、内存利用率、交换利用率、磁盘空间利用率等所有内容。 如果你只有很少的系统并且想要监视它们,那么编写一个小的 shell 脚本可以使你的任务变得非常简单。 在本教程中,我们添加了两个 shell...

    服务器代理工具,性能检测工具

    ServerAgent 是一款安装在被测服务器端,与Jmeter集成的性能监控插件,支持查看CPU,memory,正确率,响应时间,I/O等的监控,是个不错的插件。 工具使用方法 服务端 Linux服务端: ...

    Linux测试加压工具auto_utilization.zip

    一个测试套件实现了对linux系统资源使用率的设定,目前版本包含: 1. cpu_limit实现了linux操作系统内在指定的cpu各核心上分别占用指定的cpu利用率; 2. memory_limit实现了linux操作系统内占用一定的内存使得...

    DBMonitor:DBMonitor 是一种工具,可帮助监控托管在 WindowsLinux 上的生产数据库的性能

    数据库监视器 As in production when there is peak load , there must be some tool to monitor spikes of CPU and memory Utilization as well如数据库大小等。 DBMonitor 是帮助监控托管在 Windows/Linux 上的...

    Liunx Shell编程入门—-编写系统监控脚本与FTP探测脚本

    使该脚本实现: 监控系统中内存、cpu、磁盘的占用率 1.1 命令解释 cat /proc/meminfo /proc/meminfo是了解Linux系统内存使用状况的主要接口 我们最常用的free、vmstat等命令就是通过它获取数据的 ,/proc/meminfo所...

    ELDK使用与开发手册

    )来查看所有的U-Boot命令。它将会列出在你当前配置下所有支持的命令。[请注意到尽管U-Boot提供了很多配置选项,并不是所有选项都支持各种处理器和开发板,有些选项可能在你的配置中并没有被选上。] =&gt; help ? – ...

    Java服务器问题排查思路及工具集.zip

    Java服务器问题排查思路及工具集.zip linux工具集 java工具集 cpu占用率高如何解决 内存占用率高如何解决 OOM(out of memory)如何解决

    服务器硬件性能.pptx

    CPU节能模式 好处:在CPU使用率不高时,自动降频,可以省电;在CPU使用率升高时,升频。 风险:频率变化时,对性能有影响,特别是计算型的服务。具体影响需要做AB测试。 服务器硬件性能全文共23页,当前为第4页。 ...

    Linux系统的性能测试与性能分析

    大量的网络吞吐,一定意味着非常可观的CPU利用率  可用内存的减少可能增加大量的swapping,从而使系统负载上升甚至崩溃  2 应用程序类型  性能测试之前,你首先需要判断你的应用程序是属于那种类型的,这...

    测试培训教材

    You can also view the system information that has been retrieved—such as CPU, memory, and processes running on the machine—and an image of the machine executing the system test. 6、测试用例设计、...

    jmx监控tomcat测试包

    catalina-jmx-remote.jar放到tomcat/lib目录下 如果是windows版本,编辑TOMCAT_...//进程 CPU 占用率 java -jar cmdline-jmxclient-0.10.3.jar - 192.168.16.64:11111 java.lang:type=OperatingSystem ProcessCpuLoad

    上图:Linux的系统和进程监视器

    它定期显示与CPU,内存,交换,磁盘(包括LVM)和网络层有关的系统级活动,并针对每个进程(和线程)显示例如CPU利用率,内存增长,磁盘利用率,优先级,用户名,状态和退出代码。 结合可选的内核模块netatop ,它...

    计算机系统课程.docx

    由于Cache的存取速率相当快,使得CPU的利用率大大提高,进而使整个系统的性能得以提升。 RAM(random access memory)随机存储器。存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。...

    stackimpact-go:不推荐使用的StackImpact Go Profiler-生产级性能Profiler:CPU,内存分配,阻止调用,错误,指标等

    产品特点CPU使用率,内存分配和阻止调用的连续热点分析。 持续的延迟瓶颈跟踪。 错误和紧急监视。 运行状况监视,包括CPU,内存,垃圾收集和其他运行时指标。 关于配置文件异常的警报。 团队访问。 在页面(含屏幕...

    oshi:本机操作系统和硬件信息

    它不需要安装任何其他本机库,并且旨在提供一种跨平台的实现来检索系统信息,例如OS版本,进程,内存和CPU使用率,磁盘和分区,设备,传感器等。 支持平台 Windows•Linux•macOS•Unix(AIX,FreeBSD,OpenBSD,...

Global site tag (gtag.js) - Google Analytics