博客推荐,linux大牛,netflix高级性能架构师 brendan gregg的博客http://www.brendangregg.com
2.cpu性能监控
1 平均负载基础
uptime命令
负载说明(针对单核情况,不是单核时,则乘以核数):
load<1:没有等待
load == 1:系统已无额外的资源跑更多的进程了
load > 1:进程都堵着等待资源
注意:
load < 0.7时:系统很闲,要考虑多部署一些服务
0.75时:系统已经非常繁忙了
3 平均负载与CPU使用率
平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数。所以,它不仅包括正在使用cpu的进程,还包括等待cpu和等待I/O的进程。
CPU使用率,是单位时间内CPU繁忙情况的统计,跟平均负载并不一定完全对应。比如:
a.CPU密集型进程,使用大量CPU会导致平均负载升高,此时这两者是一致的
b.I/O密集型进程,等待I/O也会导致平均负载升高,但CPU使用率不一定很高
c.大量等待CPU的进程调度也会导致平均负载升高,此时的CPU使用率也会比较高(线程池 4核同时并发 100个线程)
4.CPU使用率检测命令
系统自带:ps、top
第三方安装:apt install stress sysstat
其中sysstat包括mpstat和pidstat。
a mpstat是一个常用的多核CPU性能分析工具,用来实时查看每个CPU的性能指标,以及所有CPU的平均指标
b pidstat是一个常用的进程性能分析工具,用来实时查看进程的CPU、内存、I/O以及上下文切换等性能指标
压测命令:stress,一个linux系统压力测试工具,这里我们用作异常进程模拟平均负载升高的场景
top命令
VIRT:虚拟内存
RES:物理内存
vmstat命令
r(Running or Runnable):就绪队列的长度,也就是正在运行和等待CPU的进程数
b(Blocked):是出于不可中断睡眠状态的进程数
buff:是I/O系统存储的磁盘块文件的元数据的统计信息
cache:是操作系统用来缓存磁盘数据的缓冲区,操作系统会自动调节这个参数,在内存紧张时操作系统会减少cache的占用空间来保证其他进程可用
si和so:si和so较大时,说明系统频繁使用交换区,应该查看操作系统的内存是否够用
in(interrupt):每秒中断的次数
cs:表示线程环境的切换次数,此数据太大时表明线程的同步机制有问题
有时候cpu占用率不是很高,但是系统响应很慢的时候,要考虑是否需要加大内存看si和so指标
3.内存性能监控
buffer和cache的区别
4.文件IO性能监控
4.1I/O的两种方式(缓存I/O和直接I/O)
很多分布式文件存储都是通过零拷贝技术的
iostat命令
sysbench模拟数据读写
5.网络IO性能监控
netstat ss
网络吞吐sar命令
sar -n DEV 1
nc 验证服务器端口有没有开放
mtr连通性测试
mtr命令是linux系统中的网络连通性测试工具,也可以用来检测丢包率
mtr baidu.com 在云服务器选点:声网做音视频通话, 节点选取测试
nslookup 这是一款检测网络中DNS服务器能否正确解析域名的工具命令,并且可以输出。
使用:nslookup baidu.com
traceroute 可以提供从用户的主机到互联网另一端的主机的路径,虽然每次数据包由同一出发点到达同一目的地,路径可能会不一样,但通常来说大多数情况下路径是相同的
iptraf强大的网络监控,是一个实时监控网络流量的交互式的彩色文本屏幕界面,它监控的数据比较全面,可以输出tcp连接、网络接口、协议、端口、网络包大小等信息,但是耗费系统资源比较多,且需要管理员权限
tcpdump
页面更新:2024-03-08
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号