本文主要是介绍保障训练-20201016,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
5.1-5.9 监控linux系统状态
使用w查看系统负载
第一行显示系统时间、当前运行时间、目前登录用户(可以从下面看到)、系统负载
load average:0.61,0.67,0.29
这三个数字分别表示1分钟、5分钟、15分钟之内,系统的负载分别是多少
负载值低时,代表系统目前负载较小,有点浪费
如何合理利用?要看有几核逻辑CPU,不是物理CPU
FROM:表示从哪里来
LOGIN@:表示登录时间
IDLE:空闲了多长时间
JCPU、PCPU:使用了CPU的时间
WHAT:命令
uptime
和w命令第一行相同,所以我们平时使用w查看即可
cat /proc/cpuinfo查看CPU信息
查看processor数,即代表本机的CPU核数,如果是0,代表有1核。如果是1,代表有2核,以此类推
查看physical id数,代表本物理机cpu,如果是1,代表有2个物理cpu
如果说cpu核数是8,即processor数为7时,那么负载值不应大于8,都可以正常运行。5分钟平均负载和15分钟平均负载也是如此,如果负载值大于8,那么表示cpu核数已经不够用了
lscpu也可以查看CPU信息
vmstat命令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PB4NdXmY-1573454919685)(https://oscimg.oschina.net/oscnet/eb9e5a037fc6f4101f3569b35bc210844a6.jpg)]
vmstat 1每一秒查看一次系统状态,不需要时使用ctrl+c 停止
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WjCZ1Dn1-1573454919688)(https://oscimg.oschina.net/oscnet/a8c3a92f01d1efd0db6285717fd38a2f783.jpg)]
vmstat 1 5每一秒查看一次系统,查看5次
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pJHuemrz-1573454919690)(https://oscimg.oschina.net/oscnet/a0f7b47c5db247cabea804b94d74fd505d4.jpg)]
需要关注点:
1.r=run 有多少进程处于运行状态
当进程有多个时,而cpu只有一个,那么就需要轮流使用,在一个时刻只允许一个进程运行
2.b=block 有多少个进程在等待
3.swpd 当内存不够时,系统可以拿出内存中的一部分数据临时放到swap交换分区里。如果swpd值一直在变换时,说明交换分区和内存在频繁的交换数据,代表内存不够了
- si/so si 有多少k的块数据,从swap进入到内存中。so 有多少k的块数据,从内存中进入到swap,如果swap在频繁变换时,这两个值肯定也会变动
5.bi/bo bi 有多少k的数据从磁盘进入到内存中。bo 有多少k的数据从内存写入磁盘,这两个值很大时,说明磁盘在频繁的读写。跟cpu和内存比,磁盘是很慢的,如果很频繁的读写数据会导致b列的增加。因为有很多进程在等待磁盘
6.us 用户级别的,数字不会超过100%。表示用户的资源占用cpu的百分比,如果数字大于50,说明系统肯定资源不够
7.sy 系统本身的一些进程、服务,占用资源的百分比
8.id 空闲 us+sy+id+wa=st=100
9.wa=wait 有多少进程在等待cpu的百分比
10.cache/buff cache:缓存区,是高速缓存,是位于cpu和主内存之间的容量较小但速度很快的存储器 Buffer:缓冲区,用于存储速度不同步的设备或优先级不同的设备之间传输数据
top命令
top 查看进程使用资源情况
top #3秒显示一次,动态的
第一行:和w命令第一行相同
第二行:有多少个任务,有多少的正在运行的进程,有多少个休眠的进程,有多少个停止的进程,有多少个僵尸进程zombie(主进程被意外终止的)
第三行:cpu百分比,平时需要多关注us,如果us很高,系统负载将会特别大。st表示被偷走的cpu,如果服务器做了虚拟化,下面有一些虚拟机就会偷走一些cpu
第四行:KiB Mem表示物理内存,需要关注
第五行:KiB Swap表示交换分区
下面默认按照%cpu排序,占用高的在上
RES:物理内存大小,单位是字节
PID:进程号,可以使用它杀死进程,kill+pid号杀死进程
想要按照内存占用%MEM大小排序,按shift+m键
恢复按照%cpu排序,按shift+p键
查看所有cpu使用率,按1,可以来回切换
退出,按q
top -c #可以看到具体的进程命令,全局的路径,看的更详细
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hR1Wb9Ma-1573454946770)(https://oscimg.oschina.net/oscnet/e1f37f3e8c97db4d35bb729138dc54c5887.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nzOxk2Zk-1573454946773)(https://oscimg.oschina.net/oscnet/0ceff7b7fbbae11bc0edbeb6b3197f07305.jpg)]
top -bn1 #静态的显示,一次性的把所有的信息全部输出过来,适合在写脚本时使用
sar命令
sar是Linux系统里的瑞士军刀
从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等
如果没有sar命令可以安装sysstat
yum install -y sysstat
sar命令如果不加具体的选项,默认会调用系统里保留的一个历史文件,在/var/log/sa 目录下,sar每隔十分钟会把系统的状态过滤一遍,保存在文件里,存在此目录下
该目录下有两种类型的文件,一个是sa开头的文件,一个是sar开头的文件,其中sa是二进制文件,需要使用sar -f查看,sar是文本文件,可以直接使用cat命令查看
sar -n DEV查看网卡流量
用法和vmstat类似,后面跟1 2,表示每隔1秒显示1次,显示2次
第一列:时间
第二列:IFACE 网卡名字
第三列:rxpck/s 接受到的数据包,单位个数,几千属于正常,上万属于不正常
第四列:txpck/s 发送出去的数据包
第五列:rxkB/s 接收的数据量,单位KB
第六列:txkB/s 发送的数据量
第七列:rxcmp/s 不需要关注
第八列:txcmp/s 不需要关注
第九列:rxmcst/s 不需要关注
查看前一天的历史数据
sar -n DEV -f /var/log/sa/sa06
/var/log/sa 里保留的文件最多为一个月,所以文件为sa01-sa31
sar -p 查看系统负载
如果需要查看6号的
sar -q -f /var/log/sa/sa06
sar -b 查看磁盘读写
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g7KX7oTi-1573454991881)(https://oscimg.oschina.net/oscnet/176b6013cbc63b2a56f0cf649bd4e75a43e.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S7nPTJNZ-1573454991884)(https://oscimg.oschina.net/oscnet/041354ef4467a81b4ec905ed8e9f3f39d60.jpg)]
nload命令
默认没有安装,使用yum install -y nload
nload 动态的显示网卡实时速度的一个页面
第一行显示网卡名字、IP、网卡其中之一,可以按右方向键切换网卡,按q退出
lncoming 进来带宽
Outgoing 出去带宽
curr 当前值
Avg 平均值
Min 最小值
Max 最大值
Ttl 总和
监控io性能
1.iostat
在安装sysstat包时,默认会安装iostat包,和sar在同一个包里
iostat 1 2 用法和vmstat用法类似,每一秒执行一次,执行2次
iostat -x
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TIBVlZGy-1573455115917)(https://oscimg.oschina.net/oscnet/b6adae2d7940446e3509d7bb2c40793717e.jpg)]
重要指标:%util
表示磁盘的使用百分比,如果这个数很大,比如长期超过90%,说明磁盘非常忙,读写肯定会很大。如果读写不大,但该列值很大,就说明硬盘有问题
2.iotop #监控磁盘读写状况
yum install -y iotop
iotop
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jBektTlQ-1573455115918)(https://oscimg.oschina.net/oscnet/d775e8cce79817a647535fd35377771d24d.jpg)]
和top很像,动态显示
free命令
用来查看内存使用情况
centos6和centos7显示的内容是不一样的,7更直观,第一行是说明,第二行是内存使用情况,第三行是swap使用情况,我们主要关注第二行,内存使用情况
第一列:total 内存总大小,单位KB
第二列:used 内存已用大小
第三列:free 内存剩余大小
第四列:shared 共享大小
第五列:buff/cache 缓冲/缓存
第六列:available free剩余内存+buff/cache剩余的
公式:total=used+free+buff/cache
指定单位为M时,使用free -m,指定单位为G时,使用free -g或者free -h在后面显示单位
ps命令
ps命令查看系统进程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zQJuMYRl-1573455193227)(https://oscimg.oschina.net/oscnet/c36ce58e6622d8ca2187829b9ede5fce364.jpg)]
ps aux
静态的,一次性把系统当前所有进程列出来
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o8u2pPHK-1573455193230)(https://oscimg.oschina.net/oscnet/ccc2c99e53e4dfbe4548d950c7a2b92e7df.jpg)]
USER 用户
PID 进程ID,杀死进程时可以用到kill PID,有时候这样并不能终止进程,需要加-9选项,即kill -9 PID,这样有点暴力,严重时会丢失数据,尽量不要使用
STAT进程状态,分为以下几种
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xWUeNoU7-1573455193232)(https://oscimg.oschina.net/oscnet/376a3720f19beea35b5af9b5cded58371f6.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0BZr0Cgw-1573455193235)(https://oscimg.oschina.net/oscnet/fffbc9034b3c73c977bfa66900f17f63d24.jpg)]
查看进程所在目录
ls -l /proc/进程的PID/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BDduK6zB-1573455193237)(https://oscimg.oschina.net/oscnet/7449b9208039b645c5bc993bc8093c32481.jpg)]
ps aux |grep 进程名称
检查某一个进程有没有运行
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kt7TXjLu-1573455193246)(https://oscimg.oschina.net/oscnet/46292025f8203af9aad64642f3a12254265.jpg)]
ps -elf
类似于ps aux,把系统进程罗列出来
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pvpb011y-1573455193248)(https://oscimg.oschina.net/oscnet/917128836ac322e072924fc8cd4396d0816.jpg)]
查看网络状态
netstat -lnp 查看监听端口
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uaFpIpZw-1573455228223)(https://oscimg.oschina.net/oscnet/d86a7913c3fe14ee6b046e01df41282f48b.jpg)]
netstat -an查看tcp/ip所有的连接状态
netstat -lntp 只查看tcp的监听端口
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ngRhIiGC-1573455228228)(https://oscimg.oschina.net/oscnet/68bf1a6cf29a4306fa2781ffe8fadf2f0f1.jpg)]
netstat -ltunp 查看tcp和udp的监听端口
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3MNXHqB6-1573455228231)(https://oscimg.oschina.net/oscnet/ec777ba8f5c01f5ffb1b713521bc92076a0.jpg)]
小技巧:查看所有状态数字
netstat -an |awk ‘/^tcp/{++sta[$NF]}END{for(key in sta)print key,"\t",sta[key]}’
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PVlJBluS-1573455228237)(https://oscimg.oschina.net/oscnet/5cbb8b4f53e65f38e9379013065a69adc55.jpg)]
ESTABLISHED如果很大,说明系统很忙,我们可以理解为并发连接数
ss -an和netstat异曲同工,显示tcpip状态
ss -an |grep -i listen
查看listen的状态,不会显示进程名称
linux下抓包
1.tcpdump工具
yum install -y tcpdump
tcpdump采用命令行方式对接口的数据包进行帅选抓取,其丰富特性表现在灵活的表达式上。不带任何选项的tcpdump,默认会取第一个网络接口,且只有将tcpdump进程终止才会停止抓包
命令格式
抓包选项
输出选项
其他功能性选项
所以常用的选项也就这几个:
tcpdump -nn
tcpdump -nn -i网卡名字
tcpdump -i网卡名字
tcpdump -nn port 80 查看80端口
tcpdump -nn not port 22 and host 192.168.0.100 不要22端口并且只要192.168.0.100的包
tcpdump -nn -c 100 -w /tmp/1.cap 指定100个数据包并且存放到1.cap里去
要有数据产生才能抓包,可以再打开一个终端产生一些数据,例如执行top命令、vmstat命令,过会儿就会抓取完
要想查看1.cap信息,不能直接使用cat查看
使用tcpdump -r /tmp/1.cap查看
参考:http://blog.chinaunix.net/uid-29792372-id-5048174.html
2.tshark
安装
yum install -y wireshark
使用
查看指定网卡80端口的web访问情况
其他用法,参考:http://ask.apelearn.com/question/995
这篇关于保障训练-20201016的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!