用户发送请求后服务端i/o工作过程

华子目录

  • 服务端`i/o`介绍
    • `磁盘i/o`
      • `机械磁盘`的`寻道时间`、`旋转延迟`和`数据传输时间`
      • 常见的机械磁盘平均`寻道时间值`
      • 常见磁盘的平均`延迟时间`
      • 每秒最大`IOPS`的`计算方法`
    • `网络i/o`
      • `网络I/O`处理过程
      • `磁盘和网络i/o`
  • `一次完整的请求在内部的执行过程`

服务端i/o介绍

  • i/o计算机中指Input/OutputIOPS (Input/Output Per Second) 即每秒处理I/O请求的数量 (或读写次数),是衡量磁盘性能主要指标之一
  • IOPS是指单位时间内系统能处理I/O请求数量,一般以每秒处理的I/O请求数量单位
  • I/O请求通常为读或写数据操作请求
  • 一次完整I/O用户空间进程数据内核空间内核数据报文完整交换
  • 但是由于内核空间用户空间严格隔离的,所以其数据交换过程中不能由用户空间进程直接调用内核空间内存数据,而是需要经历一次内核空间中的内存数据copy到用户空间进程内存当中
  • 所以简单说I/O就是把数据内核空间中的内存数据复制到用户空间进程的内存当中

服务器I/O

  • 磁盘I/O
  • 网络I/O : 一切皆文件本质为对socket文件读写

磁盘i/o

  • 磁盘I/O进程内核发起系统调用,请求磁盘上某个资源,比如是html文件或者图片,然后内核通过相应的驱动程序目标文件加载到内核的内存空间加载完成之后数据内核内存复制进程内存,如果是比较大数据也需要等待时间

机械磁盘寻道时间旋转延迟数据传输时间

  • 寻道时间:是指磁头移动到正确的磁道上花费的时间寻道时间I/O处理越快,目前磁盘的寻道时间一般在3-15毫秒左右
  • 旋转延迟:是指从磁盘寻道结束开始,直到磁头旋转到I/O请求请求的起始数据块位置为止时间间隔这个时间间隔磁盘驱动器读取或写入数据时所需的一个额外时间,主要由磁盘物理特性决定
  • 旋转延迟大小取决于磁盘的转速磁头所在磁道与目标磁道之间角度差。一般使用磁盘旋转周期一半作为旋转延迟近似值这种方法实际应用非常实用
  • 旋转延迟 = 磁盘旋转一周所需时间 / 2 = 60秒 × 1000毫秒/秒 / 磁盘转速(RPM) / 2
  • 例如一个7200RPM磁盘,其平均旋转延迟大约为60 × 1000 / 7200 / 2 = 4.17毫秒
  • 数据传输时间:指的是读取数据后传输数据时间,主要取决于传输速率数据传输时间等于数据大小除以传输速率目前的磁盘接口每秒的传输速度可以达到600MB因此可以忽略不计

常见的机械磁盘平均寻道时间值

  • 7200转/分磁盘平均物理寻道时间9毫秒
  • 10000转/分磁盘平均物理寻道时间6毫秒
  • 15000转/分磁盘平均物理寻道时间4毫秒

常见磁盘的平均延迟时间

  • 7200转机械盘平均延迟60*1000/7200/2 = 4.17ms
  • 10000转机械盘平均延迟60*1000/10000/2 = 3ms
  • 15000转机械盘平均延迟60*1000/15000/2 = 2ms

每秒最大IOPS计算方法

  • 7200转磁盘IOPS计算方式:1000毫秒/(9毫秒的寻道时间+4.17毫秒的平均旋转延迟时间)=1000/13.13=75.9 IOPS
  • 10000转磁盘的IOPS计算方式:1000毫秒/(6毫秒的寻道时间+3毫秒的平均旋转延迟时间)=1000/9=111IOPS
  • 15000转磁盘的IOPS计算方式:15000毫秒/(4毫秒的寻道时间+2毫秒的平均旋转延迟时间)=1000/6=166.6 IOPS

网络i/o

  • 网络I/O指的是网卡内存之间输入输出。当网络上数据到来时网卡需要将数据拷贝到内存中;当要发送数据网络上的其他设备时,需要将数据内存拷贝到网卡里

在这里插入图片描述

网络I/O处理过程

  • 获取请求数据客户端服务器建立连接发出请求服务器接受请求
  • 构建响应,当服务器接收完请求,并在用户空间处理客户端的请求直到构建响应完成
  • 返回数据服务器已构建好的响应再通过内核空间网络I/O发还给客户端

磁盘和网络i/o

每次I/O,都要经由两个阶段

  • 第一步:将数据文件加载内核内存空间缓冲区),等待数据准备完成时间较长
  • 第二步:将数据内核缓冲区复制到用户空间进程的内存中时间较短

一次完整的请求在内部的执行过程

  • 网卡内存都在主板上网卡内存通过总线通信不消耗cpu),用户请求的数据就会到io空间上,访问的是socket套接字,这个io空间内核开的,然后内核会把请求copy到应用软件app,然后进程就会知道这个请求需要什么东西所有对于硬件的调用,app是做不到的,只能内核可以),如果说这个appnginx请求是index.htmlnginx就会构建报文告诉内核它要取index.html文件内核读取完所有数据之后需要消耗cpu),返回给nginxnginx开始构建相应报文,将相应报文返回给内核中socketsocket在返回给用户

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/64354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

http的MIME类型

在 HTTP 协议中,MIME 类型(Multipurpose Internet Mail Extensions)用于描述传输内容的类型和格式。MIME 类型通过 Content-Type 头字段来指定,告知客户端如何处理和显示接收到的数据。 常见的 MIME 类型 以下是一些常见的 MIME…

智能人体安全防护:3D 视觉技术原理、系统架构与代码实现剖析

随着工业化程度的提高,生产安全已成为企业关注的重点。尤其是在一些存在禁区的工业厂区和车间,人员误入或违规进入将带来严重的安全隐患。为了解决这一问题,迈尔微视推出了智能人体安全检测解决方案,为企业提供全方位的人员安全监…

sqlalchemy异步方法使用

建立模型 创建基类base.py from sqlalchemy.orm import DeclarativeBaseclass Base(DeclarativeBase):pass以用户为例,建立用户模型继承基类 from sqlalchemy import Integer, String, ForeignKey, DateTime, Boolean from sqlalchemy.orm import mapped_column, Ma…

暂停window11自动更新

window11 的自动更新功能,一方面在后台占用资源,容易导致电脑卡顿;另一方面,“更新并关机” 和 “更新并重启” 的设置令人极其反感。很多补丁兼容性很差,更新后极易引发电脑蓝屏、闪屏等意想不到的 bug。 1.winR打开运…

CTF-WEB: php-Session 文件利用 [第一届国城杯 n0ob_un4er 赛后学习笔记]

step 1 搭建容器 教程 A5rZ 题目 github.com Dockerfile 有点问题,手动修复一下 FROM php:7.2-apacheCOPY ./flag /root COPY ./readflag / COPY ./html/ /var/www/html/ COPY ./php.ini /usr/local/etc/php/php.ini COPY ./readflag /readsecretRUN chmod 755 /var/www…

在Win11系统上安装Android Studio

诸神缄默不语-个人CSDN博文目录 下载地址:https://developer.android.google.cn/studio?hlzh-cn 官方安装教程:https://developer.android.google.cn/studio/install?hlzh-cn 点击Next,默认会同时安装Android Studio和Android虚拟机&#…

网络基础概念

目录 一、计算机网络的发展背景1、网络的定义(1) 独立模式(2)网络互联 2、局域网 LAN3、广域网 WAN4、比较局域网和广域网5、扩展 —— 域域网和互联网 二、初识协议1、协议的概念2、协议的本质3、协议分层(1&#xff…

基于docker安装-高斯DB(opengauss)

获取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/opengauss:latest启动并配置容器 docker run --name OpenGauss --privilegedtrue --restartalways -u root -p 15432:5432 -e GS_PASSWORDEnmo123 -v /etc/localtime:/etc/localtime -v /data/OpenGaus…

web网页前后端交互方式

参考该文&#xff0c; 一、前端通过表单<form>向后端发送数据 前端是通过html中的<form>表单&#xff0c;设置method属性定义发送表单数据的方式是get还是post。 如使用get方式&#xff0c;则提交的数据会在url中显示&#xff1b;如使用post方式&#xff0c;提交…

Android:展锐T760平台camera PDAF调试

一、平台PDAF流程 目前展锐平台主要支持Shield PD Sensor、Dual PD Sensor 1、Shield PD Sensor Type1相位差和信心度结果直接从Sensor输出,不经过平台算法库。 Type2Sensor端抽取PD信息, 放在一块buffer输出, PDAF算法库算出相位差和信心度。 Type3Sensor端直接输出将带有…

css中样式前加 css样式前面加个圆点

创建CSS样式,样式名称的前面需要加什么 1、我们只知道符号代表的意思是at&#xff0c;其翻译是 在... 例如media就是 在媒介上。没人规定本身具有什么意义&#xff0c;或者说就算规定了我们也改变不了&#xff0c;只需要知道其规定属性的用法即可。 2、px;}然后根据你自己索要…

Scala-异常

1.空指针异常 NullPointerException 2.索引越界异常 IndexOutOfBoundsException 3.算术运算异常 ArithmeticException try{ 可能发生异常的代码 }catch { 发生异常之后的处理逻辑 case e:异常类型1 > 处理逻辑1 case e:异常类型2 > 处理逻辑2 …… }final…

iOS 环境搭建教程

本文档将详细介绍如何在 macOS 上搭建 iOS 开发环境&#xff0c;以便进行 React Native 开发。&#xff08;为了保证环境一致 全部在网络通畅的情况下运行&#xff09; 1. 安装 Homebrew Homebrew 是 macOS 的包管理工具&#xff0c;我们将通过它来安装开发所需的工具。 安装…

【HTML】根据不同域名设置不同的网站图标(替换 link 中 href 地址)

文章目录 代码实现 <!DOCTYPE html> <html><head><meta charset"utf-8" /><meta http-equiv"x-ua-compatible" content"ieedge,chrome1" /><meta name"viewport" content"widthdevice-width&q…

Linux 操作系统中的管道与共享内存

目录 一、匿名管道 &#xff08;一&#xff09;基本概念 &#xff08;二&#xff09;关键现象 &#xff08;三&#xff09;管道特性 二、命名管道 &#xff08;一&#xff09;基本概念 &#xff08;二&#xff09;关键特性 三、共享内存 &#xff08;一&#xff09;基…

Glide 加载图片并应用滤镜效果

https://chatgpt.com/share/675a5bf6-7cd8-8003-98e7-d86146e47e95 常用滤镜类型 颜色调整滤镜 灰度 (Grayscale): 将图片转换为黑白。 反色 (Invert): 将图片的颜色反转。 棕褐色 (Sepia): 应用棕褐色滤镜&#xff0c;营造复古效果。 色调 (Hue): 调整图片的主色调。 饱和度…

Python 参数配置使用 XML 文件的教程 || Python打包 || 模型部署

当配置项存储在外部文件&#xff08;如 XML、JSON&#xff09;时&#xff0c;修改配置无需重新编译和发布代码。通过更新 XML 文件即可调整参数&#xff0c;无需更改源代码&#xff0c;从而提升开发效率和代码可维护性。 1. 为什么选择 XML 配置文件 XML 配置文件具有多种优点…

Java从入门到工作2 - IDEA

2.1、项目启动 从git获取到项目代码后&#xff0c;用idea打开。 安装依赖完成Marven/JDK等配置检查数据库配置启动相关服务 安装依赖 如果个别依赖从私服下载不了&#xff0c;可以去maven官网下载补充。 如果run时提示程序包xx不存在&#xff0c;在项目目录右键Marven->Re…

Android显示系统(13)- 向SurfaceFlinger提交Buffer

Android显示系统&#xff08;01&#xff09;- 架构分析 Android显示系统&#xff08;02&#xff09;- OpenGL ES - 概述 Android显示系统&#xff08;03&#xff09;- OpenGL ES - GLSurfaceView的使用 Android显示系统&#xff08;04&#xff09;- OpenGL ES - Shader绘制三角…

【kubernetes】资源管理方式

目录 1. 说明2. 命令式对象管理3. 命令式对象配置4. 声明式对象配置5. 三种方式的对比 1. 说明 1.在Kubernetes&#xff08;k8s&#xff09;中&#xff0c;资源管理是一个核心功能&#xff0c;它允许用户通过操作资源来管理Kubernetes集群。2.Kubernetes将所有的内容都抽象为资…