标签:数据库 内存 io sql 进程 磁盘 CPU 性能指标
1,负载
什么是负载?
正在被CPU调度的进程+等待CPU调度的进程;正在运行的进程+正在io 的进程
怎么看负载?
load average:0.13 0.06 0.01 过去一分钟的系统的平均负载,过去5分钟的平均负载,过去15分钟系统的平均负载
什么样的负载是OK的?
不超过CPU颗粒数
进程是资源分配的最小单元
线程最小的调度单元
2,CPU
CPU理解?
CPU工人干活的在内存干活,内存相当于车间,数据最终存在磁盘,相当于仓库
怎么样的CPU是OK的?
CPU使用率(user+sy)不超过80%
97.4%id>20%,大于20%就是OK的
问题:Tomcat进程在写日志时消耗的是系统内核进程,消耗的是系统CPU
回答:系统的CPU,系统内核切换的时候消耗的CPU,进程切换的时候,需要保持进程的上下文状态,进程切换是在内核进行切换的,用到内核的进程,写磁盘,读磁盘是消耗系统的进程,从用户进程切换到系统内核进程,系统内核对进程操作
3,内存 men是内存
Java应用程序没有内存使用率之说,只有gc频率以及内存溢出;关心fullgc和内存溢出;因为Java有虚拟机,有最小内存和最大内存,
非Java应用小于80%
4,磁盘 iostat -x
磁盘主要看什么?
繁忙程度和队列
磁盘有哪些指标?
tps:每秒读,写磁盘的次数;每秒io的次数
rd_sec/s :每秒读磁盘的次数 ,读的比较多说明内存数据不够,从磁盘读数据
rd_sec/s:每秒写磁盘的次数,写的比较多在写日志
avgrq-sz:每秒操作扇区的大小
avgqu-sz;磁盘队列长度,队列大小长度,就是请求有没有排队,不能有大于1;
await:磁盘每次处理的时间,不超过5毫秒,看读多还是写多,如果读多,内存的数据不够
读多:数据库的全表扫描,执行语句,在内存中执行,从磁盘中读出来,
写过:就是写操作比较多,
svctime:磁盘自己处理的时间,
排队时间:await-svctime
怎么看磁盘是否OK?
单块磁盘的繁忙程度不超过30%,用nmon命令,看busy 是否超过30%
或者看队列不能超过1
怎么查看打开文件大小?
open files:1024个
ulimit -n 65535 调整为65535
问题?一个请求的响应时间慢,原因是什么?
三个方面:
服务器处理:代码处理逻辑,中间件,操作系统(因为db和web容器运行在操作系统上)硬件资源CPU,io等
网络
数据库:执行sql时间sql执行的效率,数据库执行的快还是慢,看服务器的慢查询日志,或者把sql拿出来执行一下
负载机---》网络----》web容器(Tomcat,apache等)是否空闲进程,然后执行代码,执行到sql语句时,线程挂起,因为等待数据库返回结果,-----》数据库执行sql执行时间(数据库是否有空闲的数据库连接池,如果没有进行排队)
1,请求发起的地方负载机,负载机的配置(负载机的带宽啥的) client
2,带宽 网络
3,web容器线程池是否排队,web容器是Tomcat,Apache,资源池是否排队,看是否有空闲的线程,如果排队到了的话就开始执行代码---执行到sql语句的话请求(线程或者进程)挂起---------请求请求发到数据库,数据库执行sql---执行完后把结果返回
4,数据库连接池是否排队,如果有空闲的数据库连接池
5,sql执行的效率,数据库执行的快还是慢,看服务器的慢查询日志,或者把sql拿出来执行一下
6,jvm是否暂停 应用程序线程暂停的
7,代码的业务逻辑的问题
Nginx多进程,
8,web容器和db都是在操作系统上,硬
标签:数据库,内存,io,sql,进程,磁盘,CPU,性能指标 来源: https://www.cnblogs.com/yqcf/p/11420742.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。