为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:麒麟V10,ARM版本
【CPU】:kunpeng-920
【问题描述】*:全固态硬盘物理机,磁盘调度模式,选择NOOP还是Deadline,操作系统具体版本是Kylin-Server-10-SP1-Release-Build20-20210518-arm64,在哪里更改调度模式?
像这样配置用不着管多少个磁盘,自动匹配设置,非常人性化。
vi /etc/udev/rules.d/99-dm-ioscheduler.rules
ACTION=="add|change", KERNEL=="[sv]d[a-z]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="none"
ACTION=="add|change", KERNEL=="[sv]d[a-z]*", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="mq-deadline"
# 重载规则生效
udevadm control --reload-rules
调度算法介绍
每当进程需要进行磁盘 I/O 操作时,它就向操作系统发出一个系统调用。如果所需的磁盘驱动器和控制器空闲,则立即处理请求。如果磁盘驱动器或控制器忙,则任何新的服务请求都会添加磁盘驱动器的待处理请求队列。对于具有多个进程的一个多道程序系统,磁盘队列可能有多个待处理的请求。因此操作系统如何选择待处理请求的服务便是磁盘调度算法。
CFQ (完全公平排队 I/O 调度程序)
CFQ 全称 Completely Fair Scheduler ,中文名称完全公平调度器,CFQ 是内核默认选择的 I/O 调度器。它将由进程提交的同步请求放到多个进程队列中,然后为每个队列分配时间片以访问磁盘。CFQ 对于很多 IO 压力较大的场景并不是很适应,尤其是 IO 压力集中在某些进程上的场景。因为这种场景需要更多的满足某个或者某几个进程的 IO 响应速度,而不是让所有的进程公平的使用 IO,比如数据库应用。
NOOP (电梯式调度程序)
NOOP 全称 No Operation,中文名称电梯式调度器,该算法实现了最简单的 FIFO 队列,所有 I/O 请求大致按照先来后到的顺序进行操作。NOOP 实现了一个简单的先入先出(FIFO)队列,它像电梯的工作方式一样对 I/O 请求进行组织。它是基于先入先出(FIFO)队列概念的 Linux 内核里最简单的 I/O 调度器。此调度程序最适合于固态硬盘。NOOP 倾向饿死读而利于写,因为写请求比读请求更容易,写请求通过文件系统 cache,不需要等一次写完成,就可以开始下一次写操作,写请求通过合并,堆积到 I/O 队列中。读请求需要等到它前面所有的读操作完成,才能进行下一次读操作,在读操作之间有几毫秒时间,而写请求在这之间就到来,饿死了后面的读请求。对于数据库应用磁盘 IO 读写都高频的进程而言 NOOP 也是不适合的。
Deadline (截止时间调度程序)
deadline 实现了四个队列,其中两个分别处理正常 read 和 write,另外两个处理超时 read 和 write 的队列,按请求创建时间排序,如果有超时的请求出现,就放进这两个队列,调度算法保证超时(达到最终期限时间)的队列中的请求会优先被处理,防止请求被饿死。Deadline 确保了在一个截止时间内服务请求,这个截止时间是可调整的,而默认读期限短于写期限,这样就防止了写操作因为不能被读取而饿死的现象。因此,Deadline 对数据库环境是最好的选择。
AS (预料 I/O 调度程序)
AS (预料 I/O 调度程序)是基于预测的 I/O 算法。顾名思义有 I/O 发生时,如果又有进程请求 I/O 操作,则将产生一个默认的 6 毫秒猜测时间,猜测下一个进程请求 I/O 是要干什么的。这个 I/O 调度器对读操作优化服务时间,在提供一个 I/O 的时候进行短时间等待,使进程能够提交到另外的 I/O。AS 算法从 Linux 2.6.33 版本后被删除了。AS 适合于写入较多的环境,AS 对数据库环境表现很差。
综上:达梦数据库的稳定运行,需要将磁盘的调度算法设置为 deadline,特别是 arm 平台,必须要设置为 deadline。如存储为 nvme 等高性能的设备时,此类设备 IO 调度算法只有 none,则无需设置。
您好:
①、查看磁盘类型
cat /sys/block/vdb/queue/rotational
--返回1为机械,返回0为固态
②、查看磁盘调度算法
cat /sys/block/vdb/queue/scheduler
③、建议磁盘算法
磁盘类型为机械硬盘,调度算法为mq-deadline
磁盘类型为固态,调度算法为none