用户发送请求后服务端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,一经查实,立即删除!

相关文章

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

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

暂停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端直接输出将带有…

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绘制三角…

【git、gerrit】特性分支合入主分支方法 git rebase 、git cherry-pick、git merge

文章目录 1. 场景描述1.1 分支状态 2. 推荐的操作方式方法 1&#xff1a;git merge&#xff08;保留分支结构&#xff09;方法 2&#xff1a;git rebase&#xff08;线性合并提交历史&#xff09;直接在master分支执行git merge br_feature&#xff0c;再 执行 git pull --reba…

211-基于FMC的1路1.5G ADC 1路 2.5G DAC子卡

一、板卡概述 FMC-1AD-1DA-1SYNC是我司自主研发的一款1路1G AD采集、1路2.5G DA回放的FMC、1路AD同步信号子卡。板卡采用标准FMC子卡架构&#xff0c;可方便地与其他FMC板卡实现高速互联&#xff0c;可广泛用于高频模拟信号采集等领域。 二、功能介绍 2.1 原理框图 2.2 硬件…

实操给自助触摸一体机接入大模型语音交互

本文以CSK6 大模型开发板串口触摸屏为例&#xff0c;实操讲解触摸一体机怎样快速增加大模型语音交互功能&#xff0c;使用户能够通过语音在一体机上查询信息、获取智能回答及实现更多互动功能等。 在本文方案中通过CSK6大模型语音开发板采集用户语音&#xff0c;将语音数据传输…

DocFlow票据AI自动化处理工具:出色的文档解析+抽取能力,提升企业文档数字化管理效能

目录 财务应付 金融信贷业务 近期&#xff0c;DocFlow票据自动化产品正式上线。DocFlow是一款票据AI自动化处理工具&#xff0c;支持不同版式单据智能分类扩展&#xff0c;可选功能插件配置流程&#xff0c;满足多样业务场景。 随着全球化与信息化进程&#xff0c;企业的文件…

英伟达垄断?中国芯片如何破局?

近期&#xff0c;全球AI芯片巨头英伟达被曝遭遇中国反垄断调查&#xff0c;引发行业广泛关注。 【图片来源于网络&#xff0c;侵删】 众所周知&#xff0c;在人工智能的浪潮中&#xff0c;英伟达无疑是全球AI算力市场的领头羊。在芯片领域&#xff0c;尤其是 GPU 市场&#xff…

40 基于单片机的温湿度检测判断系统

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STC89C52单片机&#xff0c;采用dht11温湿度传感器检测温湿度&#xff0c; 通过lcd1602显示屏各个参数&#xff0c;四个按键分别可以增加温湿度的阈值&#xff0c; 如果超过阈值&#xff0c;则…

适用于 Windows 的 Podman

适用于 Windows 的 Podman 虽然“容器是 Linux”&#xff0c;但 Podman 也可以在 Mac 和 Windows 上运行&#xff0c;它提供原生 CLI 并嵌入来宾 Linux 系统来启动您的容器。此 guest 称为 Podman 计算机&#xff0c;并使用命令进行管理。在 Windows 上&#xff0c;每台 Podma…

Linux中 vim 常用命令大全详细讲解

文章目录 前言一、Vim 基本操作 &#x1f579;️1.1 打开或创建1.2 退出编辑1.3 模式切换 二、Vim 光标移动命令 ↕️2.1 基本移动2.2 行内移动2.3. 单词移动2.4. 页面移动2.5. 行跳转 三、Vim 文本编辑命令 &#x1f4cb;3.1 插入和删除3.2 复制、剪切与粘贴3.3 替换与修改 四…

如何借助5G网关实现油罐车安全在线监测

油罐车是常见的特种运输车辆&#xff0c;用以运送各种汽油、柴油、原油等油品&#xff0c;运输危险系数大&#xff0c;而且由于油罐车需要经常行驶在城区道路&#xff0c;为城市各个加油站点、企业工厂运输补充所需油料&#xff0c;因此也是危化品运输车辆的重点监测和管控对象…

联想至像M3070DW打印机连接手机方法

首先&#xff0c;按打印机上的“功能”键&#xff0c;上翻页翻到第4项“网络”按“OK”键进入&#xff1b; 点进去之后&#xff0c;再按下翻页翻到第3项“安装向导”&#xff0c;按“OK”键进入&#xff1b; 然后&#xff0c;选择我们要连接的WiFi并输入WiFi密码&#xff0c; 输…