操作系统_上午

Posted njq666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统_上午相关的知识,希望对你有一定的参考价值。

根据架构图—画出请求数据流 —根据数据流经过的节点分析问题

负载机—经过网络传输到—应用服务器—跑服务—空闲中间件连接池(web请求连接池)_处理代码—通过网络把sql发送到—数据库连接池—请求发送到数据库服务器—数据库执行sql语句—将数据结果通过网络返回应用服务器—应用服务器对进程和线程唤醒—返回数据结果继续执行代码—将返回结果return—通过网络返回客户端

分析原因:

负载机(硬件)—网络—应用服务器(硬件)数据库服务器(硬件)web容器连接池—数据库连接池—sql执行过程—代码的业务逻辑。(java会有jc一说)

分析操作系统

操作系统三大件

1cpuCpu对操作系统影响最大-逻辑判断处理计算

2、内存:cpu工作需要的数据存在这里,相当于闪存和缓存,电脑重启后数据就释放了,例如qq进程强制被杀死,释放一块地址空间、如果在重新开启就开辟一块内存地址空间。非关 系型数据库nosql存在内存里Redis存放的key-value键值存储,内存比磁盘块很多。

   如果发生内存满了、所以电脑卡了、重启就全部清空内存了。

3、磁盘:存储最终需要的数据永久存储、关系型数据库mysqloracle数据存在磁盘里例如存一些报表,回收站清空时-清理的是磁盘、360提示清理垃圾、垃圾数据在磁盘上。
Cpu对操作系统影响最大-Cpu计算、逻辑判断的数据都存在内存里例如cpu进行ifa>0)逻辑判断但是数据a来自于内存。

4、固态硬盘:分散的读写速度更快 ,存储数据。

5、机械硬盘:读写是一个通道一个通道比较慢,存储数据。

6、二级缓存:lev1lev2cpu和内存之间、比内存速度更快。但是二级缓存很贵,现在已经没人用

7、磁盘的io:磁盘的读和写操作

8、一切问题揭io:数据库一般读写存在这个问题(数据库数据不再内存里在磁盘里)

  读: Sql的执行过程—读操作从磁盘里读—读取后放内存(缓存数据)—在读内存

发生的原因

1) 不是热点数据:热点数据就是缓存在内存里的数据-常规数据,数据里缓存。

2) Sql语句写的有问题例如select  *  查询量很大。—全部从磁盘把数据搬家过来,读出来在进行判断过程会很长。

  写:数据库语句insert写入到内存,这条sql就完成了,内存会自动同步到磁盘,再从内存放到磁盘上去。磁盘读速度不够快时,如果内存读取过程中电脑重启造成数据丢失。(取数据量很大、就读磁盘)

cpu利用率和cpu使用率是多少—硬盘利用率—磁盘io读写的大小

9cpu利用率:时间片里面供应用程序工作的时间片+系统调度的时间片之和/总时间

例如:开启qq、录制屏幕、聊天yy电脑不卡

原因:

l Cpu时间切片:1s中切成65535份是串行操作,第一份供给a进程、第二份给b进程,  每份切换给不同的进程,cpu在同一瞬间只能处理同一个任务。时间片处理我们基本上看不到。

l Cpu把进程上下文切换:当前做什么事、回来再做什么事情。把当前进程状态保存起来、等待cpu切换回来继续执行。

10cpu使用率:时间片切换出去之后,(时间片里面供应用程序工作的时间片(cpu读自己内存里的东西)+系统调度的时间片之和)/总时间。

11cpu使用率越高-应用程序处理越慢的原因为:

    供用户进程和系统进程工作时间比较多。

如果占比100%或者占比到90%等待cpu大部分时间都在给用户进程和系统进程工作。

存在概率为:都在为系统进程和用户进程工作、切时间片的时间越来越少,进程排队等待时切片越来越长、等待cpu调度代码时间越来越长,程序越来越慢。

技术图片

 

 面试题:cpu、内存、磁盘什么关系

Cpu:逻辑判断、计算处理。

内存:cpu工作的那些数据要从这里读取、数据存放。

磁盘:最终存放数据的地方。

例如:

cpu相当于工人—材料由工人加工。

内存相当于车间—工人在车间加工原材料、材料在内存放着,加工后临时放车间在放到仓库。

磁盘相当于仓库—加工后的放到仓库。

如果想提升加工效率——加人、加熟练工种就是cpu的赫兹

面试题:启动一个java进程

1、Userroot  他占用的是消耗用户cpu还是消耗系统cpu

消耗用户cpu

2java进程会写日志再往磁盘写数据,写日志的人是用户cpu还是系统cpu

消耗系统cpu-写磁盘时用户进程调用系统内核,切换到系统内核,系统内核调用底层命令在写日志

Us:用户消耗的cpu使用率 sy:系统消耗cpu使用率

 

负载

负载load average:三个参数代表:过去1分钟、5分钟、15分钟

负载如何计算:cpu正在调用的进程Run进程以及cpu等待io进程之和

命令vmstat     下图r就是代表在cpu运行的进程cpu正在调度的进程、b等待io的进程

负载值多少合理取决于cpu颗粒数、建议颗粒数的70%-80%

 

 

 

面试题

1、负载高cpu就一定高吗?负载低cpu就一定低吗?

例如:一个进程有大量复杂的计算会造成cpu很高、但负载就一个。

时间片都给了一个进程、一个进程cpu使用率很高,但是进程队里只显示一个Runing的所以负载不高。

反过来—有很多个进程运行只占用了cpu20%多的时间片,但是系统还有大量进程等待、等待其他的外部io的返回、负载:Runing+io等待所以负载变大。

有关系但是不是绝对关系

 

进程状态为(有点懵逼)

举例子:ABC都启动

操作系统性能好坏看cpu使用率还要看负载

正在调度的进程叫Running—等待io也叫中断状态、等待一个外部设备的输入或等待io的一个返回结果、然后在继续进行处理。

中断可恢复:等待外部输入例如input操作不知道什么时候返回结果

中断不可恢复:不断不可干预、会给个返回结果例如io系统内核在工作不可控制

这是负载是几个:

 

负载怎么去理解

例如:三条车道马路—三台以内最合理—如果四个车去跑就得有人排队等待—跑的车辆越多等待的就越多。

负载多少合理:取决于cpu颗粒数—一般建议是cpu颗粒数的 70%80%

正在进程Running拿到cpu时间片的状态和等待IO进程之和

我们是单核cpu

 

Cpu使用率多少合适

IO密集型应用:(生活中用的比较多,建议cpu(s):us+sy不超过80%)读数据库从磁盘里取数据、把数据存到磁盘。

Cpu计算型应用:大部分时间都是计算特别消耗cpu

如何查看几核CPU

我的电脑—属性—设备管理器—处理器

 

以上是关于操作系统_上午的主要内容,如果未能解决你的问题,请参考以下文章

Python学习_os模块使用

4.26上午

Linux系统配置及服务管理_第03章用户管理

3.15上午

在Linux操作系统下用Shell编写一时钟提示程序,要求能显示出上午好、中午好、下午好!!急待高手解决

4,26上午 口语习语完