查看系统性能常用命令
W:查看系统负载,因为他无法查看系统负载的问题出现在那里,所以出现了vmstat。
以下依次为当前时间,系统启动时长,登录用户数,系统负载值,1分钟,5分钟,15分钟(一般重点关注这行)
22:27:06 up 36 days, 22:41, 1 user, load average: 0.01, 0.06, 0.06
以下为登录的用户,终端pts代表远程,来自的IP,什么时候登录
关于系统负载怎么去分辨是否正常;
- 主要看1分钟的负载值,这个值越大,系统会出现卡顿,运行缓慢,这个值是依据本机的逻辑CPU来分辨是否正常,不要超过逻辑CPU的数量即为正常。
- 查看逻辑CPU方法:cat /proc/cpuinfo | grep "processor" |wc -l
逻辑CPU=物理CPU X CPU核数
物理CPU :physical id CPU核数:cpu cores
vmstat 监控系统具体的性能状态,(进程,内存,虚拟内存,磁盘,cpu)
Procs:显示进程相关信息
r:运行队列进程熟练
b:等待资源的进程数,这个资源指的是I/O、内存等(就是阻塞的进程)
Memory:显示内存相关信息
Swpd:表示切换到交换分区中的内存数量,单位KB,(持续变化的话,证明内存不够了)
Free:当前空闲的内存熟练
Buff:即将写入磁盘的缓冲大小,单位KB
Cache:从磁盘读取缓存的大小,单位KB
Swap:显示内存交换情况 swap频繁出现数字的话证明内存不够用了。
Si:表示由交换区写入的数据量,单位KB
So:表示内存写入交换区的数据量,单位KB
Io:显示磁盘的使用情况(如果io频繁读写b也会产生变化,这样的话b也会造成很多进程在等待)
Bi:表示从块设备读取数据的量(读磁盘)单位KB
Bo:表示由块设备写入数据的量(写入磁盘)单位KB
cpu:显示CPU的使用状态
us:显示用户下所花费CPU的时间百分百(例如用户跑了一个网站,us的cpu百分比就会增加,显示用户占用cpu百分比)
sy:显示系统花费CPU的时间百分百(系统本身的服务,进程占用的百分比)
id:表示CPU处于空闲状态的时间百分百
wa:表示I/O等待所占用CPU的时间百分百(等待cpu的百分比)
st:表示被偷走的CPU所占百分百
top命令:显示进程所占的系统资源
top命令用于健康进程所占用的系统资源,每隔三秒变一次,他的特点是把占用系统资源(CPU、内存、磁盘I/O等)最高进程放到最前面。
第一行表示时间、系统运行了多长世界,登录用户数,平均负载
第二行表示 总进程(total)正在运行的进程(running)休眠的进程(sleeping)停止了的进程(stopped)僵尸进程(zombie)
第三行表示cpu使用百分比
第四行表示 内存大小(tatal),空闲内容(free),已使用内存(used)
第五行表示交换区内存
RES代表进程所占用内存的大小
小技巧:
Shift+p :显示使用CPU最高的进程在前面
Shift+m :显示使用内存最高的进程在前面
top -c:显示占用资源进程的具体路径
top -bn1 静态列出所有进程信息
网卡查询方面命令:
Sar命令:主要查看网卡流量(丢包严重查)
监控系统几乎所有资源的状态,比如平均负载、网卡流量、磁盘状态、内存使用,可以显示当天从零点开始到当前时间的系统状态信息。
sar -n DEV 查询网卡流量
(如果接受的数据包大于500000,有可能被攻击了)
nload命令:nload动态查看网卡流量
安装nload命令前先安装:yum install -y epel-release ;yum install -y nload
incoming为进入网卡的流量
curr:当前值 AVG :平均值 Min:最小值 Max:最大值 Ttl:总值
Outgoing为网卡出去的流量
curr:当前值 AVG :平均值 Min:最小值 Max:最大值 Ttl:总值
左右方向键按是切换网卡
监控磁盘状态命令:iostat -x
这里主要重点关注%util的值,如果这个值越高,磁盘I/O读写也会高,如果%util的值高,读写不高,可能磁盘有问题
iotop:查看那个进程占用磁盘IO比较大(就是磁盘读写比较频繁的进程)
yum install -y iotop
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s
total disk read :总磁盘读
total disk write :总磁盘写
actual disk read:实际磁盘读
actual disk write:实际磁盘写
监控内存命令free
total=used+free+buff/cache
available是由free、buff、cache还未被占用的那部分内存组成、(所以看实际还有多大内存应该看这个)
查看系统进程:ps命令(类似任务管理器)
ps aux 常见用法:ps aux |grep ....
user: 用户
pid:进程ID(kill 进程ID 可以杀死进程)
%CPU百分比 %MEM 内存百分比
VSZ:虚拟内存 RSS:物理内存
TTY在哪个终端
START:什么时候启动的 TIME:运行了多长时间 COMMAND:命令
STAT说明:
D:不能中断的进程(影响系统负载)
R:run状态的进程(运行状态,在某一时刻需要的时候会进行运行)
S:sleep状态的进程(休眠状态,在某一时刻不需要的时候会停止休眠)
T:暂停的进程(stop)(比如crtl+Z)
Z:僵尸进程(zombie)
<:高优先级进程(CPU会优先处理)
N:低优先级进程(CPU低优先处理)
L :内存中被锁了内存分页
s:主进程(有分子父进程,父进程一半由root开头,子进程一般为普通用户)
I:多线程进程(例如sI,s进程,I为线程,一个进程下面有线程,他们知道不共享内存,而线程和线程直接是共享内存的)
查看网络连接状态(包含查看监听端口):(主要用来查看监听端口)
netstat -lnp 查看监听端口 tcp +t udb +u
netstat -an 查看所有网络连接状态
ESTABLISHED(通信客户端) 这个数值大,证明服务器很忙(负载高)
Linux下抓包工具。
tcpdump
安装:yum install -y tcpdump
常见用法:
tcpdump -nn (第一个n显示IP,不加显示主机名)(第二个n表示显示端口号)
tcpdump -nn -i ens33 (-i 指定设备{网卡})
tcpdump -nn port 80 指定端口抓包
tcpdump -nn not port 22 and host 113.107.238.130 不要22端口和113.107.238.130的包
tcpdump -nn -c 100 -w 1.cap -c指定数据包 -w存为文件 (cap后缀文件不能cat查看,用tcpdump -r 路径来查看)
Linux网络相关
Ifconfig 查看网卡IP地址
Ifconfig -a 查看全部网卡(包括断开的)
Ifup 网卡 (启动网卡)
Ifdown 网卡 (断开网卡)
更改主机名方法:
hostnamectl set-hostname 想要更改的名字
DNS配置文件:主要用来解析域名
/etc/resolv.conf
这个文件DNS取决与网卡配置文件:/etc/sysconfig/network-scripts/网卡名字,所以只需在网卡配置文件里设置DNS,然后重启即可。
当然也可以再/etc/resolv.conf里临时添加,不过重启网卡后会覆盖resolv.conf配置文件内容
格式为:nameserver IP
/etc/hosts 解析单个域名
格式:www.xxxx.com IP
可以写多个IP。不过只是临时性的