linux

Linux中cpu与内存性能监测

2018-09-07  本文已影响23人  caoxinyiyi

现在工作中需要,需要重点学习一下,如何看linux的机器的性能。

top命令

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。主要看

Cpu(s): 19.6%us,  0.5%sy,  0.0%ni, 79.4%id,  0.5%wa,  0.0%hi,  0.0%si,  0.0%st

19.6%us 用户空间占用CPU百分比
0.3% sy 内核空间占用CPU百分比
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 9346 root      20   0 7957m 2.5g  16m S 226.7  9.0 115875:55 java
 5716 work      20   0  716m 274m 7124 S  3.3  1.0 443:03.03 wtable-server

PR:进程的优先级别,越小越优先被执行
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比

top 运行中可以通过 top 的内部命令对进程的显示方式进行控制, 最主要是如下的结果命令

N - 以 PID 的大小的顺序排列表示进程列表
P - 以 CPU 占用率大小的顺序排列进程列表
M - 以内存占用率大小的顺序排列进程列表
q - 退出 top

sar命令

sar命令也是Linux系统中重要的性能监测工具之一,它可以周期性地对内存和CPU使用情况进行采样。
基本语法:

sar t [n]  , t为采样间隔,是必选的, n为采样次数,是可选的

常用选项:

-u:CPU利用率
-r  内存利用率
-R  内存状况
-b  I/O 和传输速率信息状况
-q  队列长度和平均负载
-S  交换空间利用率

示例:

Linux 2.6.32-504.el6.x86_64 (bjm6-191-106.58os.org)     2018年09月07日     _x86_64_    (8 CPU)

15时33分45秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15时33分46秒     all     25.44      0.00      0.63      0.38      0.00     73.55
平均时间:     all     25.44      0.00      0.63      0.38      0.00     73.55

vmstat命令

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。相比top,它可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。
基本语法:

vmstat t [n] , t为采样间隔,是必选的, n为采样次数,是可选的, 当未设置n的时候,会一直采样
> vmstat 1 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
31  0 1874084 1294596 327952 18367116    0    0     0     9    0    0  7  1 92  0  0
r 表示运行队列(就是说多少个进程真的分配到CPU),当这个值超过了CPU数目,就会出现CPU瓶颈了,这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。
b 表示阻塞的进程
swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了
free   空闲的物理内存的大小
us 用户CPU时间
sy 系统CPU时间
id  空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率

iostat命令

iostat命令主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
入门使用:

iostat -d -k 1 2
参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;1表示数据显示每隔1秒刷新一次, 2是总共取2次的数据,是可选的。如果2没有填这个参数,则一直会每隔1秒进行刷新。

运行结果:

> iostat -d -k 1 1
Linux 2.6.32-504.el6.x86_64 (bjm6-191-106.58os.org)     2018年09月07日     _x86_64_    (8 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               6.76         2.03        66.86  145694346 4789234140

tps:该设备每秒的传输次数。"一次传输"意思是"一次I/O请求"。多个逻辑请求可能会被合并为"一次I/O请求"。"一次传输"请求的大小是未知的。
kB_read/s:每秒从设备(drive expressed)读取的数据量;
kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
kB_read:读取的总数据量;
kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。

free命令

> free
             total       used       free     shared    buffers     cached
Mem:      28726748   27418708    1308040       1180     327952   18413396
-/+ buffers/cache:    8677360   20049388
Swap:     32767996    1874084   30893912

Shared:多个进程共享的内存总额
Buffers/cached:磁盘缓存的大小
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
从应用程序的角度来说,可用内存=系统free memory+buffers+cached
上一篇下一篇

猜你喜欢

热点阅读