uptime命令也:可以显示负载信息 跟w第一行一样
第一行从左到右依次表示当前时间、系统已运行时间、登录用户数(终端登录显示为tty1,远程登录显示为pts/0)、平均负载(每1分钟、每5分钟、每15分钟)主要是注意第一个负载值,值越大说明服务器压力越大。一般情况下,这个值不要超过服务器的逻辑cpu数量就没有关系。
查看服务器的逻辑cpu
cat /proc/cpuinfo 0代表1个
一个逻辑cpu,那么每分钟的负载值为1是最理想的,也就是每个进程有占用一个逻辑cpu是最合适的,大于1就说明cpu不够用了 需要查找一下原因。
vmstat 1 显示的信息每一秒打印一次,按下ctrl +c 结束 vmstat 1 5 每一秒钟显示一次 ,显示5次后结束
各项信息的意思:
1. r(run):表示运行或等待cpu时间片的进程数。等待cpu时间片不是说这个进程没有运行,实际上某一时刻1个cpu只能有一个进程占用,其他进程只能处于等待状态,这些等待cpu资源的进程依然是运行状态。如果该数值长期大于逻辑cpu的个数,那么就说明cpu资源不够用 了
2. b(block):表示等待资源的进程数,这个资源指的是I/O、内存、网速等资源。这个数值长期大于1,那么也是需要关注的
3. swpd :表示切换到交换分区中的内存数量。当内存不够的时间,才会将数据临时放到交换分区中。如果该数值在频换的变化,那么内存与交换分区在进行频繁的读写,那么也就说明内存不够了。如果这个数值在变化,那么si与so肯定也是有变化的。
swap显示内存的交换情况
4. si :表示由交换分区写去到内存的数据量。单位为KB
5. so:表示由内存写入到交换分区的数据量
io显示磁盘的使用情况
6. bi :表示从磁盘读取数据量的多少(读磁盘)。单位KB
7. bo:表示从磁盘写入数据量的多少(写磁盘)
如果这2个数值在频换的变化,表示磁盘在频换的读写。磁盘的读写速度比较慢,肯定会影响b列数值的变化。
8. us:表示用户级别(如:网站、mysql)占用cpu资源的时间百分比。如数值长期大于50,也说明cpu资源不够了。
9. sy:表示系统本身占用cpu资源的时间百分比
10. id:表示cpu处于空闲状态的时间百分比
us+sy+id=100%
11. wa:表示I/O等待所占用的cpu的时间百分比。数值也很大,说明cpu不够用
12. st:表示被偷走的cpu资源(进行过虚拟化后,一些子机会占用cpu资源)
默认情况是是使用%cpu来排序。
按大写的M来用内存排序,切换为%cpu排序按大写的P
数字1显示所有CPU的使用情况。
第一行与w命令查看到的信息是一样的
第二行:
Tasks :总进程数
runing:正在运行的进程数
sleeping:正在处于休眠状态的进程数。
stopped:已经停止的进程数
zombie:僵尸进程
第三行是cpu百分比。需要关注的是us。系统负载可以很高,%us
可能很低或是0%。但是当%us很高的话,那么系统负载肯定很高。
Kib MeM :内存的使用情况。总大小、剩余、已使用、写入磁盘/从磁盘中读取的缓存大小
Kib Swap :交换分区的使用情况
top -c 命令可以查看到具体的命令
top -n1 静态的一次性显示所有的信息 写脚本时使用。
PID可以用来杀死进程 kill -9 PID杀死进程
用sar命令几乎可以监控系统所有的资源状态。它的优点是可以打印历史信息,可以显示当天从零点到当前时刻的系统状态信息。
yum install -y sysstat 安装sar命令
sar 命令不加具体的选项和参数会去调用系统里面保留的历史文件,/var/log/sa就是保存的sar生成的历史文件的目录。sar的特性每10分钟会把系统的状态保存一份到该目录下。
10分钟后会生成一个二进制文件
查看网卡流量
sar -n DEV 1 3(每1秒显示一次 共3次)
第一行表示时间
第二行表示网卡名
第三行表示接收到的数据包 用个表示
第四行表示发送出的数据包 用个表示
第五行表示接收到的数据量 单位KB
第六行表示发送出的数据量 单位KB
后3 行不用关注
rxpck/s →接收到数据包的数量 数据包上万或者几十万就不太正常,可能被攻击。
rxkB/s→接收到数据量
查看指定日期的历史数据
sar -n DEV -f /var/log/sa/sa22
这个目录下的历史数据最多保留一个月
sar -q 命令: 查看系统负载
sar -q 1 5 (1秒一次显示5次)
查看历史数据
sar -q 当天的
sar -q -f /var/log/sa/sa22 指定日期
查看磁盘
sar -b
nload 命令:查看网卡流量的
yum install epel-release 先安装epel扩展源
yum install -y nload 安装nload
直接nload命令会动态的显示网卡实时速度的页面
第一行显示网卡名字及IP地址后面(1/2)表示有2块网卡 按→方向键可以查看第2块网卡
Curr 表示当前值
Avg 表示平均值
Min 表示最小值
Max 表示最大值
如果被攻击进来的流量Incoming的数值会很高
当系统的负载却很高,用vmstat命令查看,b列或者wa列数值比较大,那么磁盘可能有问题了
yum install -y sysstat
iostat 查看磁盘状况
iostat 1 5 每1秒1次显示5次
iostat -x 查看%util 百分百使用情况
%util表示磁盘使用有多少时间占用CPU的。CPU有一部分是给进程处理的,一部分是需要等待磁盘的读写操作的数据结果。
假如%util的数值很大,如为50%或60%,那 磁盘IO太差,那么rKB/s和wkB/s的数值也会很大。若rKB/s和wkB/s数值不大,反而是%util比较大,那么说明硬盘是有问题的
iotop命令 :查看是哪个进程磁盘读写很频繁
yum install -y iotop
iotop 查看进程使用IO%
free -h
第一行表示说明
第二行表示内存的使用情况
第三行表示交换分区的使用情况
total=used+free+buff/cache(系统预分配的)
total 总大小
used 已使用
free 剩余的
shared 共享的
buff(缓冲)/cache(缓存)
结构图
例:从磁盘中的把数据读出来,先放在内存(cache)里,最后到CPU。
将cpu运算后的数据,先放在内存(buff)里,然后写进磁盘
total=used+free+buff/cache
available =free+buff/cache未使用完的部分
查看真正的剩余内存应该是available下面的数字
ps aux 列出系统所有的进程 ps -elf 一样的功能
ps aux | grep mysql 查看某个进程
第一行显示信息的含义
第一列 进程用户名
第二列 进程的ID 杀死进程时 kill -9 pid 每个进程在/proc/都有以PID数字命名的目录 查看 ls -l /proc/PID/
第三列cpu百分比
第四列 内存百分比
第五列 虚拟内存(VSZ)
第六列 物理内存 (RSS)
第七列 tty 终端名
第八列 STAT 进程的状态
第九列 START 启动时间
第十列 TIME 运行时间
第十一列 COMMAND 命令名
STAT :表示进程的状态,进程状态分为以下几种(不要求记住,但要了解)
D 不能中断的进程(通常为IO)
R 正在运行中的进程
S 已经中断的进程,通常情况下,系统中大部分进程都是这个状态
T 已经停止或者暂停的进程,如果我们正在运行一个命令,比如说 sleep 10 如果我们按一下ctrl -z 让他暂停,那么我们用ps查看就会显示T这个状态
W 这个好像是说,从内核2.6xx 以后,表示为没有足够的内存页分配
X 已经死掉的进程(这个好像从来不会出现)
Z 僵尸进程,杀不掉,打不死的垃圾进程,占系统一小点资源,不过没有关系。如果太多,就有问题了。一般不会出现。
< 高优先级进程
N 低优先级进程
L 在内存中被锁了内存分页
s 主进程
l 多线程进程
+ 代表在前台运行的进程
netstat -lnp 查看监听端口
socket 文件:同一台服务器2个进程间通信
netstat -an 查看tcp/udp网络状态 ss -an 一样只是不显示进程名
netstat -ltnp 只查看tcp网络状态
netstat -ltunp 查看tcp和udp 网络状态
netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
ESTABLISHED这个的数值,如果很大,说明系统很忙
网站并发连接数:有多少客户端同时连接这台服务端进行通信
如果想看一下某个网卡上都有哪些数据包,尤其是当你初步判定你的服务器上有流量攻击。这时,使用抓包工具来抓一下数据包,就可以知道有哪些IP在攻击你了。。
yum install -y tcpdump 安装命令
tcpdump -nn -i ens33
-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 :指定在哪里抓包,但不要22端口的
tcpdump -nn -i ens33 -c 20 -w /tmp/1.txt 抓的包写进/tmp/1.txt (写脚本用)
tcpdump -r /tmp/1.txt 查看文件里的数据流
yum install -y wireshark 安装命令
tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"
显示的信息类似于Web访问日志。可以查看到什么ip访问网站上的什么连接
yum install -y net-tools 安装命令
ifconfig 显示网卡信息 (ip addr 一样)
ifconfig -a 当网卡没有ip地址时,使用ifconfig是不会显示网卡的信息。加上-a选项后,也能查看到网卡的信息。
ifdown ens33(网卡名)用来关闭网卡 远程连接时不要使用 关闭后需要去服务器上开启
ifup ens33 开启网卡
ifdown ens33 && ifup ens33 两个命令一起执行 关闭后开启
1 . 先进入到网卡配置文件所在的目录里
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33\:0
修改 NAME=ens33:0
DEVICE=ens33:0
IPADDR=192.168.217.130
DNS1和GATEWA也可以去掉因为另一个网卡已经设置了
重启网卡看是否多一个网卡
mii-tool 网卡名 显示link ok 就是连接
也可以使用ethtool ens33 查看最后的 Link detected: yes 表示连接
hostnamectl set-hostname lioo111 修改为lioo111 centos6不支持
/etc/hostname 配置文件
DNS是用来解析域名的,比如我们访问网址都是直接输入一个网址,而DNS把这个网址解析到一个IP
vi /etc/resolv.conf 临时修改dns
vi /etc/sysconfig/network-scripts/ifcfg-ens33 永久修改需要编辑网卡配置文件
hosts 该文件linux与Windows都存在的,访问自定义域名时会使用到该文件
vi /etc/hosts 自定义修改域名
保存后再 ping www.qq.com 就会访问的指定的ip了
仅在本机生效 支持一个IP 配多个域名