LINUX_分析系统情况
简介
如果通过内存 CPU 磁盘 网络 指标分析系统运行情况
什么是QPS/TPS
本节原文地址:https://blog.csdn.net/u010889616/article/details/83245695
QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
Tps即每秒处理事务数,包括了
1.用户请求服务器
2.服务器自己的内部处理
3.服务器返回给用户
这三个过程,每秒能够完成N个这三个过程,Tps也就是N;
Qps基本类似于Tps,但是不同的是,对于一个页面的一次访问,形成一个Tps;
但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“Qps”之中。例如:访问一个页面会请求服务器3次,一次放,产生一个“T”,产生3个“Q”
系统吞吐量
本节原文地址:https://blog.csdn.net/u010889616/article/details/83245695
一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。
系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间
QPS(TPS):每秒钟request/事务 数量
并发数: 系统同时处理的request/事务数
响应时间: 一般取平均响应时间
理解了上面三个要素的意义之后,就能推算出它们之间的关系:
QPS(TPS)= 并发数/平均响应时间 或者 并发数 = QPS*平均响应时间
CPU指标分析
load average
这三个指标分别是1分钟 5分钟 15分钟的CPU负载指标
正常的数值应该是:CPU核数*75%
列如四核的CPU机器正常范围的的指标是3
us sys wait
us代表用户空间使用率,此使用率高一般情况是指程序自身问题
sys代表系统空间使用率,此使用率高一般情况是CPU处理不过来
wait代表CPU等待,这个高的话一般是虚拟机在等待物理机的CPU资源
内存
内存曲线
内存曲线如果是慢慢上升的 没有下降的痕迹一般都是内存泄露导致的
内存曲线如果有升有降 曲线比较明显 一般是正常的业务流量
如果Java进程发生内存泄漏,可以把当时的内存信息jmap下来,再进行分析
什么是buffer/cache
简单来说buffer是为了解决读写速度不一致的情况,内存中的数据要写入到磁盘中,为了避免多次IO,提升性能,内存中的数据先写入到buffer中,到达一定的数量后再写入磁盘
cache是因为CPU和内存的读写速度问题,CPU从内存中读取数据,因为内存过慢 就将CPU常用资源放到cache中,提升CPU读写速度
在系统中判断真实内存情况要减去buffer/cache的用量,才是系统的真实内存使用情况
网络
流量情况
网络流量的判断要根据机器的带宽和数天内的流量来判断,业务有高峰低峰 所以流量会根据业务情况高低不一,如果流量长时间处于高峰 并且之前没有类似的情况 没有做什么活动等引流的动作的话,就要分析情况了,高峰流量是不是业务流量?这么高的流量会对业务造成影响?
可通过ss查看网络连接情况,根据网络连接进行综合判断
iftop
可以通过iftop查看本机的流量情况,找到流量最高的本地端口 通过端口查看是什么服务占用的流量
iftop需要epel库
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
网络延迟
通过ping查看网络延迟
通过traceroute查看本地到目的地之间的节点 延迟情况
traceroute www.baidu.com
磁盘
io情况
通过iostat查看磁盘整体IO情况
通过iotop查看进程的磁盘io情况
是否有io瓶颈要根据iops来具体分析
磁盘空闲
df -h
查看磁盘是否有空闲的磁盘空间,看看是否有可以移动或者删除的大文件
commit延时
应用
本节主要以Java的tomcat来讲的
tps/qps
tps/qps定义参考上方
业务关系
应用是否单进程?不能完全占用系统性能
业务依赖关系,是否存在某个服务处理速度慢 从而拖垮整个系统