深入学习 Linux 操作系统的存储 IO 堆栈

news2024/11/19 7:23:03

一、Linux 存储堆栈图

当使用 read() 和 write() 系统调用向内核提交读写 I/O 请求操作时需要经历的步骤:

1)首先,请求经过虚拟文件系统,虚拟文件系统提供了统一的文件和文件系统的相关接口,屏蔽了不同文件系统的差异和操作细节;

2)其次,适配当前磁盘分区的文件系统,常见文件系统有 ext2/3/4、FATfs、sysfs、debugfs 等;

3)再次,内核将 I/O 请求交给 I/O 调度层进行排序和合并处理。经过 I/O 调度层加工处理后,将 I/O 请求发送给块设备驱动进行最终的 I/O 操作;

4)最后,通过总线协议对数据进行下盘或者读取操作。

二、系统调用函数与存储介质交换

SQL 查询执行过程:

  • 客户端发送一条查询给服务器

  • 服务器优先检查查询缓存,如果命中了缓存,则立刻返回缓存中的结果,否则进入下一阶段

  • 服务器端进行 SQL 解析、预处理,再由优化器生成对应的执行计划

  • 根据优化器生成的执行计划,再调用存储引擎的 API 来执行查询

  • 最后将结果返回给客户端

三、操作系统关于优化存储堆栈的参数

1) dirty_background_ratio:内存可以填充“脏数据”的百分比

这些“脏数据”后续将写入磁盘,后台进程会清理脏数据。比如现有 32G 内存,那么有 3.2G 的内存可以待着内存中,假设超过 3.2G 就会有后来进程来刷盘;

2) dirty_ratio 是绝对的脏数据限制,内存里的脏数据百分比不能超过这个值

如果脏数据超过这个数量,新的 IO 请求将会被阻挡,直到脏数据被写进磁盘。这是造成 IO 卡顿的重要原因,但也是保证内存中不会存在过量脏数据的保护机制;

3) dirty_expire_centisecs 指定脏数据能存活的时间

默认数值是 30 秒。当后台进程在刷盘时,它会检查是否有数据超时,如果超时就会触发刷盘操作,尽量规避数据在内存中储存过久后的丢失风险。

四、IO 优化在 KaiwuDB 中的应用实践

1) 通过观察 CPU 使用情况并借助火焰图,发现 KaiwuDB 内核程序进程内的性能瓶颈点,包括但不限于:

a. 进程服务压力与后台服务处理能力不匹配;

b. 操作系统参数设置不匹配导致 CPU 占用低;

2) 通过 iostat 和 vmstat 观察磁盘性能工具,发现进程写入速度与后台处理速度、磁盘处理速度不匹配,需要进行参数调优;

3) 借助 KaiwuDB 内部的日志及性能统计工具(Trace 功能模块和监控工具 KAP),发现某些应用及服务的性能瓶颈,调整优化进程程序逻辑。

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

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

相关文章

Applied soft computing期刊投稿流程

爱斯唯尔账户注册问题: 账号所属作者即默认通讯作者 刚开始应该会进入这个页面,这里的用户名和密码一般是导师(通讯作者)的账号密码,可以询问老师,然后点击author login登陆就好。 注册里面强调一点,这里面的Title 一般是职称的意思,如果是学生可以填Mr.或者Mrs. 投…

Python 网络舆情分析系统,舆论可视化界面

1 简介 舆情管理系统,这不仅仅可以帮助当地的管理人员迅速的排查跟本地有关的负面言论,还可以避免网民因为本身意识不到位而评论或发布一些不好的观点的情况,最终的目的就是帮助社会更好的发展。 2 技术栈 说明技术栈备注后台Python前端HT…

多线程:Lamda表达式

Lamda表达式 希腊字母表中第十一个字母,英文名字为lambda避免匿名内部类定义过多其实质是函数类编程的概念new Thread (() -->System.out.println(“多线程的学习…”)).start();为什么要使用Lamda表达式? 1、避免匿名内部类定义过多 2、可以让你的代…

Vue中如何进行移动端适配与响应式布局?

Vue中如何进行移动端适配与响应式布局? 如今,移动端适配与响应式布局已经成为Web开发中不可或缺的一部分。Vue.js作为一款流行的JavaScript框架,也提供了许多有用的工具和技术来实现移动端适配和响应式布局。在这篇文章中,我们将…

阿里云服务器ESSD PL-0云盘与ESSD PL-1云盘区别及选择参考

在我们选购阿里云服务器的时候,通常系统盘与数据盘类型都是ESSD云盘,而云盘的性能又分为PL-0和PL-1,虽然都属于ESSD云盘,但是它们之间的性能是有区别的,收费标准也不一样,本文为大家介绍一下阿里云服务器ES…

26岁,大学肄业,家里蹲5年,这位失业青年的求救,牵动百万网友的心……

近期,知乎上有一个求救贴火了,浏览量一度飙升到480多万,近千名网友在帖子下留言,纷纷表达自己的看法。 帖子是这样的。题主26岁,大学肄业。最长只上过12天的班,每次出门面试找工作就会非常害怕&#xff0c…

win11 idea shift+F6快捷键失效问题

1.结论 win11微软输入发最新版问题,使用以前版本即可 2.排查问题过程 最近一直没用shiftF6,当今天要使用时候,突然发现失效了,开始了以下排查过程 2.1 软件快捷键冲突 刚开始以为和其他软件或diea内部快捷键冲突,做了…

计算机组成原理 | 深入理解ELF格式和静态链接

深入解析C语言代码到机器码的过程 #mermaid-svg-UhCa4aLgwtwtM4hS {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-UhCa4aLgwtwtM4hS .error-icon{fill:#552222;}#mermaid-svg-UhCa4aLgwtwtM4hS .error-text{fill:#5…

whatsapp如何开发国外客户

WhatsApp可以说是目前2023年最火的社交营销方式之一,目前全球活跃人数大概在10亿,每日发送消息超过650亿条,语音和通话的时长超过20亿分钟,全球三分之一的人在用WhatsApp的,所有做外贸,WhatsApp是必不可少的…

ESXi 7.0 U3m Fujitsu (富士通) 定制版 OEM Custom Installer CD

VMware ESXi 7.0 Update 3m - 领先的裸机 Hypervisor (All OEM Customized Installer CDs) ESXi 7.0 U3m Standard (标准版) ESXi 7.0 U3m Dell (戴尔) 定制版 OEM Custom Installer CD ESXi 7.0 U3m HPE (慧与) 定制版 OEM Custom Installer CD ESXi 7.0 U3m Lenovo (联想) 定…

AIGC + RTE,一个实时互动的应用实践

一夜之间,区块链、元宇宙、Web3、VR等风口似乎都消散了,似乎只有 AI 才是C位。声网 RTC 云市场各类插件 AIGC,会迸发出什么样的火花呢? 最近,声网内部组织了一次黑客松,经过激烈的角逐,我们团…

【华为OD机试真题2023B卷 JAVAJS】完全二叉树非叶子部分后序遍历

华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 完全二叉树非叶子部分后序遍历 知识点数组树递归 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 给定一个以顺序储存结构存储整数值的完全二叉树序列(最多1000个整数),请找出此完全二叉树的所有非叶子节点部分,…

成功邀请媒体采访的关键步骤,媒介易助你成为媒体热门

在企业品牌推广和宣传中,与媒体建立合作关系,并邀请媒体进行采访是非常重要的环节。通过媒体的报道和宣传,企业可以扩大品牌的曝光度,提升品牌形象和知名度。然而,成功的媒体邀约并非易事,需要一定的策略和…

启动QT Linux应用程序后黑屏闪烁?

启动QT Linux应用程序后黑屏闪烁? 提问 问 4 年, 3 个月 前 修改于 3 个月前 点击833次 1 我将嵌入式Linux(imx6q)与eglfs一起使用。 帧缓冲在启动Qt应用程序时正在绘制黑屏。 简单的应用程序是黑色的1秒下。重度施用4~5秒。 这仅…

如何关闭A770显卡的灯效

A770的灯效看起来是不错,但对于我这样的实用主义者来说,他没啥用。所以想着怎么样能把他给关了。 查了一下,intel光放给出的办法如下: 如何使用英特尔 RGB 控制器配置英特尔 Arc™ A770 显卡有限版卡上 LED 的外观和行为。 英特…

java读取文件内容

直接上代码,两个类:一个工具类,一个测试类 工具类代码: package org.example.study.util;import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils;import java.io.*; import java.nio.charset.Charset…

FMC子卡设计资料原理图:FMC210-1路1Gsps AD、1路2.5Gsps DA的FMC子卡

FMC210-1路1Gsps AD、1路2.5Gsps DA的FMC子卡 一、板卡概述 FMC-1AD2DA是我司自主研发的一款1路1G AD采集、1路2.5G DA回放的FMC子卡。板卡采用标准FMC子卡架构,可方便的与其他FMC板卡实现高速互联,可广泛用于高频模拟信号采集、雷达系统测试等场…

【ChatGPT-工具篇 2】采用预置命令进行Prompt的输入

采用预置命令向ChatGPT输入命令 案例如下: {"ai_tutor":{"Author":"Andy.L","name":"JavaTutor","version":"1.0","features":{"personalization":{"depth"…

最值得推荐收藏的10个PPT文件误删恢复软件

PowerPoint 是一种非常流行的软件应用程序,专业人士和学生广泛使用它来制作演示文稿。它是 Microsoft Office 套件的一部分,Microsoft Office 套件是一组在世界各地的办公室、家庭和学校中使用的生产力工具。PowerPoint 演示文稿可以包含图像、视频、图表…

【计组理论期末考试模拟题】21级计科专业计算机组成原理

【计组理论期末考试模拟题】21级计科专业计算机组成原理 一、选择题二、多选题三、填空题四、程序填空题五、编程题 一、选择题 2-1 在定点二进制运算器中,减法运算一般通过()来实现。 A.原码运算的二进制减法器 B.补码运算的二进制加法器 C…