linux日常运维管理技巧
1.使用w查看系统负载
[root@abc ~]# w
w: 60 column window is too narrow (这个意思是窗口太小,最大化窗口就Ok)
[root@abc ~]# w
13:46:43 up 2 min, 1 user, load average: 0.12, 0.08, 0.04
当前系统时间 启动多长时间 登陆了多少用户 系统负载(单位时间内,使用cpu活动的进程):1分钟 5分钟 15分钟
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
(登陆时间)(空闲多时间)
root pts/0 192.168.52.1 13:44 3.00s 0.00s 0.00s w
[root@abc ~]# cat /proc/cpuinfo (查看cpu信息)
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
processor 逻辑处理器的id。
physical id 有几个cpu处理器
core id 每个内核的id。(有多少个内核)
cpu cores 一个cpu处理器中的内核数量。
siblings 一个cup处理器中的逻辑处理器的数量。
2.vmstat (Virtual Memory)查看虚拟内存使用的工具,使用vmstat来判定系统的瓶颈在哪里
二、虚拟内存的运行原理
在系统中运行的每个进程都需要使用到内存,但不是每个进程都需要每时每刻使用系统分配的内存空间。当系统运行所需内存超过实际的物理内存,内核会释放某些进程所占用但未使用的部分或所有物理内存,将这部分资料存储在磁盘上直到进程下一次调用,并将释放出的内存提供给有需要的进程使用。
三、使用说明
vmstat 1 (动态显示系统信息,1秒钟一次)
进程:
r(run) 有多少进程再跑
b(block) 进程被cpu以外的(网络,内存)原因在等待
内存:
swapd 交换分区,如果数字频繁的变化,说明内存和虚拟分区正在频繁的交换数据,内存不够用了
free 可用内存大小
swap分区:
si (in) 有多少kb的数据从swap进入到内存里去
so (out) 有多少kb的数据写入到swap里去
磁盘:
bi 从磁盘里读数据
bo 向磁盘里写数据 (这个数据如果很大,表示正在频繁的读写磁盘,b会增加,因为导致会有很多进程等待磁盘)
cpu:
us 用户派的资源占用cpu多少百分比
sy 系统本身的进程或服务占用cpu百分比
id 空闲cpu的百分比
wa 有多少进程等待cpu的百分比
3.top 动态的查看进程使用资源状况
top - 14:44:33 up 1:00, 1 user, load average: 0.00, 0.01, 0.05 (第一行和w的第一行一样)
Tasks: 86 total, 1 running, 85 sleeping, 0 stopped, 0 zombie
(总共多少进程,多少个在runing,多少个在休眠,多少个已经停止,多少个僵尸进程(主进程被以外禁止,留一些子进程))
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
us用户进程占百分比
sy系统进程占百分比
ni更改过优先级进程占百分比
id等待进程占百分比
被偷走的cpu百分比(虚拟化,子机))
KiB Mem : 1008392 total, 718700 free, 131380 used, 158312 buff/cache
物理内存使用情况 总共内存 多少空闲 使用多少内存 缓存的内存量
KiB Swap: 2097148 total, 2097148 free, 0 used. 712768 avail Mem
swap内存使用情况
total — 交换区总量(2GB)
used — 使用的交换区总量(2.5M)
free — 空闲交换区总量(2GB)
cached — 缓冲的交换区总量(4GB
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
PID 用户pid
USER 用户名
PR 进程优先级
NI nice值,负值表示高于优先级,正值表示低于优先级
VIRT 进程使用虚拟内存总量
RES 进程使用的,未被换出的物理内存大小
SHR 共享内存大小
S 进程状态,D=不可中断的睡眠状态。R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU CPU占用百分比
%MEM 进程使用的物理内存百分比
TIME+一 进程使用的物理内存百分比
COMMAND 进程名称(命令名/命令行)
(默认根据%CPU来排序,如果想根据%MEM内存来排序,按大写的M即可,按大写的P换回%CPU排序,数字1 列出指定CPU的使用情况,q退出)
top -c 可以在最后一行显示COMMAND,用来查看具体的命令,全局的路径
top -bn1 静态的把所有的进程信息显示出来,在写脚本的时候适合使用
4.sar 监控系统状态 (被称为Linux系统里的瑞士×××)
[root@abc ~]# yum install sysstat -y 安装sar
(每十分钟会把系统的状态过滤一遍保存在/var/log/sa里,生成以当天日期为名的saXX文件。第二天会生成一个以昨天日期为名的sarXX文件,saXX文件是二进制文件,不能用cat直接查看,但是sarXX可以
[root@abc sa]# sar -n DEV 1 5 (查看网卡的流量,每一秒打印一次,一共打印5次)
Linux 3.10.0-514.el7.x86_64 (abc.com) 2017年11月27日 _x86_64_(1 CPU)
15时40分36秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
15时40分37秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
15时40分37秒 ens33 2.00 2.00 0.16 0.24 0.00 0.00 0.00
时间
IFACE 网卡名
rxpck/s 接收到的数据包 几千还是正常的,上万或者几十万基本确定被攻击了
txpck/s 发送出去的数据包
rxkB/s 接受到的数据量
txkB/s 发送出去的数据量
[root@abc sa]# sar -n DEV -f /var/log/sa/saXX (可以查看历史数据,日期就是XX的内容,历史文件最多保存一个月)
Linux 3.10.0-514.el7.x86_64 (abc.com) 2017年11月27日 _x86_64_(1 CPU)
15时20分01秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
15时30分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
15时30分01秒 ens33 0.04 0.04 0.00 0.00 0.00 0.00 0.00
15时40分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
15时40分01秒 ens33 0.38 0.24 0.03 0.04 0.00 0.00 0.00
15时50分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
15时50分01秒 ens33 0.14 0.09 0.01 0.01 0.00 0.00 0.00
平均时间: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: ens33 0.19 0.12 0.02 0.02 0.00 0.00 0.00
[root@abc sa]# sar -q (-q查看系统负载。和w命令查看效果一样)
Linux 3.10.0-514.el7.x86_64 (abc.com) 2017年11月27日 _x86_64_(1 CPU)
15时20分01秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
15时30分01秒 1 104 0.00 0.01 0.05 0
15时40分01秒 1 104 0.00 0.01 0.05 0
15时50分01秒 1 103 0.00 0.01 0.05 0
平均时间: 1 104 0.00 0.01 0.05 0
runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1:最后1分钟的系统平均负载(System load average)
ldavg-5:过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载
[root@abc sa]# sar -b (-b查看磁盘读写信息)
Linux 3.10.0-514.el7.x86_64 (abc.com) 2017年11月27日 _x86_64_(1 CPU)
15时20分01秒 tps rtps wtps bread/s bwrtn/s
15时30分01秒 0.49 0.00 0.48 0.05 22.21
15时40分01秒 0.10 0.00 0.10 0.07 1.91
15时50分01秒 0.05 0.00 0.05 0.00 0.45
平均时间: 0.21 0.00 0.21 0.04 8.19
tps:每秒钟物理设备的 I/O 传输总量
rtps:每秒钟从物理设备读入的数据总量
wtps:每秒钟向物理设备写入的数据总量
bread/s:每秒钟从物理设备读入的数据量,单位为 块/s
bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s
5.nload 监察网卡流量
[root@abc sa]# yum install -y epel-release
[root@abc sa]# yum install nload -y
[root@abc sa]# nload 显示网卡实时速度的页面
上半部分是:Incoming也就是进入网卡的流量,下半部分是:Outgoing,也就是从这块网卡出去的流量
第一行分别是 网卡名,ip <- -> 左右方向键分别可以切换网卡
当前值 (Curr)
平均值 (Avg)
最小值 (Min)
最大值 (Max)
总和流量(Ttl)