第十三课日常运维(上)

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网络相关

猜你喜欢

转载自blog.csdn.net/zanghaos/article/details/80645828
今日推荐