用户发送请求后服务端i/o工作过程
华子目录
- 服务端`i/o`介绍
- `磁盘i/o`
- `机械磁盘`的`寻道时间`、`旋转延迟`和`数据传输时间`
- 常见的机械磁盘平均`寻道时间值`
- 常见磁盘的平均`延迟时间`
- 每秒最大`IOPS`的`计算方法`
- `网络i/o`
- `网络I/O`处理过程
- `磁盘和网络i/o`
- `一次完整的请求在内部的执行过程`
服务端i/o
介绍
i/o
在计算机
中指Input/Output
,IOPS
(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是做不到的,只能内核可以
),如果
说这个app
是nginx
,请求是index.html
。nginx
就会构建报文
,告诉内核
,它要取index.html文件
。内核读取完所有数据之后
(需要消耗cpu
),返回给nginx
,nginx
开始构建相应报文
,将相应报文
返回给内核中
的socket
,socket
在返回给用户
相关文章:
用户发送请求后服务端i/o工作过程
华子目录 服务端i/o介绍磁盘i/o机械磁盘的寻道时间、旋转延迟和数据传输时间常见的机械磁盘平均寻道时间值常见磁盘的平均延迟时间每秒最大IOPS的计算方法 网络i/o网络I/O处理过程磁盘和网络i/o 一次完整的请求在内部的执行过程 服务端i/o介绍 i/o在计算机中指Input/Output&am…...
功能篇:springboot实现防盗链功能
防盗链(Hotlink Protection)是一种防止其他网站直接链接到你网站的资源(如图片、视频等),从而节省带宽和保护内容的有效手段。在Spring Boot应用程序中实现防盗链功能,可以通过多种方式来达成,例…...
MySQL迁移SQLite
将 MySQL 的表结构和数据迁移到 SQLite,可以通过以下步骤实现。这个过程主要包括导出 MySQL 数据库到 SQL 文件,然后将其导入到 SQLite 数据库中。 步骤 1: 导出 MySQL 数据库 首先,需要将 MySQL 数据库导出为一个 SQL 文件。可以使用 mysq…...
嵌入式面试知识点总结 -- 面试篇
1、请你做个简单的自我介绍 把所有工作内容,分类整理出和岗位匹配的能力关键字,然后围绕关键字展开讲。每段经历要用数据来支撑。 例如: 面试官你好,我叫XXX,毕业于XXX,很荣幸参加此次面试。 围绕面试岗位…...
华为OD机试真题---观看文艺汇演问题
华为OD机试中的“观看文艺汇演问题”是一道考察算法与数据结构能力的题目。以下是对该题目的详细解析: 一、题目描述 为了庆祝某个重要节日(如中国共产党成立100周年),某公园将举行多场文艺表演。很多演出都是同时进行的&#x…...
类OCSP靶场-Kioptrix系列-Kioptrix Level 2
一、前情提要 二、实战打靶 1. 信息收集 1.1. 主机发现 1.2. 端口扫描 1.3.目录遍历 2.漏洞发现 2.1. 登录框测试 2.2. 发现命令执行 2.3 构造命令执行利用payload 3.提权 3.1. 搜索提权exp 3.2. 查看exp信息 3.3. Privilege Escalation的exp利用 exp_9542 一、前…...
openlane
openlane数据集,lane3d_1000里训练集157807张图片,测试集39981张图,md太多了...
修改vscode设置的原理
转载请标明出处:小帆的帆的专栏 修改vscode设置 首先需要理解的是,vscode的系统设置和插件设置都是通过settings.json文件管理的。 vscode中有三个Settings,三个Settings分别对应三个settings.json文件 Default Settings:默认…...
解决docker环境下aspose-words转换word成pdf后乱码问题
描述 环境:docker 部署工具:Jenkins 需求:本地上传的word文档需要转换成pdf 问题:转换之后的pdf文档出现小框框(乱码) 转换成PDF的操作 pom: <dependency><groupId>org.apach…...
2024年12月16日Github流行趋势
项目名称:PDFMathTranslate 项目维护者:Byaidu reycn hellofinch Wybxc YadominJinta项目介绍:基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/Docker。项目star数…...
ElasticSearch 常见故障解析与修复秘籍
文章目录 一、ElasticSearch启动服务提示无法使用root用户二、ElasticSearch启动提示进程可拥有的虚拟内存少三、ElasticSearch提示用户拥有的可创建文件描述符太少四、ElasticSearch集群yellow状态分析五、ElasticSearch节点磁盘使用率过高,read_only状态问题解决六…...
用 Python Turtle 绘制经典汤姆猫:重温卡通角色的经典魅力
用 Python Turtle 绘制经典汤姆猫:重温卡通角色的经典魅力 🐸 前言 🐸🐞往期绘画>>点击进所有绘画🐞🐋 效果图 🐋🐉 代码 🐉 🐸 前言 🐸 汤…...
数据结构Day4: 链表函数封装 ; 思维导图
目录 作业:实现链表剩下的操作: 任意位置删除 按位置修改 按值查找返回地址 反转 销毁 运行结果 思维导图 作业:实现链表剩下的操作: 1>任意位置删除 2>按位置修改 3>按值查找返回地址 4>反转 5>销毁 任意…...
用 Python Turtle 绘制一只可爱的小狗:用代码捕捉狗狗的萌态
用 Python Turtle 绘制一只可爱的小狗:用代码捕捉狗狗的萌态 🐸 前言 🐸🐞往期绘画>>点击进所有绘画🐞🐋 效果图 🐋🐉 代码 🐉 🐸 前言 🐸 …...
人工智能浪潮来袭:2024年技术革命与产业变革深度解析@附64页PDF文件下载
随着2024年的到来,人工智能(AI)技术正以前所未有的速度、广度和深度改变着我们的生产和生活方式。在这篇深度解析中,我们将带您一探AI技术的最新发展、产业应用的现状以及未来的安全治理趋势。 技术革命:AI技术的新范…...
python 下载 b站视频 和音频
video_bvid: import os import requests import json import re from bs4 import BeautifulSoup import subprocess # from detail_video import video_bvid# video_bvid 是一个从外部得到的单个视频ID video_bvid BV1cx421Q7veclass BilibiliVideoAudio:def __in…...
【蓝桥杯选拔赛真题93】Scratch青蛙过河 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析
目录 Scratch青蛙过河 一、题目要求 编程实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 1、思路分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 5、python资料 Scr…...
flink sink kafka的事务提交现象猜想
现象 查看flink源码时 sink kafka有事务提交机制,查看源码发现是使用两阶段提交策略,而事务提交是checkpoint完成后才执行,那么如果checkpoint设置间隔时间比较长时,事务未提交之前,后端应该消费不到数据,…...
Oracle 临时表空间管理与最佳实践
Oracle 临时表空间管理与最佳实践 内容摘要 本文深入探讨了Oracle数据库中临时表空间的管理和最佳实践。主要内容包括: 临时表空间的概述及其在Oracle 19c多租户架构中的特点临时表空间组的优势及其创建方法非临时表空间组的临时表空间日常维护操作命令临时表空间…...
Java转C之继承和多态
在C/C中,继承和多态是面向对象编程(OOP)的两个重要特性。以下将详细讲解C/C中如何实现继承与多态,同时结合Java的对比,帮助理解两者的异同。 继承的实现 C/C中的继承 继承允许一个类(派生类/子类…...
【密码学】ZUC祖冲之算法
一、ZUC算法简介 ZUC算法(祖冲之算法)是中国自主研发的一种流密码算法,2011年被3GPP批准成为4G国际标准,主要用于无线通信的加密和完整性保护。ZUC算法在逻辑上采用三层结构设计,包括线性反馈移位寄存器(L…...
MacOS系统 快速安装appium 步骤详解
在macOS系统上,你可以通过使用nvm(Node Version Manager)来管理Node.js的版本,并基于nvm安装的Node.js环境来快捷地安装Appium。以下是具体步骤: 一、安装nvm 下载nvm 访问nvm的GitHub仓库(nvm GitHub&…...
SEGGER | 基于STM32F405 + Keil - RTT组件07 - J-Scope数据可视化,RTT方式 + DWT定时器时间戳
导言 在上一章节SEGGER | 基于STM32F405 Keil - RTT组件06 - J-Scope数据可视化,使用RTT方式的第4.3章节提到,如果消息包不包含时间戳的话,那么J-Scope的横坐标的单位时间默认是100us,说白了时间戳是假的。会导致如下问题&#x…...
机器学习支持向量机(SVM)算法
一、引言 在当今数据驱动的时代,机器学习算法在各个领域发挥着至关重要的作用。支持向量机(Support Vector Machine,SVM)作为一种强大的监督学习算法,以其在分类和回归任务中的卓越性能而备受瞩目。SVM 具有良好的泛化…...
浏览器端的 js 包括哪几个部分
一、核心语言部分 1. 变量与数据类型 变量用于存储数据,在 JavaScript 中有多种数据类型,如基本数据类型(字符串、数字、布尔值、undefined、null)和引用数据类型(对象、数组、函数)。 let name "…...
【含开题报告+文档+PPT+源码】基于SpringBoot的开放实验管理平台设计与实现
开题报告 设计开放实验管理平台的目的在于促进科学研究与教学的融合。传统实验室常常局限于特定地点和时间,而开放平台可以为学生、教师和研究人员提供一个便捷的交流与共享环境。通过在线平台,他们可以分享实验资源、交流经验,从而促进科学…...
国内可以访问的github地址
国内的IP直接访问github.com官网一般会出现无法访问或者卡顿问题,可以尝试访问下面的国内的代理网站: GitHub Build and ship software on a single, collaborative platform GitHub...
Spring 框架事务管理深度剖析
1.Spring框架的事务管理有哪些优点 pring框架的事务管理具有以下优点: 声明式事务管理:Spring支持声明式事务管理,这使得开发者可以通过配置而不是编程方式来定义事务边界。这种方式简化了事务管理代码,并且可以减少出错的机会。…...
6.1 初探MapReduce
MapReduce是一种分布式计算框架,用于处理大规模数据集。其核心思想是“分而治之”,通过Map阶段将任务分解为多个简单任务并行处理,然后在Reduce阶段汇总结果。MapReduce编程模型包括Map和Reduce两个阶段,数据来源和结果存储通常在…...
SpringBoot - 动态端口切换黑魔法
文章目录 关键技术点核心原理Code 关键技术点 利用 Spring Boot 内嵌 Servlet 容器 和 动态端口切换 的方式实现平滑更新的方案,关键技术点如下: Servlet 容器重新绑定端口:Spring Boot 使用 ServletWebServerFactory 动态设置新端口。零停…...
【Excel】单元格分列
目录 分列(新手友好) 1. 选中需要分列的单元格后,选择 【数据】选项卡下的【分列】功能。 2. 按照分列向导提示选择适合的分列方式。 3. 分好就是这个样子 智能分列(进阶) 高级分列 Tips: 新手推荐基…...
Scratch教学作品 | 3D圆柱体俄罗斯方块——旋转视角的全新挑战! ✨
今天为大家推荐一款创意十足的Scratch益智游戏——《3D圆柱体俄罗斯方块》!由Ceratophrys制作,这款作品将经典俄罗斯方块与立体圆柱舞台相结合,为玩家带来了前所未有的空间挑战与乐趣。更棒的是,这款游戏的源码可以在小虎鲸Scratc…...
智慧商城:登录页静态布局,axios请求数据切换图形验证
登录页静态布局 在src目录下新建 styles,主要用于 存放公共样式。在该文件夹下新建common.less文件,并将其在main.js中引入 将图片拷贝到src文件夹下的 assets文件夹下 完成静态布局 点击左箭头能返回到首页 所有组件头部返回左箭头颜色都是一样的&#…...
HTML知识点详解教程
文章目录 HTML知识点详解教程1. HTML基本语法2. HTML标签详解2.1 分区标签 <div>2.2 标题标签 <h1> ~ <h6>2.3 段落标签 <p>2.4 图片标签 <img>2.5 列表标签 <ul> 和 <ol>无序列表 <ul>有序列表 <ol> 2.6 超链接标签 &l…...
知识分享第二十八天-数学篇一
组合.二项式定理.常见导数 组合 让我们通过一个具体的例子来理解组合(Combinations)的概念 假设你有一个装有5个不同颜色球的袋子:红、蓝、绿、黄和紫。你想从中随机抽取3个球, 不考虑顺序,那么你可以有多少种不同的…...
搭建Tomcat(四)---Servlet容器
目录 引入 Servlet容器 一、优化MyTomcat ①先将MyTomcat的main函数搬过来: ②将getClass()函数搬过来 ③创建容器 ④连接ServletConfigMapping和MyTomcat 连接: ⑤完整的ServletConfigMapping和MyTomcat方法: a.ServletConfigMappin…...
P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题
题目描述 输入两个正整数 𝑥0,𝑦0,求出满足下列条件的 𝑃,𝑄 的个数: 𝑃,𝑄是正整数。 要求 𝑃,𝑄 以 𝑥0为最大公约数,以 …...
【泛微系统】自定义报表查看权限
自定义报表查询权限 前言:流程自定义报表,可查看每个报表都有哪些人有权限 --SQLserver写法 select a.id,a.workflowname,自定义报表权限 type,b.reportname,c.typename...
NPM国内镜像源多选择与镜像快速切换工具(nrm)介绍
多镜像源选择 淘宝镜像(推荐) 镜像地址:https://registry.npmmirror.com 特性:官方推荐,镜像更新速度快,稳定性高。 使用方式: npm config set registry https://registry.npmmirror.com恢复…...
详解负载均衡
什么是负载均衡? 想象一下,你有一家餐厅,当有很多客人同时到来时,如果只有一名服务员接待,可能会导致服务变慢。为了解决这个问题,你可以增加更多的服务员来分担工作,这样每位服务员就可以更快…...
AngularJS 与 SQL 的集成应用
AngularJS 与 SQL 的集成应用 引言 在当今的Web开发领域,AngularJS 和 SQL 是两种非常重要的技术。AngularJS,作为一个强大的前端框架,能够帮助开发者构建复杂且高性能的客户端应用。而SQL(Structured Query Language),作为一种广泛使用的数据库查询语言,是管理关系型…...
ANOMALY BERT 解读
出处: ICLR workshop 2023 代码:Jhryu30/AnomalyBERT 可视化效果: 一 提出动机 动机:无监督 TSAD 领域内,“训练集” 也缺失:真值标签(GT);换句话说,一个…...
51c视觉~YOLO~合集6~
我自己的原文哦~ https://blog.51cto.com/whaosoft/12830685 一、其他yolo 1.1 Spiking-YOLO 使用常规深度神经网络到脉冲神经网络转换方法应用于脉冲神经网络域时,性能下降的很多,深入分析后提出了可能的解释:一是来自逐层归一化的效率…...
软考高级架构 —— 10.6 大型网站系统架构演化实例 + 软件架构维护
10.6 大型网站系统架构演化实例 大型网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据,主要解决这类问题。 1. 单体架构 特点: 所有资源(应用程序、数据库、文件)集中在一台服务器上。适用场景: 小型网站&am…...
两数之和(Hash表)
优质博文:IT-BLOG-CN 一、题目 给定一个整数数组nums和一个整数目标值target,请你在该数组中找出"和"为目标值target的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元…...
【问题定位记录】哪些情况可能造成403
起因 403是我们平时在http请求中常见的一种错误码,如果有一天别人问你什么情况下可能造成403,我想大家都能想到的一种就是权限问题,比如鉴权失败会造成403。 但实际上不止这一种原因可能造成403,还有一种可能的原因今天就被我遇…...
SmartX分享:SMTX ZBS的纠删码EC与多副本介绍、对比与其他概念(分布式存储)
目录 背景多副本EC相关概念限制工作方式写入读取编辑故障移除硬盘、节点 EC存储配置EC推荐节点数EC的容错能力EC的数据块数k与m的互相限制 EC和多副本的对比其他涉及到全新存储分层的概念可以参考的原文链接: 背景 近期,SmartX的SMTX ZBS 分布式存储 推…...
C++并发与多线程(创建多个线程)
创建和等待多个线程 基础示例 // ConsoleApplication10.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //#include <iostream> #include <vector> #include <map> #include <string> #include <thread> #include <…...
【开发日志】ASP.NET Core Minimal APIs开发日志
后端 实现登录注册 注册API 在数据库中存储/注册账户密码 登录API 检测接收来的账户密码,如果正确,则生成JWT Token返回给客户端 未配置密钥 报错信息,这是我在提交注册请求时,后端报的错,看起来是在生成JWT Token时出现了…...
5G学习笔记之Non-Public Network R18
只是协议的搬运工 目录 0. NPN其它笔记 1. 概述 2. R18增强 2.1 等效SNPN间的移动性管理 2.2 non-3GPP接入SNPN 2.3 Localized Service 2.4 Charging 2.5 Management 0. NPN其它笔记 1. SNPN系列ID和广播消息 1. 概述 NPN,Non-Public Network, 非公共网络…...