10.1使用w查看系统负载
[root@localhost~]# w
20:28:15 up 21 min, 1 user, load average: 0.00, 0.03, 0.06
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 20:11 7.00s 0.12s 0.02s w
第一行从左至右显示的信息依次为:时间、系统运行时间、登录用户数、平均负载。
第二行开始的所有行则是:当前登录的用户名及其登录地址。
最应该关注的第一行中load average:后面的3个数值:
第一个数值表示1分钟内系统的平均负载值,第2个数值表示5分钟内系统的平均负载值,第三个数值表示15分钟内系统的平均负载值。
着重关注下第1个值,它表示单位时间段内使用CPU的活动进程数(在这里其实就是1分钟内),值越大就说明服务器压力越大。一般情况下,这个值只要不超过服务器的CPU数量就没有关系。
查看服务器有几个CPU的方法:
[root@localhost~]# cat /proc/cpuinfo
/proc/cpuinfo这个文件记录了CPU的详细信息。目前市面上的服务器有很多是2颗多核CPU,在Linux看来,它就是2*n个cpu(这里的n为单颗物理cpu上几核)。假如n是4,则这个processor最后显示为7(从0开始),所以查看当前系统有几个cpu,可以用命令:
[root@localhost~]# grep -c 'processor' !$
grep -c'processor' /proc/cpuinfo
2
然而查看关键字physical id,可以查看有几颗物理cpu。
10.2vmstat命令
w可以知道当前系统有没有压力,但它无法判断具体是哪里有压力。vmstat命令打印的结果共分为6部分:procs,memory,swap,io,system和cpu,需要重点关注r,b,si,so,bi,bo这几列信息:
[root@localhost ~]# vmstat
procs-----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 680884 856 131000 0 0 25 2 44 39 0 099 1 0
1、 procs显示进程的相关信息:
r(run):表示运行或等待cpu时间片的进程数。该数值如果长期大于服务器cpu的个数,则说明cpu资源不够用了。
b(block):表示等待资源的进程数,这个资源值的是I/O,内存等。该数如果长期大于1,则需要关注一下了。
2、 memory显示内存的相关信息:
swpd:表示切换到交换分区中的内存数量,单位为KB
free:表示当前空闲的内存数量,单位为KB
buff:表示(即将写入磁盘的)缓冲大小,单位为KB
cache:表示(从磁盘中读取的)缓存大小,单位为KB
3、 swap显示内存的交换情况:
si:表示交换区写入内存的数据量,单位为KB
so:表示由内存写入交换区的数据量,单位为KB
4、 io显示磁盘的使用情况:
bi:表示从块设备读取数据的量(读磁盘),单位为KB
bo: 表示从块设备写入数据的量(写磁盘),单位为KB
5、 system显示采集间隔内发生的中断次数。
in:表示在某一时间间隔内观测到的每秒设备的中断次数
cs:表示每秒产生的上下文切换次数
6、 cpu显示CPU的使用状态:
us:显示用户下所花费cpu的时间百分比
sy:显示系统花费cpu的时间百分比
id:表示cpu处于空闲状态的时间百分比
wa:表示I/O等待所占用cpu的时间百分比
st:表示被偷走的cpu所占百分比(一般都为0,不用关注)
经常会关注r,b和wa这三列。
在使用vmstat查看系统状态时,通常使用如下形式:
[root@localhost ~]# vmstat 15
或者
[root@localhost ~]# vmstat 1
前一条命令表示每隔1秒输出一次状态,共输出5次;后一条命令表示每隔1秒输出一次状态且一直输出,按Ctrl+C键结束。
10.3top命令
用top命令显示进程所占用的系统资源。
Top命令用于动态监控进程所占用的系统资源,每隔3秒变一次,且会把占用系统资源最高的进程放到最前面。
需要关注%cpu,%MEM和COMMAND这几项代表的意义。
RES这一项为进程所占的内存大小。
%MEM这项为使用内存的百分比。
在top状态下,按Shift+m键可以按照内存使用大小排序。按数字1可以列出所有核CPU的使用状态,按q键退出top。
另外,经常会用到top –bn1,它表示非动态打印系统资源的使用状况。
root@localhost ~]# top -bn1|head
top - 21:25:23 up 1:18, 1 user, load average: 0.00, 0.01,0.05
Tasks: 120 total, 1 running, 119 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.1 us, 0.2 sy, 0.0 ni, 99.2 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 1007596 total, 328084 used, 679512 free, 856 buffers
KiB Swap: 4095996 total, 0 used, 4095996 free. 131580 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 125428 3968 2532 S 0.0 0.4 0:02.90 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.12 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.05 ksoftirqd/0
10.4sar命令
用sar命令监控系统状态:
sar命令很强大,它可以监控系统几乎所有的资源状态,比如平均负载,网卡流量,磁盘状态,内存使用等。它既可以打印历史信息,也可以显示当天从零点开始到当前时刻的系统状态信息。
如果没有安装这个命令,使用yum install –ysysstat安装
1、 查看网卡流量 sar –nDEV
这个命令会把当天记录的网卡信息打印出来,每隔10分钟记录一次。
IFACE这一列表示设备名称;
rxpck/s这一列表示每秒进入收取的包的数量。
txpck/s这一列表示每秒发送出去的包的数量;
rxkB/s这一列表示每秒收取的数据量(单位为KB)
txkB/s这一列表示每秒发送的数据量
如果有一天服务器丢包非常严重,就应该查一下网卡流量是否异常了。如果rxpck/s那一列数值大于4000,或者rxkB/s那一列的数值大于5000000,就很可能被攻击了。
如果想实时查看网卡流量:sar –n DEV 1 5:表示每隔1秒输出一次状态,共输出5次。
-f选项查看某一天的网卡流量历史,后面跟文件名:
[root@localhost /]# sar -n DEV -f/var/log/sa/sa23
表示查看23号当天的网卡流量。
2、 查看历史负载 sar –q
这个命令查看服务器在过去的某个时间负载状况。
10.5nload命令
用nload命令查看网卡流量:
首先安装:yum install –y epel-release;yuminstall –y nload
最上面一行为网卡名字以及IP地址,按向右的箭头可以查看其它网卡的网络流量。
输出的结果分为两部分:Incoming为进入网卡的流量,Outgoing为网卡出去的流量。按q退出该界面。
10.6监控io性能
10.7free命令
用free命令查看内存使用状况;
[root@localhost /]# free
total used free shared buffers cached
Mem: 1007596 601732 405864 7256 856 333912
-/+ buffers/cache: 266964 740632
Swap: 4095996 0 4095996
Total:内存总和大小
Used:真正使用的实际内存大小
Free:剩余物理内存大小(没有被分配,纯剩余)
Buff/cache:分配给Buff/cache的内存总共多大。
Available:系统可使用内存有多大。
另外还可以加-m,-g选项(分别以MB或GB为单位)
10.8ps命令
用ps命令查看系统进程。
[root@localhost /]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
PID:表示进程的ID,内核管理进程就得靠PID来识别和管理某一个进程
STAT:进程的状态。
10.9查看网络状态
用netstat命令查看网络状况:
Netstat –lnp:打印当前系统启动哪些端口
Netstat –an:打印网络连接状况
10.10Linux下抓包
10.11Linux网络相关