七周一次课

10.1 使用w查看系统负载

Linux w命令用于显示目前登入系统的用户信息。

执行这项指令可得知目前登入系统的用户有哪些人,以及他们正在执行的程序。

单独执行 w 指令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。

语法
w [-fhlsuV] [用户名称]
参数说明:

-f  开启或关闭显示用户从何处登入系统。
-h  不显示各栏位的标题信息列。
-l  使用详细格式列表,此为预设值。
-s  使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。
-u  忽略执行程序的名称,以及该程序耗费CPU时间的信息。
-V  显示版本信息。
实例
显示当前用户

w//显示当前用户,不显示登录位置

19:50:14 up 9:27, 4 users, load average: 0.31, 0.26, 0.18
USER   TTY   FROM       LOGIN@  IDLE  JCPU  PCPU WHAT
root   tty7   :0        Thu12  31:39m 10:10  0.60s gnome-session
root   pts/0  :0.0       17:09  2:18m 15.26s 0.15s bash
root   pts/1  192.168.1.17   18:51  1.00s 1.24s 0.14s -bash
root   pts/2  192.168.1.17   19:48  60.00s 0.05s 0.05s -bash

不显示登录位置

w -f

19:53:59 up 9:31, 4 users, load average: 0.05, 0.16, 0.15
USER   TTY    LOGIN@  IDLE  JCPU  PCPU WHAT
root   tty7   Thu12  31:43m 10:10  0.60s gnome-session
root   pts/0   17:09  2:21m 15.26s 0.15s bash
root   pts/1   18:51  0.00s 1.04s 0.14s -bash
root   pts/2   19:48  4:45  0.05s 0.05s -bash

以精简模式显示

w -s
19:54:37 up 9:31, 4 users, load average: 0.24, 0.19, 0.16
USER   TTY   FROM        IDLE WHAT
root   tty7   :0        31:43m gnome-session
root   pts/0  :0.0       2:22m bash
root   pts/1  192.168.1.17   0.00s -bash
root   pts/2  192.168.1.17   5:23 -bash

不显示标题

w -h
root   tty7   :0        Thu12  31:44m 10:10  0.60s gnome-session
root   pts/0  :0.0       17:09  2:23m 15.26s 0.15s bash
root   pts/1  192.168.1.17   18:51  0.00s 1.05s 0.14s -bash
root   pts/2  192.168.1.17   19:48  5:54  0.05s 0.05s -bash

10.2 vmstat命令

• vmstat命令的含义为显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。
• -a:显示活动内页;
-f:显示启动后创建的进程总数;
-m:显示slab信息;
-n:头信息仅显示一次;
-s:以表格方式显示事件计数器和内存状态;
-d:报告磁盘状态;
-p:显示指定的硬盘分区状态;
-S:输出信息的单位
• vmstat 监控系统状态
• Vmstat 1 每隔1s打印一次
Vmstat 1 5 每隔1s打印一次,打印5次

扫描二维码关注公众号,回复: 73493 查看本文章
[root@radius ~]# vmstat 1 6
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  60408 479876 443120 8139484    0    0     0    49    1    1  0  0 100  0  0
 0  0  60408 479920 443120 8139488    0    0     0    36  861 1416  0  0 100  0  0
 0  0  60408 479808 443120 8139488    0    0     0  1600  863 1387  0  0 99  0  0
 0  0  60408 480316 443120 8139504    0    0     0    40  772 1273  0  1 99  0  0
 0  0  60408 480084 443120 8139480    0    0     0   364  744 1226  0  0 100  0  0
 0  0  60408 479712 443120 8139480    0    0     0    28  698 1175  0  0 100  0  0

字段说明:
Procs(进程)
• r: 运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1)
• b: 等待IO的进程数量。
Memory(内存)
• swpd: 使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能。
• free: 空闲物理内存大小。
• buff: 用作缓冲的内存大小。
• cache: 用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。
Swap
• si: 每秒从交换区写到内存的大小,由磁盘调入内存。
• so: 每秒写入交换区的内存大小,由内存调入磁盘。
注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。
IO(现在的Linux版本块的大小为1kb)
• bi: 每秒读取的块数
• bo: 每秒写入的块数
注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。
system(系统)
• in: 每秒中断数,包括时钟中断。
• cs: 每秒上下文切换数。
注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。
CPU(以百分比表示)
• us: 用户进程执行时间百分比(user time)
us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。
• sy: 内核系统进程执行时间百分比(system time)
sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。
• wa: IO等待时间百分比
wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。
• id: 空闲时间百分比

• 关键的几列:r,b,swpd,si,so,bi,bo,us,wa

10.3 top命令

top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。
语法
top(选项)
选项
-b:以批处理模式操作;
-c:显示完整的治命令;
-d:屏幕刷新间隔时间;
-I:忽略失效过程;
-s:保密模式;
-S:累积模式;
-i<时间>:设置间隔时间;
-u<用户名>:指定用户名;
-p<进程号>:指定进程;
-n<次数>:循环显示的次数。
top交互命令
在top命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了-s选项, 其中一些命令可能会被屏蔽。
h:显示帮助画面,给出一些简短的命令总结说明;
k:终止一个进程;
i:忽略闲置和僵死进程,这是一个开关式命令;
q:退出程序;
r:重新安排一个进程的优先级别;
S:切换到累计模式;
s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
f或者F:从当前显示中添加或者删除项目;
o或者O:改变显示项目的顺序;
l:切换显示平均负载和启动时间信息;
m:切换显示内存信息;
t:切换显示进程和CPU状态信息;
c:切换显示命令名称和完整命令行;
M:根据驻留内存大小进行排序;
P:根据CPU使用百分比大小进行排序;
T:根据时间/累计时间进行排序;
w:将当前设置写入~/.toprc文件中。
实例

top - 09:44:56 up 16 days, 21:23,  1 user,  load average: 9.59, 4.75, 1.92
Tasks: 145 total,   2 running, 143 sleeping,   0 stopped,   0 zombie
Cpu(s): 99.8%us,  0.1%sy,  0.0%ni,  0.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4147888k total,  2493092k used,  1654796k free,   158188k buffers
Swap:  5144568k total,       56k used,  5144512k free,  2013180k cached

解释:
• top - 09:44:56[当前系统时间],
• 16 days[系统已经运行了16天],
• 1 user[个用户当前登录],
• load average: 9.59, 4.75, 1.92[系统负载,即任务队列的平均长度]
• Tasks: 145 total[总进程数],
• 2 running[正在运行的进程数],
• 143 sleeping[睡眠的进程数],
• 0 stopped[停止的进程数],
• 0 zombie[冻结进程数],
• Cpu(s): 99.8%us[用户空间占用CPU百分比],
• 0.1%sy[内核空间占用CPU百分比],
• 0.0%ni[用户进程空间内改变过优先级的进程占用CPU百分比],
• 0.2%id[空闲CPU百分比], 0.0%wa[等待输入输出的CPU时间百分比],
• 0.0%hi[],
• 0.0%st[],
• Mem: 4147888k total[物理内存总量],
• 2493092k used[使用的物理内存总量],
• 1654796k free[空闲内存总量],
• 158188k buffers[用作内核缓存的内存量]
• Swap:  5144568k total[交换区总量],
• 56k used[使用的交换区总量],
• 5144512k free[空闲交换区总量],
• 2013180k cached[缓冲的交换区总量],

10.4 sar命令

• yum install -y sysstat
• sar -n DEV 网卡流量
• sar -q 系统负
• sar -b 磁盘读写
• sar -f /var/log/sa/saxx 历史文件
Sa 二进制文件只能通过sar命令调用查看
Sar 第二天才能看到,可以cat查看
sar命令是Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。
语法
sar(选项)(参数)
选项
-A:显示所有的报告信息;
-b:显示I/O速率;
-B:显示换页状态;
-c:显示进程创建活动;
-d:显示每个块设备的状态;
-e:设置显示报告的结束时间;
-f:从指定文件提取报告;
-i:设状态信息刷新的间隔时间;
-P:报告每个CPU的状态;
-R:显示内存状态;
-u:显示CPU利用率;
-v:显示索引节点,文件和其他内核表的状态;
-w:显示交换分区状态;
-x:显示给定进程的状态。
参数
• 间隔时间:每次报告的间隔时间(秒);
• 次数:显示报告的次数。
实例
察看内存和交换空间的使用率:

[root@aiker02 ~]# sar -r
Linux 3.10.0-514.26.2.el7.x86_64 (aiker02)      04/26/2018      _x86_64_        (1 CPU)

12:00:01 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
12:10:01 AM     75980   1807744     95.97    142196   1424580    297316     15.78    848388    762212      1204
12:20:01 AM     75328   1808396     96.00    142200   1425140    297316     15.78    849252    761948       660
12:30:01 AM     74528   1809196     96.04    142200   1425696    297316     15.78    850040    761728       192
12:40:01 AM     71752   1811972     96.19    142200   1428412    297316     15.78    850868    763576      1164
12:50:01 AM     75308   1808416     96.00    142200   1424864    297316     15.78    843508    767408       772
01:00:01 AM     72608   1811116     96.15    142200   1427372    297316     15.78    844344    769108       712
01:10:01 AM     71984   1811740     96.18    142200   1427940    297316     15.78    845120    768856      1144
01:20:01 AM     71140   1812584     96.22    142204   1428492    297316     15.78    845944    768616       484
01:30:01 AM     70456   1813268     96.26    142204   1429048    297316     15.78    846752    768384       848
01:40:01 AM     70028   1813696     96.28    142204   1429640    297316     15.78    847552    768112      1192
01:50:01 AM     69056   1814668     96.33    142204   1430168    297316     15.78    848360    767856       296
02:00:01 AM     68424   1815300     96.37    142208   1430724    297316     15.78    849192    767632       692
02:10:01 AM     90376   1793348     95.20    142216   1407568    303348     16.10    828128    768216      1116
02:20:01 AM     87560   1796164     95.35    142228   1410176    303348     16.10    829088    769956       360
02:30:01 AM     80008   1803716     95.75    142232   1414848    306632     16.28    832644    773748      1092
02:40:01 AM     73348   1810376     96.11    142232   1415464    315948     16.77    838908    773512      1028

kbmemfree与kbmemused字段分别显示内存的未使用与已使用空间,后面跟着的是已使用空间的百分比(%memused字段)。kbbuffers与kbcached字段分别显示缓冲区与系统全域的数据存取量,单位为KB。
观察系统部件10分钟,并对数据进行排序:
sar -o temp 60 10

[root@aiker02 ~]# sar -o temp 60 10
Linux 3.10.0-514.26.2.el7.x86_64 (aiker02)      04/26/2018      _x86_64_        (1 CPU)

08:55:11 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
08:56:11 PM     all      0.43      0.00      0.33      0.07      0.00     99.16
08:57:11 PM     all      0.40      0.00      0.28      0.07      0.00     99.25

10.5 nload命令

yum install -y epel-release
yum install -y nload
nload
Device eth0 [172.18.111.154] (1/2):
===================================================================================
Incoming:

                                                         Curr: 3.66 kBit/s
                                                         Avg: 6.59 kBit/s
                                                         Min: 952.00 Bit/s
                                                         Max: 48.77 kBit/s
                                                         Ttl: 2.13 GByte
Outgoing:

                                                         Curr: 8.57 kBit/s
                                                         Avg: 14.32 kBit/s
                                                         Min: 4.70 kBit/s
                                                         Max: 52.80 kBit/s
                                                         Ttl: 865.76 MByte

猜你喜欢

转载自blog.51cto.com/235571/2108309