当前位置: 首页 > news >正文

Linux-磁盘优化的几个思路

优化前先看看性能指标

I/O 基准测试

fio(Flexible I/O Tester)正是最常用的文件系统和磁盘 I/O 性能基准测试工具。这类工具非常用,了解即可

应用程序优化

在这里插入图片描述

应用程序处于整个 I/O 栈的最上端,它可以通过系统调用,来调整 I/O 模式(如顺序还是随机、同步还是异步)。

可以有这么几种方式来优化应用程序的 I/O 性能

  • 用追加写代替随机写,减少寻址开销,加快 I/O 写的速度。
  • 借助缓存 I/O ,充分利用系统缓存,降低实际 I/O 的次数
  • 可以在应用程序内部构建自己的缓存,或者用 Redis 这类外部缓存系统。
  • 在需要频繁读写同一块磁盘空间时,可以用 mmap 代替 read/write,减少内存的拷贝次数。
  • 在需要同步写的场景中,尽量将写请求合并,而不是让每个请求都同步写入磁盘,即可以用 fsync() 取代 O_SYNC。
  • 在多个应用程序共享相同磁盘时,为了保证 I/O 不被某个应用完全占用,推荐你使用 cgroups 的 I/O 子系统,来限制进程 / 进程组的 IOPS 以及吞吐量。
  • 在使用 CFQ 调度器时,可以用 ionice 来调整进程的 I/O 调度优先级,特别是提高核心应用的 I/O 优先级。

文件系统优化

这块个人来说可优化选项不多,主要是通过参数进行调整,如索引节点缓存、目录项缓存回收倾向、脏页刷新频率等

磁盘优化

  • SSD 替代 HDD
  • 使用 RAID ,多块磁盘组合成一个逻辑磁盘,构成冗余独立磁盘阵列。这样做既可以提高数据的可靠性,又可以提升数据的访问性能
  • 磁盘隔离,比如,我们可以为日志、数据库等 I/O 压力比较重的应用,配置单独的磁盘。
  • 在顺序读比较多的场景中,我们可以增大磁盘的预读数据
http://www.lryc.cn/news/456308.html

相关文章:

  • 【第三版 系统集成项目管理工程师】第15章 组织保障
  • 从编程视角看生命、爱、自由、生活的排列顺序
  • Lumerical——属性编辑窗口的详解
  • 08实战篇:972应用题(2024)思路解析
  • 解决应用程序启动失败问题:由于找不到d3dx9_43.dll文件,如何快速有效地恢复和修复缺失的DLL组件
  • Ubuntu——双系统Ubuntu22.04系统安装和基础配置
  • stm32定时器中断和外部中断
  • LeetCode 每日一题 2024/9/30-2024/10/6
  • Redis篇(最佳实践)(持续更新迭代)
  • 详细介绍pandas 在python中的用法
  • 八字命理测算系统开发-源码搭建
  • Python批量读取mat文件
  • UE4 材质学习笔记05(凹凸偏移和视差映射/纹理压缩设置)
  • 基于贝叶斯决策的 CAD 程序设计方案
  • 算法: 二分查找题目练习
  • Qt开发技巧(十三)QList插入操作,扩展类型的使用,关于QSS的坑,Qt的延时方法,Qt编译的三种版本,环境搭建多练练,指向Qt源码的报错
  • docker快速上手
  • JAVA学习-练习试用Java实现“反转链表 II”
  • 15分钟学 Python 第35天 :Python 爬虫入门(一)
  • 【Qt】Qt学习笔记(一):Qt界面初识
  • Unity3D游戏的内存控制详解
  • 《数据结构》--栈【概念应用、图文并茂】
  • 国外电商系统开发-运维系统文件下载
  • 【CSS in Depth 2 精译_045】7.1 CSS 响应式设计中的移动端优先设计原则(上)
  • 在线教育新篇章:SpringBoot系统开发策略
  • cmdsh
  • 一键生成PPT的AI工具-Kimi!
  • java.lang.NoClassDefFoundError: kotlin/Result解决方案
  • LSTM的变体
  • LeetCode讲解篇之852. 山脉数组的峰顶索引