iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >linux中如何修改磁盘调度算法
  • 281
分享到

linux中如何修改磁盘调度算法

2023-06-06 01:06:24 281人浏览 薄情痞子
摘要

linux中如何修改磁盘调度算法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。io调度器的总体目标是希望让磁头能够总是往一个方向移动,移动到底了再往反方向走,这恰恰就是现实

linux中如何修改磁盘调度算法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

io调度器的总体目标是希望让磁头能够总是往一个方向移动,移动到底了再往反方向走,这恰恰就是现实生活中的电梯模型,所以IO调度器也被叫做电梯. (elevator)而相应的算法也就被叫做电梯算法.而Linux中IO调度的电梯算法有好几种,一个叫做as(Anticipatory),一个叫做 cfq(Complete Fairness Queueing),一个叫做deadline,还有一个叫做noop(No Operation).具体使用哪种算法我们可以在启动的时候通过内核参数elevator来指定.

一)I/O调度的4种算法
1)CFQ(完全公平排队I/O调度程序)
特点:
在最新的内核版本和发行版中,都选择CFQ做为默认的I/O调度器,对于通用的服务器也是最好的选择.
CFQ试图均匀地分布对I/O带宽的访问,避免进程被饿死并实现较低的延迟,是deadline和as调度器的折中.
CFQ对于多媒体应用(video,audio)和桌面系统是最好的选择.
CFQ赋予I/O请求一个优先级,而I/O优先级请求独立于进程优先级,高优先级的进程的读写不能自动地继承高的I/O优先级.

工作原理:
CFQ为每个进程/线程,单独创建一个队列来管理该进程所产生的请求,也就是说每个进程一个队列,各队列之间的调度使用时间片来调度,
以此来保证每个进程都能被很好的分配到I/O带宽.I/O调度器每次执行一个进程的4次请求.

2)NOOP(电梯式调度程序)
特点:
在Linux2.4或更早的版本的调度程序,那时只有这一种I/O调度算法.
NOOP实现了一个简单的FIFO队列,它像电梯的工作主法一样对I/O请求进行组织,当有一个新的请求到来时,它将请求合并到最近的请求之后,以此来保证请求同一介质.
NOOP倾向饿死读而利于写.
NOOP对于闪存设备,RAM,嵌入式系统是最好的选择.
电梯算法饿死读请求的解释:
因为写请求比读请求更容易.
写请求通过文件系统cache,不需要等一次写完成,就可以开始下一次写操作,写请求通过合并,堆积到I/O队列中.
读请求需要等到它前面所有的读操作完成,才能进行下一次读操作.在读操作之间有几毫秒时间,而写请求在这之间就到来,饿死了后面的读请求.

3)Deadline(截止时间调度程序)
特点:
通过时间以及硬盘区域进行分类,这个分类和合并要求类似于noop的调度程序.
Deadline确保了在一个截止时间内服务请求,这个截止时间是可调整的,而默认读期限短于写期限.这样就防止了写操作因为不能被读取而饿死的现象.
Deadline对数据库环境(oracle RAC,MYSQL等)是最好的选择.

4)AS(预料I/O调度程序)
特点:
本质上与Deadline一样,但在最后一次读操作后,要等待6ms,才能继续进行对其它I/O请求进行调度.
可以从应用程序中预订一个新的读请求,改进读操作的执行,但以一些写操作为代价.
它会在每个6ms中插入新的I/O操作,而会将一些小写入流合并成一个大写入流,用写入延时换取最大的写入吞吐量.
AS适合于写入较多的环境,比如文件服务器
AS对数据库环境表现很差.


查看当前系统支持的IO调度算法
dmesg | grep -i scheduler
[root@localhost ~]# dmesg | grep -i scheduler
io scheduler noop reGIStered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)

查看当前系统的I/O调度方法:
cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]


临地更改I/O调度方法:
例如:想更改到noop电梯调度算法:
echo noop > /sys/block/sda/queue/scheduler


想永久的更改I/O调度方法:
修改内核引导参数,加入elevator=调度程序名
Centos7:
[root@localhost ~]# grubby --update-kernel=ALL --args="elevator=deadline"
[root@localhost ~]# reboot
[root@localhost ~]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq 
CentOS6:
# vim /boot/grub/menu.lst
更改到如下内容: ## 在 rhgb quiet 前添加 elevator=deadline 
kernel /boot/vmlinuz-2。6。32-504.el6 ro root=LABEL=/ elevator=deadline rhgb quiet

重启之后,查看调度方法:
cat /sys/block/sda/queue/scheduler
noop anticipatory [deadline] cfq
已经是deadline了

关于linux中如何修改磁盘调度算法问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网操作系统频道了解更多相关知识。

--结束END--

本文标题: linux中如何修改磁盘调度算法

本文链接: https://www.lsjlt.com/news/245572.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux中如何修改磁盘调度算法
    linux中如何修改磁盘调度算法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。IO调度器的总体目标是希望让磁头能够总是往一个方向移动,移动到底了再往反方向走,这恰恰就是现实...
    99+
    2023-06-06
  • 有哪些磁盘调度算法
    今天就跟大家聊聊有关有哪些磁盘调度算法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。磁盘调度算法有:1、先来先服务算法,根据进程请求访问磁盘的先后顺序进行调度;2、最短寻找时间优先算...
    99+
    2023-06-14
  • 如何修改ASM磁盘冗余度
    小编给大家分享一下如何修改ASM磁盘冗余度,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!翻了一下官方文档:Automatic S...
    99+
    2024-04-02
  • MySQL数据库中怎么调整磁盘IO调度算法
    MySQL数据库中怎么调整磁盘IO调度算法,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 查看当前系统支持的磁盘...
    99+
    2024-04-02
  • win10如何修改磁盘盘符
    这篇文章主要介绍“win10如何修改磁盘盘符”,在日常操作中,相信很多人在win10如何修改磁盘盘符问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”win10如何修改磁盘盘符”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-28
  • Linux中怎么修改磁盘参数
    Linux中怎么修改磁盘参数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  在Linux下面我们都知道可以用相应的档案代表一个装置,比如 /dev/sdb1代...
    99+
    2023-06-13
  • ubuntu如何修改磁盘名称
    ubuntu修改磁盘名称的方法:1、打开ubuntu终端;2、输入“sudo ntfslabel /dev/sda2 newname”或者“sudo e2label /dev/sda2 newname”命令修改磁盘名称即可。具体操作方法如下...
    99+
    2024-04-02
  • win7系统如何修改默认磁盘
    要修改Windows 7系统的默认磁盘,您需要按照以下步骤操作:1. 点击"开始"按钮,然后选择"计算机"。2. 在"计算机"窗口中...
    99+
    2023-08-22
    win7
  • linux中如何给磁盘配额
    这篇文章主要为大家展示了“linux中如何给磁盘配额”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中如何给磁盘配额”这篇文章吧。磁盘配额(quota)比较常用的几个情况是:* 针对WW...
    99+
    2023-06-13
  • Linux系统中如何更改I/O调度器
    本篇文章给大家分享的是有关Linux系统中如何更改I/O调度器,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Linux I/O 调度器是Linux内核中的一个组成部分,是一个以...
    99+
    2023-06-28
  • Linux系统如何更改I/O调度器
    这篇文章的内容主要围绕Linux系统如何更改I/O调度器进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!I/O 调度简介:Linux 的 I/O 调度...
    99+
    2023-06-28
  • linux中如何修改磁盘镜像来创建基于树莓派的家庭实验室
    这篇文章主要为大家展示了“linux中如何修改磁盘镜像来创建基于树莓派的家庭实验室”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中如何修改磁盘镜像来创建基于树莓派的家庭实验室”这篇文章...
    99+
    2023-06-16
  • Windows中如何调节键盘灵敏度
    小编给大家分享一下Windows中如何调节键盘灵敏度,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!按win+r组合快捷键,打开运行窗口,输入“regedit”回车...
    99+
    2023-06-28
  • linux中如何修改hosts
    linux中修改hosts的方法:1、打开linux终端;2、输入“sudo gedit /etc/hosts”命令修改hosts配置文件;3、将网上的公开的解析记录添加到hosts文件中;4、输入“sudo /etc/init.d/net...
    99+
    2024-04-02
  • Linux中如何检测磁盘坏道和坏块
    这篇文章给大家分享的是有关Linux中如何检测磁盘坏道和坏块的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。操作步骤如下:在 Linux 上使用坏块工具检查坏道坏块工具可以让用户扫描设备检查坏道或坏块。设备可以是一...
    99+
    2023-06-27
  • 计算机中磁盘未分配的如何合并
    这篇文章给大家分享的是有关计算机中磁盘未分配的如何合并的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。合并方法:首先选择“我的电脑”,点击鼠标右键,选择“管理”;然后在弹出的窗口中选择“磁盘管理”选项;接着鼠标右键...
    99+
    2023-06-15
  • linux如何估算目录 'dir1' 已经使用的磁盘空间'
    ...
    99+
    2024-04-02
  • linux中如何修改内核
    今天小编给大家分享一下linux中如何修改内核的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。linux修改内核方法:1、利用...
    99+
    2023-06-29
  • 笔记本电脑如何修改组策略隐藏本地磁盘
    这篇文章主要介绍笔记本电脑如何修改组策略隐藏本地磁盘,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!按win+r组合键打开运行窗口,输入“gpedit.msc”。打开本地组策略编辑器,依次展开“用户配置-管理模板-Wi...
    99+
    2023-06-28
  • MySQL中如何修改字段长度
    要修改MySQL中的字段长度,可以使用ALTER TABLE语句结合MODIFY COLUMN关键字来进行修改。以下是一个示例: A...
    99+
    2024-04-09
    MySQL
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作