十二.性能监控

一.命令:uptime

uptime:打印当前时间,系统已经运行了多久,当前用户登陆数以及系统平均负载

语法:uptime

[root@localhost ~]# uptime
 02:13:06 up 27 min,  1 user,  load average: 0.00, 0.00, 0.00

从上面的信息可以看出,当前系统时间为2点13分6秒,系统已经运行了27分钟,当前有1个用户在登陆,cpu负载分别显示的最近一分钟、五分钟、十五分钟的负载情况,这里的负载表示单位时间段内cpu等待队列中平均有多少个进程在等待,等待的进程个数越多,说明cpu越忙

二.命令:free

free:显示系统内存以及交换分区信息

语法: free [选项]

选项:

-b 指输出容量的单位为:Byte

-k 指输出容量的单位为:KB

-m 指输出容量的单位为:MB

[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1104         289         366           7         448         639
Swap:          2047           0        2047

Linux在开机之后会预先提取一部分内存,并划分为buffer于cache以后随时提供为进程使用。以上的输出信息中:

Mem行是内存的使用情况:

total 列显示系统总的可用物理内存和交换空间大小;

used 列显示已经被使用的物理内存和交换空间;

free 列显示还有多少物理内存和交换空间可用使用;

shared 列显示被共享使用的物理内存大小;

buff/cache 列显示被buffer和cache 使用的物理内存大小;

Swap行是交换空间的使用情况:

三.监控网络使用情况

3.1ifconfig / ip a:可以查看网卡接口信息

在Linux中以太网卡一般被标识为ens160,第一块以太网卡etho,第二块以太网卡为eth1,依次类推

[root@localhost ~]# ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.43.132  netmask 255.255.255.0  broadcast 192.168.43.255
        inet6 fe80::7612:336a:ba88:3369  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:94:3a:55  txqueuelen 1000  (Ethernet)
        RX packets 2785  bytes 214435 (209.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3322  bytes 476147 (464.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 12  bytes 656 (656.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12  bytes 656 (656.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:94:3a:55 brd ff:ff:ff:ff:ff:ff
    inet 192.168.43.132/24 brd 192.168.43.255 scope global dynamic noprefixroute ens160
       valid_lft 1271sec preferred_lft 1271sec
    inet6 fe80::7612:336a:ba88:3369/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

3.2 netstat:打印网络链接、路由表、网络接口统计等信息

语法:netstat [选项]

选项:

-s 显示各种协议数据统计信息

-n 使用数字形式的IP、端口号、用户ID替代主机、协议、用户等名称信息

-p 显示进程名称及对应进程ID

-i 仅显示正在监听的shocket接口信息

-u 查看udp链接信息

-t 查看tcp链接信息

[root@localhost ~]# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1026/sshd           
tcp6       0      0 :::80                   :::*                    LISTEN      25869/httpd         
tcp6       0      0 :::22                   :::*                    LISTEN      1026/sshd     

四.监控进程使用情况

4.1 ps:查看当前进程信息语法:ps [选项]

选项:

-e 所有的进程均显示出来,于-A具有同样效果

-a 显示现行终端机下的所有进程,包括其他用户的进程

-u 以用户为主的进程状态

-x 通常与a这个参数一起使用,可列出较完整信息。

[root@localhost ~]# ps -aux
root        1387  0.0  0.8  93912  9644 ?        Ss   01:45   0:00 /usr/lib/systemd/systemd --user
root        1393  0.0  0.4 152784  4716 ?        S    01:45   0:00 (sd-pam)
root        1420  0.0  0.4 153368  5456 ?        S    01:45   0:00 sshd: root@pts/0
root        1428  0.0  0.3  26216  3900 pts/0    Ss   01:45   0:00 -bash
root       20478  0.0  0.0      0     0 ?        I    01:52   0:00 [kworker/u256:0]
root       25869  0.0  0.3  86908  4400 ?        Ss   01:57   0:00 /usr/local/apache2/bin/httpd
daemon     25870  0.0  0.9 862580 10988 ?        Sl   01:57   0:00 /usr/local/apache2/bin/httpd
daemon     25871  0.0  0.6 862580  7028 ?        Sl   01:57   0:00 /usr/local/apache2/bin/httpd
daemon     25872  0.0  0.9 862580 10992 ?        Sl   01:57   0:00 /usr/local/apache2/bin/httpd
daemon     25988  0.0  0.9 862580 11108 ?        Sl   02:03   0:00 /usr/local/apache2/bin/httpd
root       26199  0.0  0.0      0     0 ?        I    04:46   0:00 [kworker/0:2-events_power_efficient]
root       26204  0.0  0.0      0     0 ?        I    04:59   0:00 [kworker/0:1-events_power_efficient]
root       26225  0.0  0.0      0     0 ?        I    05:04   0:00 [kworker/0:0-events_power_efficient]
root       26226  0.0  0.3  61608  4024 pts/0    R+   05:09   0:00 ps -aux

#ps结合grep过滤出想要查看的服务信息
[root@localhost ~]# ps -aux | grep ssh

DID/U6ER 代表进程的执行用户

PID 为进程唯一编号

C CPU使用的资源百分比

PPTD 代表父进程ID编号

%CPU 代表进程的cpu占用率

%MEM 代表进程的内存占用军

VSZ 代表进程所使用的虚拟内存大小(单位:KB)

RSS 代表进程所使用的真实的内存大小(单位:EB)

TTY 该进程是在那个终端机上面运作.若与终端机无关.则显示?。另外, tty1-tty6是本机上面的登入者程序,若为pts/0等等的,则表示为由网络连接进主机的程序。

STINE/START 代表进程启动时间

STAT 代表进程状态(D∶不可中断的进程,R:正在运行的进程,S∶正在睡眠的进程,T∶停止或被追踪的进程,X∶死掉的进程,z:僵尸进程)

TIME 代表进程占有CPU的总时间

CMD/COMMAND 代表进行命令

4.2 top:动态查看进程信息

语法: top [选项]

选项:

-d top刷新间隔,默认为3s

-p 查看指定的PID的进程信息

通过top命令可以动态查看进程信息,默认按cpu使用率排序,输入

M 可以按照内存使用率排序

N 可以按照进程号排序

z 可以高亮显示颜色

[root@localhost ~]# top
top - 05:55:09 up  4:09,  1 user,  load average: 0.00, 0.00
Tasks: 197 total,   2 running, 195 sleeping,   0 stopped,  
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni, 99.6 id,  0.0 wa,  0.4 
MiB Mem :   1104.0 total,    350.8 free,    291.8 used,    
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.    

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU 
  26264 root      20   0       0      0      0 I   0.0 
  26263 root      20   0   65384   4880   4028 R   0.4 
  26261 root      20   0       0      0      0 I   0.0 
  26240 root      20   0       0      0      0 I   0.0 
  25988 daemon    20   0  862580  11108   3656 S   0.0 
  25872 daemon    20   0  862580  10992   3584 S   0.0 
  25871 daemon    20   0  862580   7028   3652 S   0.0 
Help for color mapping - procps-ng 3.3.15

第一行:显示与uptime命令相似的输出(可以使用"命令切换uptime的显示)

这些字段显示:

。当前时间

。系统已运行的时间

。当前登录用户的数量

。相应最近5、10和15分钟内的平均负载。

第二行:显示的是任务或者进程的总结。进程可以处于不同的状态。这里显示了全部进程的数量。除此之外,还有正在运行、睡眠、停止、僵尸进程的数量(僵尸是一种进程的状态)。这些进程概括信息可以用't'切换显示

Tasks—任务(进程),系统现在共有194个进程,其中处于运行中的有2个,192个在休眠(sleep) , stoped状态的有0个,zombie状态(僵尸)的有0个。

第三行:显示不同模式下所占cpu时间百分比(可以使用t'命令切换显示),这些不同的cpu时间表示:

o us, user:运行(未调整优先级的)用户进程的CPU时间

o sy,system:运行内核进程的CPU时间

o ni,niced:运行已调整优先级的用户进程的CPU时间

o wa,IO wait:用于等待l0完成的CPU时间

o id :空闲cpu百分比

o hi:处理硬件中断的CPU时间

o si:处理软件中断的CPU时间

o st:这个虚拟机被hypervisor愉去的CPU时间(译注∶如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)

第四行︰显示内存使用率(内存显示可以用'm'命令切换),有点像"'free'命令。第一行是物理内存使用,第二行是虚拟内存使用(交换空间)。

物理内存显示如下:全部可用内存、已使用内存、空闲内存、缓冲内存。相似地︰交换部分显示的是︰全部、已使用、空闲和缓冲交换空间。

第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。

如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free +第四行的buffers+第五行的cached

第六行:各进程(任务)的状态监控

PID USER PR NI VIRT RES SHR %CPU %MEM TINE+COMMAND

l root 20 0 178672 13452 8384 s 0.0 0.7 0:02.16 systemd

PID:进程ID,进程的唯一标识符

USER︰进程所有者的实际用户名。

PR︰进程的调度优先级。这个字段的一些值是'rt '。这意味这这些进程运行在实时态。

NI∶进程的nice值(优先级)。越小的值意味着越高的优先级。负值高优先级,正值表示低优先级

VIRT︰进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES∶驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR︰SHR是进程使用的共享内存。共享内存大小,理位kb

S:这个是进程的状态。它有以下不同的值:

  • D — 不可中断的睡眠态。
  • R 一 运行态
  • s 一 睡眠态
  • T ― 被跟踪或已停止
  • z ― 僵尸态

%CPU:自从上一次更新时到现在任务所使用的CUP时间百分比。

%MEM:进程使用的可用物理内存百分比。

TIME+∶任务启动后到现在所使用的全部cPu时间,精确到百分之一秒

COMMAND:运行进程所使用的命令。进程名称(命令名/命令行)

还有许多在默认情况下不会显示的输出,它们可以显示进程的页错误、有效组和组ID和其他更多的信息。

五.网络故障排除

5.1 ping:

当网络不通的时候可以使用简单的ping命令来定位问题节点的位置,一般会按照顺序进行ping命令,以此为本地回环、本地IP、网IP、外网IP、ping的对象一般都会给予回应,没有回应则表示网路不通。(但是在某些环境下,对象主机会禁止使用ping命令)

[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (36.152.44.96) 56(84) bytes of data.
64 bytes from 36.152.44.96 (36.152.44.96): icmp_seq=1 ttl=128 time=30.9 ms
64 bytes from 36.152.44.96 (36.152.44.96): icmp_seq=2 ttl=128 time=29.7 ms
64 bytes from 36.152.44.96 (36.152.44.96): icmp_seq=3 ttl=128 time=30.5 ms
^C
[root@localhost ~]# ping 192.168.110.1

5.2 traceroute:

一个数据包从本地出发后一般会经过多个路由转发器,如果有一个数据包进入互联网后因为中间的某个路由转发出现问题,从而导致最终的数据发送失败,这种情况下,我们并不知道是那个路由出现问题,也不知道具体的lp信息是什么,利用traceroute可以来协助排查

[root@localhost ~]# traceroute www.baidu.com
traceroute to www.baidu.com (36.152.44.95), 30 hops max, 60 byte packets
1  _gateway (192.168.43.2)  1.041 ms  0.968 ms  0.911 ms
2  * * *
3  * * *
4  * * *
5  * * *
6  * * *

5.3 nslookup:

网络本身是使用lp地址来唯一对应网络资源的,但用户是无法记忆这么多IP的信息的,所以,一般都是通过域名来访问网络资源的,此时就用到了DNS服务器,使用nslookup可以帮助检查本地设置的DNS服务器工作是否正常。

[root@localhost ~]# nslookup baidu.com
-bash: nslookup: command not found
[root@localhost ~]# yum provides nslookup
"""
Last metadata expiration check: 1:43:23 ago on Tue 19 Jul 2022 07:00:51 AM EDT.
bind-utils-32:9.11.20-5.el8.x86_64 : Utilities for querying
                                   : DNS name servers
Repo        : RHEL8-AppStream
Matched from:
Filename    : /usr/bin/nslookup

bind-utils-32:9.11.26-6.el8.x86_64 : Utilities for querying
                                   : DNS name servers
Repo        : AppStream
Matched from:
Filename    : /usr/bin/nslookup


"""
[root@localhost ~]# yum install -y bind-utils
Updating Subscription Management repositories.
Unable to read consumer identity
[root@localhost ~]# nslookup baidu.com
Server:		192.168.43.2
Address:	192.168.43.2#53

Non-authoritative answer:
Name:	baidu.com
Address: 220.181.38.251
Name:	baidu.com
Address: 220.181.38.148

5.4 dig:

dig命令可以查询更多关于DNS的记录信息

[root@localhost ~]# dig baidu.com

; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51207
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; MBZ: 0x0005, udp: 512
;; QUESTION SECTION:
;baidu.com.			IN	A

;; ANSWER SECTION:
baidu.com.		5	IN	A	220.181.38.148
baidu.com.		5	IN	A	220.181.38.251

;; Query time: 13 msec
;; SERVER: 192.168.43.2#53(192.168.43.2)
;; WHEN: Tue Jul 19 08:47:23 EDT 2022
;; MSG SIZE  rcvd: 70

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值