(5)硬盘及swap工作机制
视频链接:
https://www.bilibili.com/video/BV1Zt411w7eQ?p=7
命令
top
进程长时间不工作的话,系统会将该进程置成sleep状态,CPU在轮询的时候,不会轮询sleep状态的进程。这样会减少CPU的上下文切换时间。
补充:
进程被从CPU置换出来的条件:
1.时间片到了;
2.进程在执行过程中因等待某种资源而进入sleep状态。
所以,上图中可以看出,CPU在调度任务时只会调度2个ruuing的。
相关文章:https://blog.csdn.net/Ruishine/article/details/115143415
iostat 1 2
--查询硬盘使用情况
# iostat 1 2
Linux 3.10.0-1062.el7.x86_64 (devdb01) 09/08/2021 _x86_64_ (16 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.07 0.00 0.07 0.00 0.00 99.86
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.77 1.24 40.48 539759 17688373
sdb 1.09 0.01 55.06 6000 24063355
dm-0 0.77 0.91 40.12 398243 17530565
dm-1 0.15 0.29 0.33 125192 142384
dm-2 1.09 0.00 55.06 1180 24063355
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.13 0.00 0.00 99.87
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 2.00 8.00 21.00 8 21
sdb 0.00 0.00 0.00 0 0
dm-0 2.00 8.00 21.00 8 21
dm-1 0.00 0.00 0.00 0 0
dm-2 0.00 0.00 0.00 0 0
free
--查看内存使用情况
# free
total used free shared buff/cache available
Mem: 32778544 835672 208896 9841636 31733976 21672764
Swap: 33550332 17920 33532412
swap工作机制
为了解决内存不够用的问题,在硬盘上划出了一部分空间(Linux:swap空间,windows:page空间),和内存关联。
当内存空间耗尽时,内存中长时间不用的数据可以置换到swap,挪出内存空间供使用。
当再次用到swap中的数据时,可以将其再次调入内存。
内存速度快,硬盘速度慢,发生置换会降低速度。
说明:
1.使用swap防止了因内存耗尽而导致操作系统挂起;
2.尽量通过优化而减少swap的使用;
3.如果使用了swap,希望是out>in 。
硬盘工作机制
磁盘的结构,如下图:
(图片来源:https://blog.csdn.net/Ruishine/article/details/115147548)
- 数据存在磁道上
- 每个扇区存放512字节数据,所以数据在外圈磁道上存储的稀疏些,在内圈磁道上存储的密集些。
- 磁头悬浮在磁道的上方,没有直接接触磁道,如果磁头接触到磁道,会出现物理损伤,磁盘可能出现坏道。
- 磁头从磁道读数据:马达驱动磁臂,磁臂带动磁头到达指定磁道上方,盘片是飞速旋转的,这样就可以取出数据了,然后通过线路通过接口将数据传到主板内存(三部分时间:1.寻道时间(占用比例最高) 2.旋转时间 3.传输时间)。
【补:碎片整理:把我们要取的数据尽量放在一起,这样可以减少寻道时间。】
硬盘参数:
- 盘片的旋转速度
- 硬盘容量
- 硬盘接口(影响传输速度)
- linux磁盘分区以柱面为基本单位
- 电脑一旦启动,硬盘会以一定的速度在旋转,即使没有取数据。当不取数据时,磁头会进入停泊区。现在的电脑为了节能,在不读数据时,会降低盘片的旋转速度。
硬盘接口
个人电脑:
IDE:并口
IDE并口,串行化以后是SATA盘
SATA:串口
SATA2
SATA3
服务器:
SCSI:并口
SCSI串口化以后是SAS
SAS:串口
FC(光纤盘),串口,接口传输速度:2Gb 4Gb 8Gb
- 现在服务器常用的是SAS和FC
- 电脑常用的是SATA2和SATA3
并口和串口的区别:
- 并口占空间,串口节省空间
- 串口线少线短,干扰小
IDE和SATA将数据从磁盘传输至内存时,会占用CPU时间,因为IDE和SATA盘上没有CPU芯片。
SCSI 、SAS、 FC磁盘上有CPU芯片,从硬盘取数据时,占用的CPU时间非常少,可节省CPU时间。所以服务器一般用这三种磁盘。而电脑上用IDE和SATA。
上一篇:Oracle学习笔记–系列一(4)
下一篇:Oracle学习笔记–系列一(6)