- 10.1 使用w查看系统负载 - 10.2 vmstat命令 - 10.3 top命令 - 10.4 sar命令 - 10.5 nload命令 # 10.1 使用w查看系统负载 ![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170829/230935727.png?imageslim) - w命令 ``` [root@aminglinux-01 ~]# w 23:10:04 up 2:17, 2 users, load average: 0.01, 0.02, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 20:52 2:17m 0.06s 0.06s -bash root pts/0 192.168.202.1 20:53 4.00s 0.16s 0.03s w [root@aminglinux-01 ~]# [root@aminglinux-01 ~]# date 2017年 08月 29日 星期二 23:11:10 CST [root@aminglinux-01 ~]# ``` - w命令后分为几部分 1. 首先是一个当前系统的时间,,可以用date命令查看系统时间 2. 然后是系统启动的时间,我这里是2:17 3. 目前登录了几个用户,如果是网络登录,就是pts/0 pts/1...这个使我们的远程工具xshell登录的, 4. 如果是终端登录就是TTY - load average: 0.01, 0.02, 0.05 1. 这个表示系统负载,有什么含义呢,这有三个数字,这三个数字分别表示1分钟、5分钟、15分钟这个时间段内系统的负载值是多少,是一个数值 2. 这个数值有什么含义呢?表示单位时间段内使用cpu的活动的进程有多少个。 3. 第一个数值是 1分钟内使用cpu的活动的进程有多少个,这是一个平均值,这个数值不一定是整数,可以是零点几 也可以是100多 4. 当前这个数值多少算多,多少合适?比如当前是0,说明系统没有负载,没有负载就说明没有活动进程,说明系统处于非常空闲的一个状态,这种状态对于服务器、linux操作系统来讲就比较浪费,它在空跑 5. 那这个数值说明时候最好 最理想的状态? 要看有几颗cpu(逻辑cpu) 6. 服务器有很多类型的cpu, 有inter、 AMD 都会有几颗cpu ,每颗cpu上会有很多逻辑cpu - 怎么查看系统有多少cpu? - 使用命令cat /proc/cpuinfo 查看 ``` [root@aminglinux-01 ~]# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 37 model name : Intel(R) Core(TM) i5 CPU M 460 @ 2.53GHz stepping : 5 microcode : 0x2 cpu MHz : 2659.510 cache size : 3072 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 11 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni ssse3 cx16 sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer hypervisor lahf_lm ida arat dtherm tsc_adjust bogomips : 5320.13 clflush size : 64 cache_alignment : 64 address sizes : 42 bits physical, 48 bits virtual power management: [root@aminglinux-01 ~]# ``` - 看这个数字 processor : 0 - 如果是0就意味着这上面cpu只有1颗 - [x] 这里数字 几颗都是逻辑cpu - 如果是1,那就有2颗 - 如果是2,那就有3颗 - 如果是39,那就有40颗 -现在咱们一颗物理cpu上可以有俩核,每一核上又可以有多个逻辑cpu ,非常的复杂,这里不用关心有几颗物理cpu,每个cpu上有几核,只需要关心这个数字就行 - load average: 0.01 -现在我这个虚拟机上 只有1颗cpu ,数字为1的时候是最理想的,也不空闲,也没什么压力 - processor : 0 这个数字最大是7 - 假如说我这里processor : 7 是7,那就说明有8颗cpu,这个时候负载是多少合适呢?load average 这个数字不高于8就没问题,当cpu在工作的时候,只要保证每一个cpu又一个进程在占用它 就没问题,就能工作过来,就不会累,没有排队这一说 - 如果现在负载是9 这个值是9 ,就说明8颗cpu不够用了,总有一个进程处于等待状态,等待cpu给它分配资源, - 同理那个是5分钟有多少个进程,15分钟有多少个进程,我们比较关心那个1分钟的。 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 20:52 2:17m 0.06s 0.06s -bash root pts/0 192.168.202.1 20:53 4.00s 0.16s 0.03s w - USER 显示登录用户 - TTY表示终端 - pts/0 pts/1远程登录 - FROM 表示来自哪里 这里来自192.168.202.1 - 下面就是使用cpu的时间 以及使用的什么命令 -uptime 这个命令 和 w命令结果是一样的 ,用w看就可以了 ``` [root@aminglinux-01 ~]# uptime 23:46:58 up 2:54, 2 users, load average: 0.00, 0.01, 0.05 [root@aminglinux-01 ~]# w 23:47:00 up 2:54, 2 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 20:52 2:54m 0.06s 0.06s -bash root pts/0 192.168.202.1 20:53 4.00s 0.15s 0.01s w [root@aminglinux-01 ~]# ``` # 10.2 vmstat命令 - 当系统负载值偏高的时候,比如数值大于cpu核数了,说明cpu不够用,是什么原因导致cpu不够用,这时候进程都在干什么,都有哪些任务在使用cpu,更像进一步的查看系统的瓶颈在哪里, - 有这一个命令,vmstat - 它可以查看到包括你的cpu 内存 虚拟磁盘,交换分区,io也就是你的磁盘 包括系统进程,等等相关的东西 - vmstat 1 - 数字1 表示每1秒钟 显示一次 动态显示 ,感觉差不多的时候 按ctrl c 终止掉 ``` [root@aminglinux-01 ~]# vmstat 1 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 683716 876 183800 0 0 13 1 29 47 0 0 100 0 0 0 0 0 683716 876 183832 0 0 0 0 32 43 0 0 100 0 0 0 0 0 683716 876 183832 0 0 0 0 24 35 0 0 100 0 0 0 0 0 683716 876 183832 0 0 0 0 31 38 0 0 100 0 0 0 0 0 683716 876 183832 0 0 0 0 24 32 0 0 100 0 0 0 0 0 683716 876 183832 0 0 0 0 32 37 0 1 99 0 0 0 0 0 683716 876 183832 0 0 0 0 25 36 0 0 100 0 0 0 0 0 683716 876 183832 0 0 0 0 30 38 0 0 100 0 0 0 0 0 683716 876 183832 0 0 0 0 21 29 0 0 100 0 0 0 0 0 683716 876 183832 0 0 0 0 27 38 0 0 100 0 0 ^C [root@aminglinux-01 ~]# ``` - vmstat 1 5 表示每1秒钟显示一次 ,只需要显示5次 自动结束 ``` [root@aminglinux-01 ~]# vmstat 1 5 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 683716 876 183832 0 0 13 1 29 47 0 0 100 0 0 0 0 0 683700 876 183832 0 0 0 0 25 37 0 0 100 0 0 0 0 0 683700 876 183832 0 0 0 0 31 40 0 0 100 0 0 0 0 0 683700 876 183832 0 0 0 0 24 30 0 0 100 0 0 0 0 0 683700 876 183832 0 0 0 0 29 40 0 0 100 0 0 [root@aminglinux-01 ~]# ``` - [ ] - 上面这些信息,只需要关注这几点 r 、b、swpd、 si、 so、bi、bo、us、sy、wa - 1. r 英文单词 run 简写,表示有多少个进程处于run的状态,大家不要误认为等待cpu时间片意味着这个进程没有运行,实际上某一时刻1个cpu只能有一个进程占用,其他进程只能排着队等着,此时这些排队的等待cpu资源的进程依然是运行状态,该数值如果长期处于大于服务器cpu的个数,说明cpu资源不够用了。 - b block:表示等待资源的进程数 ,进程被cpu以外的资源,硬盘啊,网络啊,给阻断了,处于一个等待状态,卡死了,b block状态,被堵死了,有多少个进程在等待在block, - swpd 之前将磁盘分区,又一个swap交换分区,当内存不太够的时候,系统可以把内存里的一部分空间拿出来临时放到swap空间里去,什么时候才会放呢? 内存不够的时候,所以要关注下这个数字,如果这个数字不变还好,没关系,如果这个数字一直在变化,一会儿多了 一会少了,说明交换分区和内存在频繁的交换分区,只有一个说明 一个结果,你的内存不够了 - si so ,这个和sapd有关联的,如果swpd在频繁的改变,si so 肯定存在数字变更的 - si 有多少个数据 块 单位kb ,有多少kb的数据从swap 进入到内存中, - so 有多少kb的数据从从内存里出来 进入到swap里去 - bi bo 这个和磁盘有关联的,如果俩个数据很大,说明磁盘在频繁的读写 - bi 从磁盘里出来进入到内存里去 表示从块设备读取数据的量 (读磁盘) 单位kb - bo 从内存出来进入刅磁盘里去 表示从块设备 写入数据的量 (写磁盘) 单位kb - [ ] 这个磁盘io 想比较cpu 内存也好 他是很慢的,如果有那么多数据频繁的读写,肯定会造成b列 增加,因为它有很多进程在等待你的磁盘,这是必然的。 - us 表示用户级别的, 操作系统不可能仅仅是运行一个系统,比如说跑了一个服务,一个网站mysql 它占了cpu的一部分资源,体现在us上,这个数字不会超过100 一共就100% ,us表示用户所占用cpu的百分比 - sy 表示系统本身 进程、服务 占用cpu的百分比 - id 表示cpu处于空闲状态的百分比 1.us 加 sy 加 id = 100 三个数字百分比等于100% - wa wait 表示等待cpu的百分比 有多少个进程 在等待cpu ,如果这一列很大,说明cpu不够用 # 10.3 top命令 ![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170831/211159026.png?imageslim) - top命令 - top命令用于动态监控进程所占的系统资源,每隔3秒变一次 ``` [root@aminglinux-01 ~]# top top - 21:13:13 up 9 min, 2 users, load average: 0.00, 0.03, 0.05 Tasks: 89 total, 2 running, 87 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 999936 total, 716352 free, 114432 used, 169152 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 709324 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2083 root 20 0 142972 5188 3924 S 0.7 0.5 0:00.50 sshd 494 root 20 0 302636 6144 4788 S 0.3 0.6 0:00.87 vmtoolsd 2111 root 20 0 157576 2140 1532 R 0.3 0.2 0:00.03 top 1 root 20 0 128092 6700 3952 S 0.0 0.7 0:02.17 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.08 ksoftirqd/0 6 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kworker/u256:0 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 R 0.0 0.0 0:00.76 rcu_sched 10 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 12 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs 14 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungtaskd 16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback 17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd 18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset 19 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd 20 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 md 21 root 20 0 0 0 0 S 0.0 0.0 0:01.08 kworker/0:1 26 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0 ``` - Tasks: 89 total, 2 running, 87 sleeping, 0 stopped, 0 zombie - 总共任务 89个,2个在运行,87正在休眠(暂时先休息一下,过一会儿再运行,并不是停止了),0个停止的,0个僵尸 - 僵尸进程 它的主进程被意外终止了,但是,留下一下子进程在这留着,没人管它了,只能自生自灭 - %Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st - us + sy +id =100 0.0 wa有多少个wait , 0.0 st被偷走的cpu百分比,如果你的服务器做了一些虚拟化,它有一些子机,虚拟机,有可能会偷走一部分cpu - 我们比较关注的是 us , ``` %Cpu(s): 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 999936 total, 716056 free, 114532 used, 169348 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 709072 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2118 root 20 0 157576 2144 1532 R 0.3 0.2 0:00.18 top 1 root 20 0 128092 6700 3952 S 0.0 0.7 0:02.23 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.13 ksoftirqd/0 ``` - KiB Mem : 999936 这是k字节 大概是1个g - 默认按cpu 从高到低排序 - 按shift+m 键 (大写的M)可以按照内存的使用大小排序 ``` PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 523 root 20 0 327432 26876 6544 S 0.0 2.7 0:01.38 firewalld 832 root 20 0 553152 16448 5800 S 0.0 1.6 0:00.81 tuned 492 polkitd 20 0 528276 12684 4708 S 0.0 1.3 0:00.16 polkitd 536 root 20 0 437864 8124 6264 S 0.0 0.8 0:00.60 NetworkManager 1 root 20 0 128092 6700 3952 S 0.0 0.7 0:02.23 systemd ``` - 大写的P 按照cpu使用情况从高到低排序 ``` PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2118 root 20 0 157576 2144 1532 R 0.5 0.2 0:00.76 top 1 root 20 0 128092 6700 3952 S 0.0 0.7 0:02.24 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.15 ksoftirqd/0 ``` - 按数字1 可以列出所有核 cpu的使用状态 - 按数字1 来回切换 cpu的使用状态 - 按q 退出 - 按top -c 可以查看到具体的命令全局的路径 看的比较详细 ``` [root@aminglinux-01 ~]# top -c top - 21:34:31 up 30 min, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 88 total, 1 running, 87 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 999936 total, 716056 free, 114532 used, 169348 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 709072 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2083 root 20 0 142972 5188 3924 S 0.3 0.5 0:00.84 sshd: root@pts/0 2121 root 20 0 157604 2224 1612 R 0.3 0.2 0:00.03 top -c 1 root 20 0 128092 6700 3952 S 0.0 0.7 0:02.24 /usr/lib/systemd/systemd --switched-root --system --deserialize 21 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kthreadd] 3 root 20 0 0 0 0 S 0.0 0.0 0:00.15 [ksoftirqd/0] 6 root 20 0 0 0 0 S 0.0 0.0 0:00.08 [kworker/u256:0] 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 [migration/0] 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [rcu_bh] 9 root 20 0 0 0 0 S 0.0 0.0 0:00.81 [rcu_sched] 10 root rt 0 0 0 0 S 0.0 0.0 0:00.02 [watchdog/0] 12 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [khelper] 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kdevtmpfs] 14 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [netns] 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [khungtaskd] 16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [writeback] 17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kintegrityd] 18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [bioset] 19 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kblockd] 20 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [md] 21 root 20 0 0 0 0 S 0.0 0.0 0:01.97 [kworker/0:1] 26 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kswapd0] 27 root 25 5 0 0 0 S 0.0 0.0 0:00.00 [ksmd] ``` - 按命令 top -bn1 这个可以静态的显示, 一次性的 把所有的进程列出来 - 这种用法适合在写脚本的时候用的 ``` [root@aminglinux-01 ~]# top -bn1 top - 21:36:21 up 32 min, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 88 total, 1 running, 87 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.4 us, 0.7 sy, 0.0 ni, 98.8 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 999936 total, 716180 free, 114404 used, 169352 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 709196 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2122 root 20 0 157572 2020 1492 R 6.7 0.2 0:00.01 top 1 root 20 0 128092 6700 3952 S 0.0 0.7 0:02.24 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.15 ksoftirqd/0 6 root 20 0 0 0 0 S 0.0 0.0 0:00.08 kworker/u256:0 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0.0 0.0 0:00.81 rcu_sched 10 root rt 0 0 0 0 S 0.0 0.0 0:00.02 watchdog/0 12 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs 14 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungtaskd 16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback 17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd 18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset 19 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd 20 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 md 21 root 20 0 0 0 0 S 0.0 0.0 0:02.04 kworker/0:1 26 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0 27 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd 28 root 39 19 0 0 0 S 0.0 0.0 0:00.06 khugepaged 29 root 20 0 0 0 0 S 0.0 0.0 0:00.00 fsnotify_mark 30 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 crypto 38 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kthrotld 40 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kmpath_rdacd 41 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kpsmoused 43 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ipv6_addrconf 62 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 deferwq 94 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kauditd 234 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ata_sff 235 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 mpt_poll_0 236 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 mpt/0 239 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_0 241 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_0 245 root 20 0 0 0 0 S 0.0 0.0 0:00.01 scsi_eh_1 246 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kworker/u256:2 250 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_1 252 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_2 254 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_2 255 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ttm_swap 278 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfsalloc 279 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs_mru_cache 280 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-buf/sda3 281 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-data/sda3 282 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-conv/sda3 283 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-cil/sda3 284 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-reclaim/sda 285 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-log/sda3 286 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-eofblocks/s 287 root 20 0 0 0 0 S 0.0 0.0 0:00.15 xfsaild/sda3 355 root 20 0 34876 2748 2424 S 0.0 0.3 0:00.31 systemd-journal 379 root 20 0 342584 4280 2608 S 0.0 0.4 0:00.01 lvmetad 383 root 20 0 47372 5736 2796 S 0.0 0.6 0:00.27 systemd-udevd 398 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 nfit 424 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-buf/sda1 426 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-data/sda1 427 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-conv/sda1 430 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-cil/sda1 431 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-reclaim/sda 432 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-log/sda1 433 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-eofblocks/s 434 root 20 0 0 0 0 S 0.0 0.0 0:00.00 xfsaild/sda1 445 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kdmflush 446 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset 468 root 16 -4 55416 1724 1320 S 0.0 0.2 0:00.05 auditd 488 dbus 20 0 32760 1856 1408 S 0.0 0.2 0:00.51 dbus-daemon 491 root 20 0 24296 1732 1416 S 0.0 0.2 0:00.04 systemd-logind 492 polkitd 20 0 528276 12684 4708 S 0.0 1.3 0:00.16 polkitd 494 root 20 0 302636 6152 4788 S 0.0 0.6 0:03.08 vmtoolsd 502 root 20 0 126224 1656 1036 S 0.0 0.2 0:00.30 crond 504 chrony 20 0 115848 1848 1476 S 0.0 0.2 0:00.09 chronyd 506 root 20 0 92316 2416 1776 S 0.0 0.2 0:00.35 login 523 root 20 0 327432 26876 6544 S 0.0 2.7 0:01.39 firewalld 536 root 20 0 437864 8124 6264 S 0.0 0.8 0:00.60 NetworkManager 832 root 20 0 553152 16448 5800 S 0.0 1.6 0:00.88 tuned 834 root 20 0 287644 4144 3212 S 0.0 0.4 0:00.30 rsyslogd 840 root 20 0 82468 1264 408 S 0.0 0.1 0:00.00 sshd 1243 root 20 0 88980 2096 1096 S 0.0 0.2 0:00.04 master 1258 postfix 20 0 89084 3964 2972 S 0.0 0.4 0:00.02 pickup 1259 postfix 20 0 89152 3988 2992 S 0.0 0.4 0:00.02 qmgr 2062 root 20 0 116308 3040 1696 S 0.0 0.3 0:00.06 bash 2083 root 20 0 142972 5188 3924 S 0.0 0.5 0:00.86 sshd 2086 root 20 0 116308 3024 1684 S 0.0 0.3 0:00.06 bash 2109 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 2116 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:1H 2119 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kworker/0:0 2120 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kworker/0:2 [root@aminglinux-01 ~]# ``` - PID可能会用到,某个进程想杀死,q+pid 就能把这个进程杀死,USER表示哪个用户运行的 - PR NI 关于优先级的,可以不用关注它 - PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2122 root 20 0 157572 2020 1492 R 6.7 0.2 0:00.01 top 1 root 20 0 128092 6700 3952 S 0.0 0.7 0:02.24 systemd # 10.4 sar命令 这是一个非常全面分析系统状态的一个命令,只不过主要用来查看网卡的流量,也同样可以查看cpu 磁盘,内存的状态 ![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170831/214158854.png?imageslim) - 这个命令如果没有 需要安装一个包 ``` [root@aminglinux-01 ~]# sar -bash: sar: 未找到命令 [root@aminglinux-01 ~]# yum install -y sysstat 总计 559 kB/s | 351 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : lm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.x86_64 1/2 正在安装 : sysstat-10.1.5-11.el7.x86_64 2/2 验证中 : sysstat-10.1.5-11.el7.x86_64 1/2 验证中 : lm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.x86_64 2/2 已安装: sysstat.x86_64 0:10.1.5-11.el7 作为依赖被安装: lm_sensors-libs.x86_64 0:3.4.0-4.20160601gitf9185e5.el7 完毕! [root@aminglinux-01 ~]# ``` -安装完 来运行这个命令 ``` [root@aminglinux-01 ~]# sar 无法打开 /var/log/sa/sa31: 没有那个文件或目录 [root@aminglinux-01 ~]# ls /var/log/sa [root@aminglinux-01 ~]# date 2017年 08月 31日 星期四 21:58:34 CST [root@aminglinux-01 ~]# ``` - sar 命令不加参数,会默认调用系统里面保留的历史文件 - sar 没10分钟会把系统文件过滤一遍 ,保存一份,这个文件就存在这个目录里,这个时候还没有生成,只有10分钟之后才会有, - 使用命令sar -n DEV 1 10 每隔1秒钟显示一次 显示10次 ``` [root@aminglinux-01 ~]# sar -n DEV 1 10 Linux 3.10.0-514.el7.x86_64 (aminglinux-01) 2017年08月31日 _x86_64_ (1 CPU) 21时59分39秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 21时59分40秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 21时59分40秒 ens33 1.00 1.00 0.06 0.18 0.00 0.00 0.00 21时59分40秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 21时59分41秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 21时59分41秒 ens33 1.01 1.01 0.06 0.40 0.00 0.00 0.00 21时59分41秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 21时59分42秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 21时59分42秒 ens33 1.00 1.00 0.06 0.40 0.00 0.00 0.00 21时59分42秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 21时59分43秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 21时59分43秒 ens33 0.99 0.99 0.06 0.40 0.00 0.00 0.00 21时59分43秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 21时59分44秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 21时59分44秒 ens33 1.01 1.01 0.06 0.40 0.00 0.00 0.00 21时59分44秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 21时59分45秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 21时59分45秒 ens33 1.01 1.01 0.06 0.40 0.00 0.00 0.00 21时59分45秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 21时59分46秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 21时59分46秒 ens33 0.99 0.99 0.06 0.40 0.00 0.00 0.00 21时59分46秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 21时59分47秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 21时59分47秒 ens33 1.01 1.01 0.06 0.40 0.00 0.00 0.00 21时59分47秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 21时59分48秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 21时59分48秒 ens33 1.00 1.00 0.06 0.40 0.00 0.00 0.00 21时59分48秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 21时59分49秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 21时59分49秒 ens33 1.01 1.01 0.06 0.40 0.00 0.00 0.00 平均时间: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 平均时间: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均时间: ens33 1.00 1.00 0.06 0.38 0.00 0.00 0.00 [root@aminglinux-01 ~]# ``` - 21时59分39秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s - 21时59分40秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 21时59分40秒 ens33 1.00 1.00 0.06 0.18 0.00 0.00 0.00 - 第一列是时间,第二列是网卡的名字 有俩个网卡,一个是lo 一个是ens33 - 第三列是rxpck/s 接收到 的数据包 - 第四列是txpck/s 发送出去的数据包 单位个 多少个 - rxkB/s 接收到的数据包 单位kb - txkB/s 发送的数据包 单位kb - 着重看rxpck/s txpck/s rxkB/s txkB/s - rxpck/s 这个数据包 几千还是正常的 上万 几十万 就不太正常了 ,也许被攻击了 ``` [root@aminglinux-01 ~]# sar Linux 3.10.0-514.el7.x86_64 (aminglinux-01) 2017年08月31日 _x86_64_ (1 CPU) [root@aminglinux-01 ~]# ``` - 已经不报错了,已经生成那个文件了, ``` [root@aminglinux-01 ~]# sar -n DEV -f /var/log/sa/sa31 Linux 3.10.0-514.el7.x86_64 (aminglinux-01) 2017年08月31日 _x86_64_ (1 CPU) ``` - 可以查看历史数据的 这个31 是根据今天的日期来命名的 今天是8.31日,这个目录下最多保留一个月 - 查看系统的负载sar -q ``` [root@aminglinux-01 ~]# sar -q 1 10 Linux 3.10.0-514.el7.x86_64 (aminglinux-01) 2017年08月31日 _x86_64_ (1 CPU) 22时13分15秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 22时13分16秒 1 107 0.05 0.03 0.05 0 22时13分17秒 1 107 0.05 0.03 0.05 0 22时13分18秒 1 107 0.05 0.03 0.05 0 22时13分19秒 1 107 0.05 0.03 0.05 0 22时13分20秒 1 107 0.05 0.03 0.05 0 22时13分21秒 1 107 0.05 0.03 0.05 0 22时13分22秒 1 107 0.05 0.03 0.05 0 ^C 22时13分23秒 2 107 0.05 0.03 0.05 0 平均时间: 1 107 0.05 0.03 0.05 0 [root@aminglinux-01 ~]# w 22:13:26 up 1:09, 2 users, load average: 0.05, 0.03, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 21:04 1:09m 0.06s 0.06s -bash root pts/0 192.168.202.1 21:04 6.00s 0.23s 0.04s w [root@aminglinux-01 ~]# sar -q Linux 3.10.0-514.el7.x86_64 (aminglinux-01) 2017年08月31日 _x86_64_ (1 CPU) 22时00分01秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 22时10分01秒 1 107 0.00 0.01 0.05 0 平均时间: 1 107 0.00 0.01 0.05 0 [root@aminglinux-01 ~]# [root@aminglinux-01 ~]# sar -q -f /var/log/sa/sa31 ^C ``` - 查看这个命令一般是查看历史数据 - 查看磁盘的sar -b 看它的读和写 ``` [root@aminglinux-01 ~]# sar -b 1 5 Linux 3.10.0-514.el7.x86_64 (aminglinux-01) 2017年08月31日 _x86_64_ (1 CPU) 22时19分06秒 tps rtps wtps bread/s bwrtn/s 22时19分07秒 0.00 0.00 0.00 0.00 0.00 22时19分08秒 0.00 0.00 0.00 0.00 0.00 22时19分09秒 0.00 0.00 0.00 0.00 0.00 22时19分10秒 0.00 0.00 0.00 0.00 0.00 22时19分11秒 0.00 0.00 0.00 0.00 0.00 平均时间: 0.00 0.00 0.00 0.00 0.00 [root@aminglinux-01 ~]# ``` # 10.5 nload 命令 - 监控网卡流量的命令 - 没有nload命令需要安装俩个包 yum install epel-release yum install nload ``` [root@aminglinux-01 ~]# nload -bash: nload: 未找到命令 [root@aminglinux-01 ~]# yum install epel-release 更新完毕: epel-release.noarch 0:7-10 完毕! [root@aminglinux-01 ~]# yum install nload 已安装: nload.x86_64 0:0.7.4-4.el7 完毕! [root@aminglinux-01 ~]# ``` -安装完成后直接运行nload ``` [root@aminglinux-01 ~]# nload Device ens33 [192.168.202.130] (1/2): ============================================================================================= Incoming: Curr: 944.00 Bit/s Avg: 1.02 kBit/s Min: 944.00 Bit/s Max: 1.84 kBit/s Ttl: 6.69 MByte Outgoing: Curr: 8.07 kBit/s Avg: 7.63 kBit/s Min: 4.25 kBit/s Max: 8.07 kBit/s Ttl: 2.80 MByte ``` -按方向键 右键 查看第二个网卡 可以来回切换 左右 ``` Device lo [127.0.0.1] (2/2): ============================================================================================= Incoming: Curr: 0.00 Bit/s Avg: 0.00 Bit/s Min: 0.00 Bit/s Max: 0.00 Bit/s Ttl: 5.39 kByte Outgoing: Curr: 0.00 Bit/s Avg: 0.00 Bit/s Min: 0.00 Bit/s Max: 0.00 Bit/s Ttl: 5.39 kByte ``` - 通常情况下我们买的带宽 指的是出去的带宽 Outgoing , - Inconming 进来的流量,如果有攻击 进来的流量就很大 --- - 补充下 关于sa 命令 -在/var/log/sa 目录下有一个sa31 文件 - sar31 是可以查看的 可以cat的 需要明天才能生成这个文件 - sa31 是一个二进制文件,只能用sar 命令 -f 去加载它查看它, - sar17 可以使用cat文件去查看 ``` [root@aminglinux-01 ~]# ls /var/log/sa sa31 [root@aminglinux-01 ~]# ls /var/log/sa/sar31 ```
0.1 使用w查看系统负载 - 10.2 vmstat命令 - 10.3 top命令 - 10.4 sar命令 - 10.5 nload命令
原文地址:http://ch71smas.blog.51cto.com/13090095/1964429