CPU、内存、磁盘IO之间的关系是什么

77次阅读
没有评论

共计 1850 个字符,预计需要花费 5 分钟才能阅读完成。

本篇内容主要讲解“CPU、内存、磁盘 IO 之间的关系是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“CPU、内存、磁盘 IO 之间的关系是什么”吧!

一、名词解释

CPU:工人,干活的,判断以及逻辑处理。

内存:车间,工人干活的地方,车间中加工原料,当车间中没有原料了,在从仓库中取原料,对原料进行加工

内存本身有一定的存储空间,对内存中的数据进行处理的速度比从硬盘取数据再处理的速度快很多。

硬盘:仓库,原料,数据存储。

二、三者之间的关系

CPU 对数据进行判断以及逻辑处理,本身不能存储数据,这时 cpu 从内存取数据进行逻辑计算,如果内存没有数据,才会从硬盘读数据到内存,再对数据进行处理。

就像人吃饭一样,cpu 就是人,内存就是碗,硬盘就是饭锅!

当 cpu 进程等待,会造成内存开销的增加,内存不够用的时候会用到虚拟内存,导致虚拟内存的增加,这时磁盘 IO 开销就会增加,系统态 sy% 提升,cpu 开销增加;内存里数据不够用,才用磁盘中取数据。

三、性能高因素

1、系统 CPU 利用率高是什么原因?

系统中断和切换频繁很耗用 CPU,共享资源竞争,大量 io 交互。CPU 太差,主频太低,都是形容 CPU 差。

苹果系统一直是单线程,因为这样减少了 N 多插队的请求导致的中断减速.

2、用户 CPU 利用率高是什么原因?

计算量大,比如运算,连接查询,数据统计;

非空闲等待,比如 IO 等待、资源争用(同一资源被不同线程请求,而此资源又需要保持一致性,只能前一个释放后一个

再访问,这样导致的等待);

过多的系统调用,系统调用即调用操作系统提供的程序接口,比如 Java 项目中写日志,会调用系统接口进行日志写操作,这样

会导致系统 CPU 使用率过高;

过多的中断,中断是 CPU 用来响应请求的机制,比如键盘的输入,鼠标的点击等都会产生中断,中断是通知 CPU 有任务需

要响应,CPU 停下正在执行的程序来响应当前的中断;

3、内存吃紧的原因?

多数是过多的页交换和内存泄漏

页交换:内存不够用来存储需要的数据时,操作系统会把原内存中的部分内容释放掉(移除或者存入磁盘),然后把需要

的内容载入,这个过程就是页交换。

4、下面 IO 高的原因是?

读写量大;磁盘太慢,是因为转速慢,或者磁头少,或者 RAID 型号不太 OK(RAID 有   0 1 5 10 100 等等,有的可以做存储盘,有的可以做备份盘);

内存不足,操作系统就会用虚拟内存,肯定要用系统的交换区了,比如 LINUX 的 SWAP,就造成分页增多;

如果你是老板,你如何检查打工仔的效率(性能)呢?我们一般会通过以下这些信息来判断打工仔是否偷懒:

(1)、打工仔接受和完成多少任务并向老板汇报了(中断);

(2)、打工仔和老板沟通、协商每项工作的工作进度(上下文切换);

(3)、打工仔的工作列表是不是都有排满(可运行队列);

(4)、打工仔工作效率如何,是不是在偷懒(CPU 利用率);

四、系统中的上下文切换、运行队列等

上下文切换:每个 CPU(或多核 CPU 的每个核心) 在同一时间只能执行一个线程 不包括超线程 CPU,Linux 采用抢占式调度。

当线程执行到达一个时间片后,如果线程有 IO 阻塞或高优先级线程要执行的时候,Linux 将执行线程切换,切换前先保存当

前线程执行状态 (现场),并恢复待执行线程状态,这个过程就叫做上下文切换。在 Java 应用中,文件 IO、网络 IO、锁等待、线

程 Sleep 操作都会使该线程进行阻塞或睡眠状态,从而触发上下文切换。频繁的上下文切换会造成内核占用较高的 CPU,使得

响应速度下降。

运行队列:每个 CPU 核心都维护了一个可运行队列,例如一个 4 核 CPU,启动 8 个线程,且 8 个线程都处于可运行状态,平均

分配情况下,每个核心的可运行队列里就有 2 个线程。通常而言,系统的 load 是由 CPU 运行队列决定的,假设以上状态维持

了 1 分钟,则 1 分钟内系统 load 就是 2。运行队列值越大,代表线程要消耗越长的时间才能执行完成。通常建议每个核心运行

队列为 1 - 3 个。

利用率:CPU 利用率指在用户进程,内核,中断处理,IO 等待以及空闲五个部分百分比,这五个值是用来分析 CPU 消耗情

况的关键指标。Linux System and NetWork Performent Monitoring 建议用户进程 / 内核消耗比例为 65%-70% / 30%-3

5% 左右。

到此,相信大家对“CPU、内存、磁盘 IO 之间的关系是什么”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计1850字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)