Linux看硬盘同步,从磁盘同步看linux的机制和策略
linux操作系统是典型的机制和策略相分离的系统,机制和策略一直是设计领域一直关注的重要问题,它们的结合程度直接关系到系统的稳定性和可扩展性。今天做了一个linux上膝上电脑的电源管理的脚本,颇有感触,故写此文。
对于膝上电脑,最大的特点就是靠电池供电,而电脑最耗电的就是机械装置,比如磁盘,因此如何使得磁盘效率最高就是操作系统的任务了,磁盘调度算法当然是最 重要的,可是本文不讨论它们。操作系统如果想提供省电模式,可以直接在内核实现一系列的策略,然后用户选择膝上电脑模式或者系统自动监测到电池的时候切换 到相应的磁盘模式,这个实现看似职能,实际上很不好,极大的限制了用户。linux的策略和机制是分离的,因此,体现到这个事情上也是如此。
linux内核有着非常强大的磁盘缓存机制,就是磁盘数据先不往磁盘直接读写而是直接操作缓存,待到一定条件满足的时候才读写磁盘,大致有几个参 数:1.dirty_writeback_cenTIsecs,这个参数表示内核刷新缓存的时间间 隔;2.dirty_expire_cenTIsecs,这个参数表示一个inode在dirty状态停留的最长时间;3.laptop_mode,这个 参数表示是否为膝上电脑模式。系统根据以上参数动态调整磁盘刷新的行为,如果为膝上电脑模式,那么我们需要让磁盘尽量少的走走停停,就是说将脏缓存页面积 累到一定程度,然后一次性写入磁盘而不是像pc机那样小间隔的唤醒pdflush,这样的话可以让磁盘的效率更高,因此我们理所当然的要在 laptop_mode参数为1的时候调整上面提到的另外两个参数,很早以前我想当然的以为内核在监测到laptop_mode为1时会动态调整那两个参 数,可是我没有找到代码,当我知道linux的机制和策略相分离的时候,我才明白,linux内核是不管那种事的,如果管的话,它怎么管,它知道调整到具 体哪个值吗?如果按照所有的可能来个switch-case的话,内核的大小就要增加好几倍了,windows一直都以大而著称,就是因为它的内核实现好 多的策略,而这些策略是可以在用户空间微调的,比如,针对上述问题我可以写一个脚本:
...
if [ ! -w /proc/sys/vm/laptop_mode ]; then
exit 1
fi
case "$1" in
laptop)
echo "1" > /proc/sys/vm/laptop_mode
echo 参数1 > /proc/sys/vm/dirty_writeback_cenTIsecs
echo 参数2 > /proc/sys/vm/dirty_expire_cenTIsecs
echo 参数3 > /proc/sys/vm/dirty_ratio
echo 参数4 > /proc/sys/vm/dirty_background_ratio
...
non-laptop)
echo "0" > /proc/sys/vm/laptop_mode
echo 参数1-1 > /proc/sys/vm/dirty_writeback_centisecs
echo 参数2-2 > /proc/sys/vm/dirty_expire_centisecs
echo 参数3-3 > /proc/sys/vm/dirty_ratio
echo 参数4-4 > /proc/sys/vm/dirty_background_ratio
...
这 里的“参数X”是可以微调的,看到了吧,多么灵活!linux就像一个布满微调按钮的机器,或者是一个按键十分丰富的控制台,初接触的人往往望而生畏,因 为它太复杂了,几乎什么都可以微调,可以做成任何你需要的系统,而不像别的操作系统,比如windows,什么都为你做好,你只要选择就可以了,是的,选 择模式固然很方便,但是却十分不灵活,很多功能你要想实现要费尽周折,这就是为何windows非常大,功能却很有限,linux小,功能却很丰富的原 因。
下载发烧友APP
打造属于您的人脉电子圈
关注电子发烧友微信
有趣有料的资讯及技术干货
关注发烧友课堂
锁定最新课程活动及技术直播
电子发烧友观察
一线报道 · 深度观察 · 最新资讯
收藏
人收藏
分享:
评论
发表
相关推荐
Linux看硬盘同步,从磁盘同步看linux的机制和策略相关推荐
- linux系统下集群共享磁盘sdb分区,Linux下的两种磁盘分区工具的使用
今天我们来说一下如何使用fdisk和parted分区工具来进行硬盘分区,.下面我来说一下在Linux系统中这两种硬盘分区工具的使用方法: ----------fdisk分区工具---------- 在 ...
- linux查看硬盘smart_Linux检测磁盘坏道工具用什么命令
请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. badblock命令简介 badblock命令用于查找磁盘中 ...
- 深度linux 挂载硬盘,Deepin 深度磁盘挂载
Deepin 磁盘挂载 看到我的终端式英文不用惊奇,我也不知道怎么会这样,但是这也不影响我们要做的事情. 1. 查看当前磁盘情况 使用 df -h 查看磁盘情况 Filesystem Size Use ...
- linux系统硬盘数据恢复软件下载,R-Linux|R-Linux(linux数据恢复软件)下载 v5.1中文免费版 - 121下载站...
R-Linux是一款界面简洁实用的linux分区数据恢复工具,这款工具需要运行于windows平台,然后选择linux的相关分区就可以扫描恢复了,支持Ext2.Ext3.Ext4 FS文等文件系统,可 ...
- linux中如何新建一个磁盘,如何在Linux操作系统中新建磁盘分区
判断虚拟机初始化磁盘的容量大小. 小于2TB时请执行步骤 2. 大于等于2TB时请执行步骤 21. 登录虚拟机,在操作系统桌面上单击右键,选择"打开终端",进入命令行界面. htt ...
- linux备份磁盘数据,linux下vmstat输出数据分析-linux下dd命令备份磁盘的节点(...-linux watch命令用法简介(图文)_169IT.COM...
Linux下vmstat命令的输出,对应着很多选项,有的朋友不是很明白. 下面为大家作详细的分析,如下: Vmstat procs -----------memory---------- ---swa ...
- linux ghost 硬盘备份系统,使用ghost对linux进行系统备份
准备步骤: 1.下载软件: 软件发布地址: http://sourceforge.net/projects/g4l 软件下载地址: http://jaist.dl.sourceforge.net/so ...
- 机械硬盘大比拼,矿工必看
作 者丨冷波 文章来源丨www.ipfs.cn 原文地址丨http://www.ipfs.cn,IPFS中国社区 · 在企业级存储市场中,结构化数据的存储很快就会是SSD的天下,机械硬盘(HDD)会逐 ...
- ❤Linux文件、目录与磁盘格式总结❤
文章目录 Linux文件.目录与磁盘格式总结 Linux文件权限 chgrp chmod chown 文件种类 Linux文件扩展名 Linux文件与目录管理 常用的目录解释 目录树 绝对路径与相对路 ...
最新文章
- Swift 闭包表达式
- 高级Android开发面试汇总
- 温故之 “快速排序”
- @Autowired所有的东西!
- Go 语言基础(三)——基本数据类型
- 通过python读取ini配置文件
- SAP 下载CSV文件到本机(SAP_CONVERT_TO_TEX_FORMAT)(示例代码) <转载>
- 综述: 通信雷达一体化中的信号处理
- CISCO模拟器综合应用
- 我们盘点了7家财税SaaS平台,深入解读财税SaaS AB面
- 贷款综合管理系统搭建-全流程智能、高效、安全管理解决方案
- 2022年最该收藏的8个数据分析模型
- c语言动态开辟数组(一维与二维)
- 单片机毕业设计 stm32万能红外遥控器
- php if为空那么,PHP中判断数组是否为空的方法
- android应用前端,Android应用开发之浅谈移动前端适配
- 如何让读者看完公众号文章后关注你?做好这几点
- [软件人生]外包兼职与绝路
- 推荐学习方向及就业方向
- python中合法的八进制_Python 八进制
热门文章
- js ---- 对象转JSON,JSON转对象
- vue ---- webpack -插件 html-webpack-plugin
- java集合的存储特征_Java集合常用类特点整理
- 根据线程名获取线程及停止线程
- mysql触发器不能alter
- Mybatis中出现java.sql.SQLException: 无效的列类型: 1111
- Android开发笔记(一百五十九)Android7.0的分屏模式
- Android开发笔记(三十一)SQLite游标及其数据结构
- Android开发笔记(二十二)瀑布流网格WaterfallGridView
- swoole 固定包头格式