性能监控

1)监控cup 的使用情况

uptime


[root@localhost index]# uptime
16:22:36 up 70 days,  1:15,  1 user,  load average: 0.07, 0.06, 0.05
当前系统时间
系统运行时间
当前有一个用户登录
CPU显示最近1分钟,5分钟,15分钟的负载情况
这里的负载表示单位时间段内cup等待队列中平均有多少个进程在等待,等待的进程数越多,说明cup越忙。

2)监控内存和交换分区使用的情况

free

free
-b|-k|-m 指定输出容量的单位,分别是Byte,KB ,MB
[root@localhost index]# free -m
              total        used        free      shared  buff/cache   available
Mem:           7781        1337         224         150        6219        5927
Swap:         16063         935       15128
Mem代表内存容量的使用情况
Swap是交换分区的使用情况

3)监控磁盘的使用情况

df -hT

[root@localhost index]# df -hT
Filesystem          Type      Size  Used Avail Use% Mounted on
/dev/mapper/cl-root xfs        50G  5.2G   45G  11% /
devtmpfs            devtmpfs  3.8G     0  3.8G   0% /dev
tmpfs               tmpfs     3.8G     0  3.8G   0% /dev/shm
tmpfs               tmpfs     3.8G  393M  3.5G  11% /run
tmpfs               tmpfs     3.8G     0  3.8G   0% /sys/fs/cgroup
/dev/sda1           xfs      1014M  139M  876M  14% /boot
/dev/mapper/cl-home xfs       157G  2.0G  155G   2% /home
tmpfs               tmpfs     779M     0  779M   0% /run/user/0
信息:根分区的类型是xfs,总容量50G,用了5.2G,剩余45G,使用率11%,挂载点/

df -i

[root@localhost index]# df -i
Filesystem            Inodes IUsed    IFree IUse% Mounted on
/dev/mapper/cl-root 26214400 81253 26133147    1% /
devtmpfs              993302   381   992921    1% /dev
tmpfs                 996041     1   996040    1% /dev/shm
tmpfs                 996041   483   995558    1% /run
tmpfs                 996041    16   996025    1% /sys/fs/cgroup
/dev/sda1             524288   330   523958    1% /boot
/dev/mapper/cl-home 82247680 12891 82234789    1% /home
tmpfs                 996041     1   996040    1% /run/user/0
根分区inode总个数是26214400,使用了81253,剩余26133147,使用率1%
这里的inode个数决定了该分区可以创建的文件个数,有多少inode节点,可以在该分区创建多少个文件。
在上面的显示案例中,如果在跟分区创建了26214400节点,即使还有45G的磁盘空间,也无法创建文件,因为inode节点已经耗尽。

4)监控网络使用情况

ip a s
ip -s link show eno167773    查看网卡流量信息

5)监控进程使用情况

ps -ef

ps aux

ps -ef 与ps aux大同小异,显示的信息基本上是一样的。
ps -ef UID PID PPID C STIME TTY TIME CMD ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。
ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程
正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等
总之大部分信息都是可以通过执行该命令得到的 UID或者USER:进程的执行用户 pid:进程的唯一编号 ppid:父进程ID编号
%CPU:代表进程CPU的占有率 %MEM:代表进程内存占有率 vsz:代表进程所使用的虚拟内存大小(kb) rss:进程所使用的真实内存大小(kb) tty:终端 stime或start:进程启动时间 stat:进程状态(D:不可中断的进程,R:正在运行的进程,S:正在睡眠的进程,T:停止或者被追踪的进程,X:死掉的进程,Z:僵死进程) time:进程占有CPU的总时间 CMD或者command代表进程命令

6)netstat

netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息

比较常用的有两个:
netstat -antpu
显示所有连线中的Socket,
直接使用ip地址,而不通过域名服务器
最常用的关于netstat的命令就是这个
netstat -lnp (打印当前系统启动哪些端口)以及netstat -an (打印网络连接状况)
列出所有端口情况
[root@xiesshavip002 ~]# netstat -a      # 列出所有端口
[root@xiesshavip002 ~]# netstat -at     # 列出所有TCP端口
[root@xiesshavip002 ~]# netstat -au     # 列出所有UDP端口

列出所有处于监听状态的 Sockets
[root@xiesshavip002 ~]# netstat -l   # 只显示监听端口
[root@xiesshavip002 ~]# netstat -lt  # 显示监听TCP端口
[root@xiesshavip002 ~]# netstat -lu  # 显示监听UDP端口
[root@xiesshavip002 ~]# netstat -lx  # 显示监听UNIX端口

显示每个协议的统计信息
[root@xiesshavip002 ~]# netstat -s     # 显示所有端口的统计信息
[root@xiesshavip002 ~]# netstat -st    # 显示所有TCP的统计信息
[root@xiesshavip002 ~]# netstat -su    # 显示所有UDP的统计信息

显示 PID 和进程名称
[root@xiesshavip002 ~]# netstat -p

显示核心路由信息
[root@xiesshavip002 ~]# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         gateway         0.0.0.0         UG        0 0          0 eth0
192.168.130.0   0.0.0.0         255.255.255.0   U         0 0          0 eth0
[root@xiesshavip002 ~]# netstat -rn   # 显示数字格式,不查询主机名称
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.130.1   0.0.0.0         UG        0 0          0 eth0
192.168.130.0   0.0.0.0         255.255.255.0   U         0 0          0 eth0

查看端口和服务
[root@xiesshavip002 ~]# netstat -antp | grep ssh
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      734/sshd            
tcp        0     52 192.168.130.20:22       119.129.118.189:58737   ESTABLISHED 1846/sshd: root@pts 
tcp6       0      0 :::22                   :::*                    LISTEN      734/sshd            
[root@xiesshavip002 ~]# netstat -antp | grep 22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      734/sshd            
tcp        0     52 192.168.130.20:22       119.129.118.189:58737   ESTABLISHED 1846/sshd: root@pts 
tcp6       0      0 :::22                   :::*                    LISTEN      734/sshd 

netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"	",sta[key]}'  //查看tcp各网络连接状态的数量

7)tcpdump抓包工具

某个网卡上都有哪些数据包,尤其是当你初步判定你的服务器上有流量***。这时,使用抓包工具来抓一下数据包,就可以知道有哪些IP在*** tcpdump -nn -c 10 -i ens33           
//抓取10次包指定ens33网卡,并显示ip和端口,不显示主机名和服务名称
第三列和第四列显示的信息为哪一个IP+port在连接哪一个IP+port,后面的信息是该数据包的相关信息
-nn参数是为了直接显示ip+端口号,需要关注的只是第三列以及第四列
-i 选项后面跟设备名称,如果你想抓ens33网卡的包,后面则要跟eens33
-nn选项的作用是让第三列和第四列显示成IP+端口号的形式
不加-nn则显示的是主机名+服务名称
-c选项,指定抓包数量
一些常用的tcpdump实例
# tcpdump -nn -i ens33 port 22         //只抓22端口的包 # tcpdump host 192.168.x.x                 //抓取指定ip的包 # tcpdump -nn -i ens33 tcp and not port 22     //指定抓tcp的包,但是不要22端口的 # tcpdump -nn -i ens33 port 22 and port 53     //只抓22和53端口的包 # tcpdump -nn -i ens33 -c 10 -i ens33 -w /tmp/tset.cap //保存10次抓包到/tmp/test.cap # tcpdump -r /tmp/test.cap                 //读取抓包文件
原文地址:https://www.cnblogs.com/fengzhongzhuzu/p/8998819.html