一些查看 Linux 服务器状态的命令

1. 使用 w 查看系统负载

[root@abc ~]# w
w: 60 column window is too narrow            (这个意思是窗口太小,最大化窗口就Ok)

[root@abc ~]# w
 13:46:43 up                  2 min,                  1 user,                               load average: 0.12, 0.08, 0.04   
当前系统时间              启动多长时间          登陆了多少用户              系统负载(单位时间内,使用cpu活动的进程):1分钟 5分钟 15分钟

USER     TTY      FROM          LOGIN@   IDLE       JCPU   PCPU WHAT
                     

root     pts/0    192.168.52.1     13:44    3.00s      0.00s  0.00s w

[root@abc ~]# cat /proc/cpuinfo                  (查看cpu信息)

总核数 = 物理 CPU 个数 X 每颗物理 CPU 的核数
总逻辑 CPU 数 = 物理 CPU 个数 X 每颗物理 CPU 的核数 X 超线程数

processor 逻辑处理器的 id。
physical id 有几个 cpu 处理器
core id 每个内核的 id。(有多少个内核)
cpu cores 一个 cpu 处理器中的内核数量。
siblings 一个 cup 处理器中的逻辑处理器的数量。

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

2.vmstat (Virtual Memory)查看虚拟内存使用的工具,使用 vmstat 来判定系统的瓶颈在哪里

二、虚拟内存的运行原理
在系统中运行的每个进程都需要使用到内存,但不是每个进程都需要每时每刻使用系统分配的内存空间。当系统运行所需内存超过实际的物理内存,内核会释放某些进程所占用但未使用的部分或所有物理内存,将这部分资料存储在磁盘上直到进程下一次调用,并将释放出的内存提供给有需要的进程使用。

三、使用说明
vmstat 1 (动态显示系统信息,1 秒钟一次)
进程:
r(run) 有多少进程再跑
b(block) 进程被 cpu 以外的(网络,内存)原因在等待

内存:
swapd 交换分区,如果数字频繁的变化,说明内存和虚拟分区正在频繁的交换数据,内存不够用了
free 可用内存大小

swap 分区:
si (in) 有多少 kb 的数据从 swap 进入到内存里去
so (out) 有多少 kb 的数据写入到 swap 里去

磁盘:
bi 从磁盘里读数据
bo 向磁盘里写数据 (这个数据如果很大,表示正在频繁的读写磁盘,b 会增加,因为导致会有很多进程等待磁盘)

cpu:
us 用户派的资源占用 cpu 多少百分比
sy 系统本身的进程或服务占用 cpu 百分比
id 空闲 cpu 的百分比
wa 有多少进程等待 cpu 的百分比

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
3.top 动态的查看进程使用资源状况

top - 14:44:33 up  1:00,  1 user,  load average: 0.00, 0.01, 0.05         (第一行和w的第一行一样)
Tasks:  86 total,   1 running,  85 sleeping,   0 stopped,   0 zombie     
   (总共多少进程,多少个在runing,多少个在休眠,多少个已经停止,多少个僵尸进程(主进程被以外禁止,留一些子进程))

%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
us 用户进程占百分比
sy 系统进程占百分比
ni 更改过优先级进程占百分比
id 等待进程占百分比
被偷走的 cpu 百分比(虚拟化,子机))

KiB Mem : 1008392 total, 718700 free, 131380 used, 158312 buff/cache
物理内存使用情况 总共内存 多少空闲 使用多少内存 缓存的内存量

KiB Swap: 2097148 total, 2097148 free, 0 used. 712768 avail Mem
swap 内存使用情况
total — 交换区总量(2GB)
used — 使用的交换区总量(2.5M)
free — 空闲交换区总量(2GB)
cached — 缓冲的交换区总量(4GB

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
PID 用户 pid
USER 用户名
PR 进程优先级
NI nice 值,负值表示高于优先级,正值表示低于优先级
VIRT 进程使用虚拟内存总量
RES 进程使用的,未被换出的物理内存大小
SHR 共享内存大小
S 进程状态,D= 不可中断的睡眠状态。R= 运行 S= 睡眠 T= 跟踪 / 停止 Z= 僵尸进程
%CPU CPU 占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 一 进程使用的物理内存百分比
COMMAND 进程名称(命令名 / 命令行)
(默认根据 %CPU 来排序,如果想根据 %MEM 内存来排序,按大写的 M 即可,按大写的 P 换回 %CPU 排序,数字 1 列出指定 CPU 的使用情况,q 退出)

top -c 可以在最后一行显示 COMMAND,用来查看具体的命令,全局的路径
top -bn1 静态的把所有的进程信息显示出来,在写脚本的时候适合使用

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
4.sar 监控系统状态 (被称为 Linux 系统里的瑞士×××)

[root@abc ~]# yum install sysstat  -y        安装sar

(每十分钟会把系统的状态过滤一遍保存在/var/log/sa里,生成以当天日期为名的saXX文件。第二天会生成一个以昨天日期为名的sarXX文件,saXX文件是二进制文件,不能用cat直接查看,但是sarXX可以

[root@abc sa]# sar -n DEV 1 5                   (查看网卡的流量,每一秒打印一次,一共打印5次)
Linux 3.10.0-514.el7.x86_64 (abc.com) 2017年11月27日 _x86_64_(1 CPU)

15时40分36秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
15时40分37秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时40分37秒     ens33      2.00      2.00      0.16      0.24      0.00      0.00      0.00

IFACE 网卡名
rxpck/s 接收到的数据包 几千还是正常的,上万或者几十万基本确定被攻击了
txpck/s 发送出去的数据包
rxkB/s 接受到的数据量
txkB/s 发送出去的数据量

[root@abc sa]# sar -n DEV -f /var/log/sa/saXX      (可以查看历史数据,日期就是XX的内容,历史文件最多保存一个月)
Linux 3.10.0-514.el7.x86_64 (abc.com) 2017年11月27日 _x86_64_(1 CPU)
15时20分01秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
15时30分01秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时30分01秒     ens33      0.04      0.04      0.00      0.00      0.00      0.00      0.00
15时40分01秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时40分01秒     ens33      0.38      0.24      0.03      0.04      0.00      0.00      0.00
15时50分01秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时50分01秒     ens33      0.14      0.09      0.01      0.01      0.00      0.00      0.00
平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:     ens33      0.19      0.12      0.02      0.02      0.00      0.00      0.00

[root@abc sa]# sar -q                       (-q查看系统负载。和w命令查看效果一样)
Linux 3.10.0-514.el7.x86_64 (abc.com) 2017年11月27日 _x86_64_(1 CPU)

15时20分01秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
15时30分01秒         1       104      0.00      0.01      0.05         0
15时40分01秒         1       104      0.00      0.01      0.05         0
15时50分01秒         1       103      0.00      0.01      0.05         0
平均时间:         1       104      0.00      0.01      0.05         0

runq-sz:运行队列的长度(等待运行的进程数)

plist-sz:进程列表中进程(processes)和线程(threads)的数量

ldavg-1:最后 1 分钟的系统平均负载(System load average)

ldavg-5:过去 5 分钟的系统平均负载

ldavg-15:过去 15 分钟的系统平均负载

[root@abc sa]# sar -b                       (-b查看磁盘读写信息)
Linux 3.10.0-514.el7.x86_64 (abc.com) 2017年11月27日 _x86_64_(1 CPU)

15时20分01秒       tps      rtps      wtps   bread/s   bwrtn/s
15时30分01秒      0.49      0.00      0.48      0.05     22.21
15时40分01秒      0.10      0.00      0.10      0.07      1.91
15时50分01秒      0.05      0.00      0.05      0.00      0.45
平均时间:      0.21      0.00      0.21      0.04      8.19

tps:每秒钟物理设备的 I/O 传输总量

rtps:每秒钟从物理设备读入的数据总量

wtps:每秒钟向物理设备写入的数据总量

bread/s:每秒钟从物理设备读入的数据量,单位为 块 /s

bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块 /s

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
5.nload 监察网卡流量

[root@abc sa]# yum install -y epel-release
[root@abc sa]# yum install nload -y


[root@abc sa]# nload                 显示网卡实时速度的页面

1.png
上半部分是:Incoming 也就是进入网卡的流量,下半部分是:Outgoing,也就是从这块网卡出去的流量
第一行分别是 网卡名,ip <- -> 左右方向键分别可以切换网卡
当前值 (Curr)
平均值 (Avg)
最小值 (Min)
最大值 (Max)
总和流量(Ttl)