性能测试-磁盘知识

1、磁盘-数据存储-两种磁盘

磁盘:持久化的存储设备-两种磁盘介绍
  • 机械磁盘: HDD,由盘片、磁头组成,数据存在盘片的环形磁道上,读写时,磁头移动定位到数据的磁道,进行数据读写
  • 固态磁盘: SSD,由固态电子元器件组成,不需要磁头寻址,所以,不管理连续io还是随机io,都比机械盘快。

2、磁盘-数据存储-文件-linux中,一切都是文件

  • 磁盘文件系统:ext4、xfs、nfs
  • 内存文件系统:基于内存的文件系统、proc/sys
  • 网络文件系统,用来访问其他计算机数据的文件系统,nfs、smb

3、磁盘-数据存储-基本概念

    • 扇区sector: 磁盘组成的最小单元(512b),磁盘磁道中一个弧段块
    • Block块:
操作系统与磁盘数据交换的最小单位
    ,块=2”x 扇区
    •  linux:类似Ext4文件系统,就是磁盘分块
    • windows: 类似NTFS文件系统,也是块,只是被叫做簇
  • 页page:操作系统与内存数据交换的最小单位
  • 缓冲区: buffer 内存与磁盘速度不匹配,在数据与磁盘进行IO时,数据先进入缓冲区;
  • 页缓存:Linux内存中对磁盘部分数据的副本,加快程序读取磁盘的速度和进程间数据共享

4、磁盘-磁盘分区

  • 磁盘分区:基本分区(primary partion)、扩展分区(extension partion)
    • 基本分区,不能再分区
    • 扩展分区,必须进行二次分区,才能使用。再分区就是逻辑分区
  • linux中IDE设备分区符为hd开头
    • hd=Hard Disk 表示硬盘是IDE(或ATA)并行接口
  • linux中SCSI设备分区符为sd 开头
    • sd=SerialATA Disk 表示硬盘是scsi,SATA串行接口,u盘也是scsi,所以u盘也是
    • sda vmware中把磁盘做成scsi设备,所以硬盘名称是sda
  • fdisk -l查看系统分区详细信息

5、 磁盘阵列RAID-大公司用

  • RAID0: 数据分片存在2块磁盘,读写速度提升2倍,但是,数据没有冗余,万一数据出错,很难恢复
  • RAID1:相同数据冗余存入2块磁盘,写速度不变,读速度提升2倍,数据有冗余,恢复数据很简单
  • RAID5:数据分片和校验码混合存储3份,读写速度提升2倍,数据没有冗余,但是有校验,数据恢复时,比较容易。
  • RAID10:2块磁盘1组先做RAID1,多组RAID1,再做RAID0。读写速度N倍 n为组数

6、磁盘-虚拟文件系统

  • 虚拟文件系统(Virtual File System,简称VFS)是Linux内核的子系统之一,它为用户程序提供文件和文件系统操作的统一接口,屏蔽不同文件系统的差异和操作细节。借助VFS可以直接使用open()、read()、write()这样的系统调用操作文件,而无须考虑具体的文件系统和实际的存储介质
  • 通过VFS系统,Linux提供了通用的系统调用,可以跨越不同文件系统和介质之间执行,极大简化了用户访问不同文件系统的过程。另一方面,新的文件系统、新类型的存储介质,可以无须编译的情况下,动态加载到Linux中

7、磁盘-文件I/O

文件操作:先open、再read()write()、最后close关闭文件
读写的不同,I/O不同:
  • 是否利用标准库缓存:缓存io和非缓存io
  • 是否利用页缓存: 直接io和 非直接io
    • 直接io:跳过操作系统的页缓存,直接与文件系统交互来访问文件
    • 非直接io:文件读写时,先给页缓存,再由内核调用,写入磁盘
  • 是否阻塞自身运行: 阻塞io和非阻塞io
    • 阻塞io:如果没有获得响应,就阻塞当前线程
    • 非阻塞io:不阻塞当前线程
  • 是否等待响应结果: 同步io 和异步io
    • 同步io:要一直等待整个io完成,才能获得io响应

    • 异步io: 不等待io完成,可以执行另外的

posted @ 2023-03-05 08:36  依羽杉  阅读(77)  评论(0编辑  收藏  举报