大家好,又见面了,我是你们的朋友全栈君。
此文已由作者赵慧莉授权网易云社区发布。
欢迎访问网易云社区,了解更多网易技术产品运营经验。
一、前言
在进行性能测试前,有些参数需要本地进行调试,不适合直接使用性能测试平台。主要通过监控CPU、内存、磁盘、网络情况来判断是否符合标准。接下来将通过CPU、内存、磁盘、网络情况的评估标准、常见的监控命令、常见会出现的一些问题来进行分析。
二、资源监控
1、监控CPU
-
CPU评估
-
user + sys [0%, 50%] :负载低
-
user + sys [70%, 90%] :负载高
-
user + sys [90%, 100%] :满负荷
-
CPU在满负荷状态下应符合7/3分布
-
CPU的负载不能高于CPU核心数目
-
-
常用的监控命令
-
整理CPU使用情况:top/vmstat/dstat
-
每个CPU使用情况:mpstat
-
进程CPU使用情况:pidstat
-
-
举例
-
vmstat命令:用来获得有关进程、虚存、页面交换空间及 CPU活动的信息。(实例为:1s采集一次,采集4次后结束)
-
dstat命令, 默认情况它会收集-cpu-,-disk-,-net-,-paging-,-system-的数据。(默认输入dstat等于输入了dstat -cdngy 1或dstat -a 1. 推荐使用 date && dstat -tclmdny 60 一分钟监视一次)
-
mpstat最大的特点是:可以查看多核心cpu中每个计算核心的统计数据。
-
pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存、设备IO、任务切换、线程等。
-
-
常见的CPU问题
-
多核使用率不均匀
-
CPU使用率过高
-
CPU周期性的飙升
-
2、监控内存
-
内存
-
物理内存:真正的内存
-
虚拟内存:为了满足物理内存不足,利用磁盘空间虚拟出的逻辑内存
-
使用交换内存会带来磁盘IO和CPU开销的增加
-
-
常用的监控命令
-
top
-
free
-
vmstat
-
cat /proc/meminfo
-
-
举例
-
top
-
free
-
-
常见的内存问题
-
OOM
-
内存暴增
-
swap升高
-
内存泄漏
-
3、监控磁盘
-
相关指标
-
IOPS:每秒读写次数,tps
-
bps:每秒读写块数,Blk_read/s , Blk_wrtn/s
-
%util:设备的利用率
-
svctm:平均每次设备I/O操作的服务时间
-
await:平均每次设备I/O操作的等待时间,排队时间+服务时间
-
avgqu-sz:平均I/O队列长度
-
await和svctm差距越大表示io的压力越大
-
-
常用的监控命令
-
iostat
-
iotop
-
-
举例
-
iostat选项-x,该选项将用于显示和io相关的扩展数据。
-
4、监控网络
-
需要关注点
-
网络流量
-
监听端口
-
连接数
-
句柄数
-
-
常用的监控命令
-
netstat / dstat
-
lsof
-
sar
-
tcpdump
-
iptraf
-
-
举例
-
tcpdump(tcpdump -i any -s 0 -l -w – port 8186|strings )
-
-
常见的网络问题
-
能ping通但是服务不能访问
-
too many open files
-
三、总结
本文主要从监控CPU、内存、磁盘、网络四个方面进行分析,每方面的从评估标准、常见的监控命令、常见会出现的一些问题来进行阐述,希望能给大家带来基础的认识。
更多网易技术、产品、运营经验分享请点击。
相关文章:
【推荐】 jq一个强悍的json格式化查看工具
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107196.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...