系统资源篇:
1.linux中uptime命令结果中load average的3个值解释:
系统1分钟、5分钟、15分钟的CPU负载信息
Uptime用于显示系统总共运行了多长时间和系统的平均负载
无选项 uptime 命令会显示一行信息,依次为:当前时间、系统已经运行了多长时间、目前有多少用户登录、系统在过去的 1 分钟、5 分钟和 15 分钟内的平均负载。输出结果等同于 top 命令汇总区的第一行
2.除了uptime可以看负载,还有哪些命令可以看负载呢?
top, uptime,w,vmstat、sar -q
top第一行与uptime类似,都是显示当前时间,系统运行时间,目前在线用户,系统过去1分钟,5分钟,15分钟的CPU负载信息
top第二行显示任务数量,运行中(running),休眠(sleeping),暂停(stopped),僵尸(zombie)
第三行显示CPU的状态信息2.3%
us — 用户空间占用CPU的百分比。
sy — 内核空间占用CPU的百分比。
ni — 改变过优先级的进程占用CPU的百分比
id — 空闲CPU百分比
wa — IO等待占用CPU的百分比
hi — 硬中断(Hardware IRQ)占用CPU的百分比
si — 软中断(Software Interrupts)占用CPU的百分比
st - 表示被强制等待虚拟CPU的时间
第四行显示的是内存状态
分别是总量(total),空闲(free),使用中(used),缓存的内存大小(buff/cache)
第五行显示的是swap交换分区的信息
分别是总量(total),空闲(free),使用中(used),虚拟内存总量(avail Mem)
第六行各个进程的状态监控
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S —进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)
3.通用top命令使用:
3.1 如何在top模式下查看每个cpu的使用情况:
可以在top模式下按数字1
3.2 如何在top模式下以CPU使用率进行从高到低排序
在top模式下按C 进行CPU使用率从高到低的排序
3.3 如何在top模式下以内存使用率进行从高到低排序
在top模式下按M 进行mem使用率从高到低的排序
3.4 top模式第2行关于tasks描述,请描述各值的含义
176 total:当前有176个任务 1 running:1个任务正在运行 175 sleeping:175个进程处于睡眠状态 0 stopped:停止的进程数 0 zombie:僵死的进程数
3.5 显示一个进程中各个线程CPU的占用率。
top -p <pid> -H
4.查询占用swap内存的vm,以及占用swap的大小。
ps -ef >/tmp/psef&&for i in $(awk '/qemu/{print $2}' /tmp/psef ); do echo -ne "$(grep $i /tmp/psef|awk -F'=|,' '{print $2}')\t";awk '/^Swap:/ {SWAP+=$2}END{print SWAP/1024" MB"}' /proc/$i/smaps 2>/dev/null;done|sort -k2 -n
5.统计节点内存的使用情况:
ps aux |awk '{sum+=$6}END{print sum/1024/1024}'
6.查看内存使用情况:
free -w
7.vmstat 结果输出中r b两个值代表的意思?
r:当前运行队列中线程的数目,代表线程处于可运行状态,但CPU还未能执行.,这个值可以作为判断CPU是否繁忙的一个指标;当这个值超过了CPU数目,就会出现CPU瓶颈了;这个我们可以结合top命令的负载值同步评估系统性能;
b:等待IO的进程数量;如果该值一直都很大,说明IO比较繁忙,处理较慢;
sar工具使用篇:
1.统计CPU的使用情况,每间隔1秒钟统计一次总共统计三次
sar -u 1 3
2.查看内存使用情况
sar -r
3.磁盘使用详情统计
sar -dp
4.统计网络信息:
sar -n DEV 1 1
5.查看历史负载
sar -q
6.查看磁盘读写
sar -b
7.查看历史监控数据,指定12号监控时间为从下午14:50点到15:30的cpu监控数据。
LANG=C sar -f /var/log/sa/sa12 -s 14:50:00 -e 15:30:00 -u
8.查看历史监控数据,指定18号监控时间为从下午14:50点到15:30的负载监控数据。
LANG=C sar -f /var/log/sa/sa18 -s 14:50:00 -e 15:30:00 -q
9.查看历史监控数据,指定18号监控时间为从下午14:50点到15:30的磁盘使用监控数据。
LANG=C sar -f /var/log/sa/sa18 -s 14:50:00 -e 15:30:00 -dp
10.看历史监控数据,指定18号监控时间为从下午14:50点到15:30的磁盘读写监控数据
LANG=C sar -f /var/log/sa/sa18 -s 14:50:00 -e 15:30:00 -b
11.看历史监控数据,指定18号监控时间为从下午14:50点到15:30的网卡监控数据
LANG=C sar -f /var/log/sa/sa18 -s 14:50:00 -e 15:30:00 -n DEV
网络篇:
1.如何通过arping检测IP冲突:
arping -I eth1 x.x.x.x -b
2.通过tcpdump抓包,监听指定网卡eth0的所有传输数据包:
tcpdump -i eth0
3.抓取主机192.168.1.200 经过本机网卡eth0的所有数据包:
tcpdump -i eth0 host 192.168.1.200
4.测试端口连通性可以使用哪些命令?
nc
telnet
5.查看TCP连接状态
netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn
netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}'
netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}'
netstat -n |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c
6.查找80端口请求数前20个IP
netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20
7.用tcpdump嗅探80端口的访问数最高的ip
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F "." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -10
8.查找较多time_wait连接
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n10
9.找查较多的SYN连接
netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more
10.根据端口列进程
netstat -ntlp | grep 80 | awk '{print $7}' | cut -d/ -f1
磁盘篇:
1.使用iotop监控root用户下有哪些进程有io。
iotop -u root
2.使用iotop只显示有io操作的进程。
iotop --only
3.使用iotop查询进程20709的io.
iotop -p 20709
4.通过iostat查询磁盘的使用情况
iostat -d
5.通过iostat查询磁盘详细的使用情况
iostat -dx
6.通过iostat以M为单位显示磁盘使用情况。
iostat -dxm
7.通过iostat以每2秒为周期,采集5次磁盘使用情况
iostat -dx 2 5
8.通过iostat 以每2秒为周期,采集5次sda磁盘的使用情况
iostat -dx 2 5 /dev/sda
9.通过iostat查询磁盘阵列lvm的使用情况。
iostat -dxN
10.在iostat的结果输出中,需要关注哪些信息?
%iowait 当%iowait的值过高,表示硬盘存在I/O瓶颈
%idle 当%idle值高,表示CPU较空闲。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。
%util 当%util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈
svctm与await 当svctm与await值相近时,说明I/O几乎没有等待时间。如果await远大于svctm说明I/O队列太长,io响应慢。
avgqu-sz 当avgqu-sz比较大时,说明当前有io在等待。