本博文的主要内容有
.系统内存管理、监控:vmstat和free -mt
.系统CPU管理、监控:sar -u、mpstat、uptime
linux系统内存和CPU是在系统运行的过程中不断消耗的资源,其随系统进程的不断增加而减少,并在进程关闭后会回收有些资源。通过对系统内存和CPU使用率的监控,就能给了解linx系统当前的“繁忙”程序。
1、系统内存管理、监控:vmstat和free -mt
在linux系统中,内存分为物理内存和虚拟内存。
物理内存是真实存在的,即存在内存条上。
虚拟内存,称为交换分区。
在linux系统,用vmstat,即Virtual Memory Statistics,虚拟内存统计命令。
[root@weekend110 ~]# man vmstat
VMSTAT(8) Linux Administrator’s Manual VMSTAT(8)
NAME
vmstat - Report virtual memory statistics
SYNOPSIS
vmstat [-a] [-n] [-t] [-S unit] [delay [ count]]
vmstat [-s] [-n] [-S unit]
vmstat [-m] [-n] [delay [ count]]
vmstat [-d] [-n] [delay [ count]]
vmstat [-p disk partition] [-n] [delay [ count]]
vmstat [-f]
vmstat [-V]
DESCRIPTION
vmstat reports information about processes, memory, paging, block IO, traps, and cpu activity.
The first report produced gives averages since the last reboot. Additional reports give information on a sam-
pling period of length delay. The process and memory reports are instantaneous in either case.
Options
The -a switch displays active/inactive memory, given a 2.5.41 kernel or better.
The -f switch displays the number of forks since boot. This includes the fork, vfork, and clone system calls,
and is equivalent to the total number of tasks created. Each process is represented by one or more tasks,
depending on thread usage. This display does not repeat.
The -t switch adds timestamp to the output.
The -m switch displays slabinfo.
The -n switch causes the header to be displayed only once rather than periodically.
The -s switch displays a table of various event counters and memory statistics. This display does not repeat.
delay is the delay between updates in seconds. If no delay is specified, only one report is printed with the
[root@weekend110 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 953576 65676 531364 0 0 101 50 113 278 4 4 90 1 0
[root@weekend110 ~]# vmstat 2 4 每隔2秒执行一次,共执行4次
procs ,是进程,只输出两列信息,r表示正在运行的进程数,b是处于等待状态的进程数。
memory,是内存,输出四列信息,swpd涉及分页读取或写入磁盘的进程所消耗的所有内存,其表示系统已使用交换分区空间的数量。
free为空闲的物理内存空间
buff为系统用于缓冲区的物理内存空间
cache为用作缓存的物理内存空间
swap,只输出两列信息,si表示系统从磁盘交换到内存的交换页数量,so表示从内存交换到磁盘的交换页数量
io,bi表示从磁盘读入到内存的块数量,bo为从内存读入到磁盘的块数。
system,in表示每秒系统的中断数,cs表示 每秒系统进程上下文切换的次数。
cpu,us表示执行用户进程时所使用的cpu时间,sy为执行系统进程时所使用的cpu时间,id表示cpu的空间时间,wa是等待I/O时所使用的cpu时间。
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 953584 65676 531376 0 0 101 50 113 277 4 4 90 1 0
0 0 0 953576 65676 531376 0 0 0 12 38 51 1 0 99 0 0
1 0 0 953576 65676 531376 0 0 0 0 31 46 0 1 99 0 0
0 0 0 953576 65676 531376 0 0 0 0 38 170 1 1 99 0 0
[root@weekend110 ~]#
[root@weekend110 ~]# free -mt m表示以兆字节为单位输出,t表示提供一个合计行
total used free shared buffers cached
Mem: 1861 931 930 0 64 518
-/+ buffers/cache: 348 1513
Swap: 3055 0 3055
Total: 4917 931 3985
[root@weekend110 ~]#
2、系统CPU管理、监控:sar -u、mpstat、uptime
[root@weekend110 ~]# sar -u -u是sar的默认选项,其表示以百分比的形式输出
Linux 2.6.32-431.el6.x86_64 (weekend110) 10/21/2016 _x86_64_ (1 CPU)
09:10:46 AM LINUX RESTART
09:20:02 AM CPU %user %nice %system %iowait %steal %idle
09:30:01 AM all 0.03 0.00 0.27 0.03 0.00 99.67
09:40:01 AM all 0.02 0.00 0.27 0.09 0.00 99.62
09:50:01 AM all 0.10 0.00 0.37 0.01 0.00 99.53
10:00:02 AM all 14.65 0.00 10.17 2.27 0.00 72.92
10:10:02 AM all 11.55 0.00 11.19 0.37 0.00 76.90
10:20:01 AM all 11.05 0.17 10.43 2.37 0.00 75.98
10:30:01 AM all 3.17 0.00 2.58 0.06 0.00 94.19
10:40:01 AM all 2.00 0.00 1.60 0.48 0.00 95.92
10:50:01 AM all 0.84 0.00 0.67 0.01 0.00 98.48
11:00:01 AM all 0.72 0.00 0.62 0.01 0.00 98.65
Average: all 4.33 0.02 3.76 0.56 0.00 91.34
[root@weekend110 ~]#
CPU表示系统中运行的CPU的编号(如双核)
%user表示,在用户模式下进程运行所花的CPU时间(%)
%nice表示,一个运行良好的进程运行所花的CPU时间(%)
%system表示,进程在内核模式下运行所花的CPU时间(%)
%iowait表示,在无进程运行时CPU等待I/O完成所花的时间(%)
%idle表示,CPU空闲时间(%)
[root@weekend110 ~]# mpstat
Linux 2.6.32-431.el6.x86_64 (weekend110) 10/21/2016 _x86_64_ (1 CPU)
11:08:56 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
11:08:56 AM all 3.89 0.01 3.52 1.01 0.02 0.15 0.00 0.00 91.40
[root@weekend110 ~]# mpstat 2 表示2秒收集一次,按ctrl + c组合键退出
Linux 2.6.32-431.el6.x86_64 (weekend110) 10/21/2016 _x86_64_ (1 CPU)
11:08:59 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
11:09:01 AM all 0.52 0.00 0.52 0.00 0.00 0.00 0.00 0.00 98.97
11:09:03 AM all 0.00 0.00 0.51 0.00 0.00 0.00 0.00 0.00 99.49
11:09:05 AM all 0.50 0.00 0.50 0.00 0.00 0.50 0.00 0.00 98.51
11:09:07 AM all 0.52 0.00 0.52 0.00 0.00 0.00 0.00 0.00 98.97
11:09:09 AM all 0.00 0.00 0.51 0.00 0.00 0.00 0.00 0.00 99.49
11:09:11 AM all 0.51 0.00 0.51 0.00 0.00 0.51 0.00 0.00 98.46
^C
[root@weekend110 ~]#
%ird表示,硬件中断和软件中断所花费的CPU时间(%)
%intr/s表示,CPU每秒处理中断的次数
[root@weekend110 ~]# uptime
11:10:54 up 2:00, 3 users, load average: 0.01, 0.11, 0.07
[root@weekend110 ~]#
当然,也可以使用System Monitor窗口监控CPU的使用情况。