操作系统性能指标:CPU,io,内存


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

问题?一个请求的响应时间慢,原因是什么?

首先看响应时间都包括什么?

响应时间就是用户从发送请求到展示到页面的时间,也就是前端时间和服务器的处理时间,一般我们都说的是服务器的时间

也就是服务器时间,数据库时间,网络时间

划分为web服务器时间,应用其服务器时间,数据库时间,以及各服务器间通信的网络时间。

 

三个方面:

服务器处理:代码处理逻辑,中间件,操作系统(因为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都是在操作系统上,硬

 

缓存和缓冲的区别:

缓存说的是数据,数据从硬盘到内存

缓冲说的是文件,

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM