此文已由作者赵慧莉授权网易云社区发布。
欢迎访问网易云社区,了解更多网易技术产品运营经验。
一、前言
在进行性能测试前,有些参数需要本地进行调试,不适合直接使用性能测试平台。主要通过监控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、内存、磁盘、网络四个方面进行分析,每方面的从评估标准、常见的监控命令、常见会出现的一些问题来进行阐述,希望能给大家带来基础的认识。
更多网易技术、产品、运营经验分享请点击。
相关文章:
【推荐】 kubernetes大概的工作原理