uptime 会显示第一行负载参数
第一行从左到右依次表示当前时间、系统已运行时间、登录用户数(终端登录显示为tty1,远程登录显示为pts/0)、平均负载(每1分钟、每5分钟、每15分钟)主要是注意第一个负载值,值越大说明服务器压力越大。一般情况下,这个值不要超过服务器的逻辑cpu数量就没有关系
cat /proc/cpuinfo 查看系统逻辑cpu
实际为显示数加1个逻辑cpu
监控系统状态 cpu 内存 磁盘等
vmstat 1
每秒显示一次
vmstat 1 5
每秒显示一次 共显示五次
procs 进程相关
r(run) 表示运行或等待cpu时间片的进程数
b(block) 表示等待资源的进程数,这个资源指的是I/O、内存、网速等资源
memory 内存相关
swpd 表示切换到交换分区中的内存数量。
free 当前空闲的内存数量
buff 缓冲大小
cache 缓存大小
swap 内存的交换情况
si 表示由交换分区写去到内存的数据量
so 表示由内存写入到交换分区的数据量
io 磁盘的使用情况
bi 从磁盘读取数据量的多少(读磁盘)
bo 从磁盘写入数据量的多少(写磁盘)
cpu cpu的使用情况
us 用户级别(网站、mysql)占用cpu资源的时间百分比 长时间大于50 说明资源不够
sy 系统本身占用cpu资源的时间百分比
id cpu处于空闲状态的时间百分比
us+sy+id=100
wa I/O等待所占用的cpu的时间百分比
st 被偷走的cpu资源(虚拟化 子机器 会偷走)
动态显示进程所占的系统资源 3秒更新一次
默认%cpu排序
shift m 会按内存排序
shift p 会按cpu排序
runing 正在运行的进程数
sleeping 正在处于休眠状态的进程数
stopped 已经停止的进程数
zombie 僵尸进程(主进程被终止,子进程无人管就是僵尸进程)
RES 为进程所占的内存大小
%MEM为使用内存的百分比
COMMAND 进程名称
top -bn1 所有进程一次性静态列出
yum install -y sysstat 安装sar命令
sar -n DEV 查看网卡流量 打印当天的
IFACE 网卡名
rxpck/s 接收到的数据包 单位 个
txpck/s 发送出的数据包
rxkB/s 接收到的数据量 单位KB
rxkB/s 发送出的数据量 单位KB
rxpck/s 接收到数据包的数量上万或者rxkB/s接收到数据量大于5000000就不正常了,可能被攻击
sar -n DEV 1 5 实时查看网卡流量 每秒显示 显示5次
sar -n DEV -f /var/log/sa/saxx 查看某天的网卡流量历史
/var/log/sa/文件下 有俩个文件sa18 和sar18 (次日才会生成)
sa18 可用sar命令查看
sar18 可用cat直接查看
sar -q 查看历史负载
sar -b 查看磁盘(读写状态)
动态显示网卡实时速度
yum install epel-release 先安装epel扩展源
yum install -y nload 再安装nload
curr 实时流量值
Avg 流量平均值
Min 流量最小值
Max 流量最大值
Ttl 累计流量值
iostat -x 磁盘使用状态
util 数值越大 磁盘使用率高 或者硬盘故障
查看内存使用情况
total 内存总大小
used 真正使用的内存
free 剩余物理内存
shared 共享的
buff(缓冲)/cache(缓存) 分配给buff cached的内存大小
free -m -g -h 以MB GB 合适的单位 显示
total=used+free+buff/cache
从磁盘中的把数据读出来,先放在内存(cache)里,最后到CPU
将cpu运算后的数据,先放在内存(buff)里,然后写进磁盘
available =free+buff/cache未使用完的部分
查看真正的剩余内存应该是available下面的数字
ps aux 查看系统所有进程 类似ps -elf
用途
PID 进程的ID 杀死进程时 kill -9 pid
每个进程在/proc/都有以PID数字命名的目录 ls -l /proc/PID/
STAT 表示进程的状态
D 不能中断的进程(通常为IO)
R 正在运行中的进程
S 已经中断的进程,通常情况下,系统中大部分进程都是这个状态
T 已经停止或者暂停的进程,如果我们正在运行一个命令
W 从内核2.6xx 以后,表示为没有足够的内存页分配
X 已经死掉的进程(这个好像从来不会出现)
Z 僵尸进程,杀不掉,打不死的垃圾进程,占系统一小点资源
< 高优先级进程
N 低优先级进程
L 在内存中被锁了内存分页
s 主进程
l 多线程进程
+
代表在前台运行的进程
用途:查看进程和数量 ps aux |grep -c xxx
netstat 查看网络状态
netstat -lnp 查看网络监听端口
netstat -an 网络连接状况 类似 ss -an
扩展
TCP三次握手 四次挥手
netstat -an | awk ‘/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}’
查看状态数量的命令
yum install -y tcpdump 安装
tcp dump -nn -i 网卡名
-i 选项后面跟设备名称或指定网卡。
-nn 选项的作用是让第3和第4列显示成“IP+端口号”的形式,如果不加-nn选项则显示“主机名+服务名称”
tcpdump -nn -i ens33 -c 20 指定抓包数量 加-c 选项,抓包20次后自动停止
tcpdump -nn -i ens33 port 22 指定抓包端口为22
tcpdump -nn -i ens33 port 22 and port 80 指定在哪2个端口里抓包
tcpdump -nn -i tcp and not port 22 指定抓tcp的包,但不要22端口的
tcpdump -nn -i ens33 -c 20 -w /tmp/1.txt 抓的包进/tmp/1.txt (写脚本用)
tcpdump -r /tmp/1.txt 查看文件里的数据流