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

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.kler.cn/news/339405.html

相关文章:

  • OJ在线评测系统 微服务 用分布式消息队列 RabbitMQ 解耦判题服务和题目服务 手搓交换机和队列 实现项目异步化
  • 【动态规划-最长公共子序列(LCS)】【hard】力扣1092. 最短公共超序列
  • 独家揭秘!成为CSDN人工智能优质创作者:我的故事和心得
  • Redis-消息队列
  • JavaScript 变量的简单学习
  • 贪心算法c++
  • docker compose入门3—docker compose yaml字段详解
  • Polars:从 Apache Spark 过渡指南
  • 探索杨辉三角形的奥秘:C#实现
  • Python | Leetcode Python题解之第464题我能赢吗
  • 【什么是回调机制?一篇文章掌握回调机制及思想】
  • 在虚拟机里试用了几个linux操作系统
  • 网络编程(14)——基于单例模板实现的逻辑层
  • 收银台实现iframe跨页面调用函数的方法——未来之窗行业应用跨平台架构
  • 《系统架构设计师教程(第2版)》第17章-通信系统架构设计理论与实践-07-通信网络构建案例分析
  • 毕设 深度学习语义分割实现弹幕防遮(源码分享)
  • 容器管理工具Docker
  • List子接口
  • C语言 | 第十一章 | static 日期函数 数学函数
  • 活动邀请 | SonarQube×创实信息即将亮相2024 GOPS全球运维大会-上海站,分享代码质量与安全提升策略