百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

详解Linux 磁盘I/O优化(oracle RAC)

mhr18 2024-10-05 17:40 24 浏览 0 评论

概述

分享下关于linux磁盘I/0方面的优化,中间插一个rac方面的报错解决。


文件系统优化

** 动态调整请求队列数来提高效率,默认请求队列数为:128, 可配置512 **

[root@bo queue]# cat /sys/block/sda/queue/nr_requests
128

** read_ahead, 通过数据预读并且记载到随机访问内存方式提高磁盘读操作,默认值 128,ceph配置:8192 **

[root@bo queue]# cat /sys/block/sda/queue/read_ahead_kb
128

** 关闭最后一次访问文件(目录)的时间戳 **

例如:

mount -t xfs -o defaults,noatime,nodiratime /dev/sda5 /data

** 大文件,大容量,大量文件数建议使用xfs文件系统 **


调整I/O调度算法

[root@bo queue]# cat /sys/block/sda/queue/scheduler

noop anticipatory deadline [cfq]

centos6.x默认为cfq

调整为deadline

[root@bo queue]# echo deadline > /sys/block/sda/queue/scheduler

[root@bo queue]# cat /sys/block/sda/queue/scheduler

noop anticipatory [deadline] cfq

PS:这里在用redhat6部署rac的时候如果没配置会提示I/0 scheduler的警告,按上面配置就可以解决了。

** I/O调度算法介绍 **

CFQ(完全公平排队I/O调度程序) 默认
 特点:
 CFQ试图均匀地分布对I/O带宽的访问,避免进程被饿死并实现较低的延迟,是deadline和as调度器的折中.
 CFQ赋予I/O请求一个优先级,而I/O优先级请求独立于进程优先级,高优先级的进程的读写不能自动地继承高的I/O优先级.
 工作原理:
 CFQ为每个进程/线程,单独创建一个队列来管理该进程所产生的请求,也就是说每个进程一个队列,各队列之间的调度使用时间片来调度,
 以此来保证每个进程都能被很好的分配到I/O带宽.I/O调度器每次执行一个进程的4次请求.
NOOP(电梯式调度程序)
 特点:
 在Linux2.4或更早的版本的调度程序,那时只有这一种I/O调度算法.
 NOOP实现了一个简单的FIFO队列,它像电梯的工作主法一样对I/O请求进行组织,当有一个新的请求到来时,它将请求合并到最近的请求之后,以此来保证请求同一介质.
 NOOP倾向饿死读而利于写.
 NOOP对于闪存设备,RAM,嵌入式系统是最好的选择.
 电梯算法饿死读请求的解释:
 因为写请求比读请求更容易.
 写请求通过文件系统cache,不需要等一次写完成,就可以开始下一次写操作,写请求通过合并,堆积到I/O队列中.
 读请求需要等到它前面所有的读操作完成,才能进行下一次读操作.在读操作之间有几毫秒时间,而写请求在这之间就到来,饿死了后面的读请求.
Deadline(截止时间调度程序)
 特点:
 通过时间以及硬盘区域进行分类,这个分类和合并要求类似于noop的调度程序.
 Deadline确保了在一个截止时间内服务请求,这个截止时间是可调整的,而默认读期限短于写期限.这样就防止了写操作因为不能被读取而饿死的现象.
 Deadline对数据库环境(ORACLE RAC,MYSQL等)是最好的选择.
AS(预料I/O调度程序)
 特点:
 本质上与Deadline一样,但在最后一次读操作后,要等待6ms,才能继续进行对其它I/O请求进行调度.
 可以从应用程序中预订一个新的读请求,改进读操作的执行,但以一些写操作为代价.
 它会在每个6ms中插入新的I/O操作,而会将一些小写入流合并成一个大写入流,用写入延时换取最大的写入吞吐量.
 AS适合于写入较多的环境,比如文件服务器
 AS对数据库环境表现很差.
 ** I/O调度算法总结 **
 Anticipatory I/O scheduler 适用于大多数环境,但不太合适数据库应用
 Deadline I/O scheduler 通常与Anticipatory相当,但更简洁小巧,更适合于数据库应用, DATA/SAS盘
 CFQ I/O scheduler 为所有进程分配等量的带宽,适合于桌面多任务及多媒体应用,默认IO调度器
 NOOP I/O scheduler 适用于SSD盘,有RAID卡,做了READ的盘

** sysctl.conf针对磁盘优化 **

vm.swappiness = [0 - 10] 默认是60,太高了,如果是缓存服务器建议配置为0


针对固态硬盘优化

1、关闭日志功能

2、fstab里加挂载参数data=writeback

3、启用 TRIM 功能

Linux内核从2.6.33开始提供TRIM支持,所以先运行“uname -a”命令,查看自己的内核版本,如果内核版本低于2.6.33的,请先升级内核。

然后运行“hdparm -I /dev/sda”查看自己的硬盘支不支持TRIM技术,如果支持,你会看到

Data Set Management TRIM supported

如果上面两个条件都满足了,就可以在fstab中添加discard来开启TRIM功能,如:

原始的UUID=2f6be0cf-2f54-4646-b8c6-5fb0aa01ef23 / ext4 defaults,errors=remount-ro 0 1

改后的UUID=2f6be0cf-2f54-4646-b8c6-5fb0aa01ef23 / ext4 discard,defaults,errors=remount-ro 0 1


上面是针对oracle RAC做的一些磁盘IO优化,建议大家在虚拟机先测试一波,后面会分享更多关于devops和DBA方面内容,感兴趣的朋友可以关注下!!

相关推荐

SpringBoot 各种分页查询方式详解(全网最全)

一、分页查询基础概念与原理1.1什么是分页查询分页查询是指将大量数据分割成多个小块(页)进行展示的技术,它是现代Web应用中必不可少的功能。想象一下你去图书馆找书,如果所有书都堆在一张桌子上,你很难...

《战场兄弟》全事件攻略 一般事件合同事件红装及隐藏职业攻略

《战场兄弟》全事件攻略,一般事件合同事件红装及隐藏职业攻略。《战场兄弟》事件奖励,事件条件。《战场兄弟》是OverhypeStudios制作发行的一款由xcom和桌游为灵感来源,以中世纪、低魔奇幻为...

LoadRunner(loadrunner录制不到脚本)

一、核心组件与工作流程LoadRunner性能测试工具-并发测试-正版软件下载-使用教程-价格-官方代理商的架构围绕三大核心组件构建,形成完整测试闭环:VirtualUserGenerator(...

Redis数据类型介绍(redis 数据类型)

介绍Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sortedset:有序集合)。1、字符串类型概述1.1、数据类型Redis支持...

RMAN备份监控及优化总结(rman备份原理)

今天主要介绍一下如何对RMAN备份监控及优化,这里就不讲rman备份的一些原理了,仅供参考。一、监控RMAN备份1、确定备份源与备份设备的最大速度从磁盘读的速度和磁带写的带度、备份的速度不可能超出这两...

备份软件调用rman接口备份报错RMAN-06820 ORA-17629 ORA-17627

一、报错描述:备份归档报错无法连接主库进行归档,监听问题12541RMAN-06820:WARNING:failedtoarchivecurrentlogatprimarydatab...

增量备份修复物理备库gap(增量备份恢复数据库步骤)

适用场景:主备不同步,主库归档日志已删除且无备份.解决方案:主库增量备份修复dg备库中的gap.具体步骤:1、停止同步>alterdatabaserecovermanagedstand...

一分钟看懂,如何白嫖sql工具(白嫖数据库)

如何白嫖sql工具?1分钟看懂。今天分享一个免费的sql工具,毕竟现在比较火的NavicatDbeaverDatagrip都需要付费才能使用完整功能。幸亏今天有了这款SQLynx,它不仅支持国内外...

「开源资讯」数据管理与可视化分析平台,DataGear 1.6.1 发布

前言数据齿轮(DataGear)是一款数据库管理系统,使用Java语言开发,采用浏览器/服务器架构,以数据管理为核心功能,支持多种数据库。它的数据模型并不是原始的数据库表,而是融合了数据库表及表间关系...

您还在手工打造增删改查代码么,该神器带你脱离苦海

作为Java开发程序,日常开发中,都会使用Spring框架,完成日常的功能开发;在相关业务系统中,难免存在各种增删改查的接口需求开发。通常来说,实现增删改查有如下几个方式:纯手工打造,编写各种Cont...

Linux基础知识(linux基础知识点及答案)

系统目录结构/bin:命令和应用程序。/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev:dev是Device(设备)的缩写,该目录...

PL/SQL 杂谈(二)(pl/sql developer使用)

承接(一)部分。我们从结构和功能这两个方面展示PL/SQL的关键要素。可以看看PL/SQL的优雅的代码。写出一个好的代码,就和文科生写出一篇优秀的作文一样,那么赏心悦目。1、与SQL的集成PL/S...

电商ERP系统哪个好用?(电商erp哪个好一点)

电商ERP系统哪个好用?做电商的,谁还没被ERP折腾过?有老板说:“我们早就上了ERP,订单、库存、财务全搞定,系统用得飞起。”也有运营吐槽:“系统是上了,可库存老不准,订单漏单错单天天有,财务对账还...

汽车检测线系统实例,看集中控制与PLC分布控制

PLC可编程控制器,上个世纪70年代初,为取代早期继电器控制线路,开始采取存储指令方式,完成顺序控制而设计的。开始仅有逻辑运算、计时、计数等简单功能。随着微处理的发展,PLC可编程能力日益提高,已经能...

苹果五件套成公司年会奖品主角,几大小技巧教你玩转苹果新品

钱江晚报·小时新闻记者张云山随着春节的临近,各家大公司的年会又将陆续上演。上周,各大游戏公司的年会大奖,苹果五件套又成了标配。在上海的游戏公司中,莉莉丝奖品列表拉得相当长,从特等奖到九等奖还包含了特...

取消回复欢迎 发表评论: