oraclerac几个节点(linux登录oracle数据库)
00-1010分享linux磁盘I/O的优化,中间插入一个rac错误解析。
00-1010 * *动态调整请求队列的数量以提高效率。请求队列的默认数量是128,可以配置为512 **
[root@bo队列]# 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默认值,noatime,nodiratime /dev/sda5 /data
* *大文件、大容量和大量文件。建议使用xfs文件系统* *
概述
磁盘输入输出调度算法
[root@bo队列]# cat/sys/block/sda/queue/scheduler
noop预期截止日期[cfq]
Centos6.x默认为cfq
调整到截止日期
[root @ bo queue]# echo deadline/sys/block/sda/queue/scheduler
[root@bo队列]# cat/sys/block/sda/queue/scheduler
noop预期[截止日期] cfq
PS:这里,用redhat6部署rac时,如果没有配置会提示I/0调度器的警告,可以通过上面的配置来解决。
I/0计划程序报告了一个错误
想写多少盘就写多少盘。
* *输入/输出调度算法介绍* *
CFQ(完全公平排队输入/输出调度程序)默认值
功能:
CFQ试图平均分配对输入/输出带宽的访问,避免进程饿死,并实现更低的延迟,这是最后期限和作为调度程序之间的妥协。
CFQ给I/O请求一个优先级,而I/O优先级请求独立于进程优先级,因此高优先级进程的读写不能自动继承高I/O优先级。
工作原理:
CFQ为每个进程/线程单独创建一个队列来管理进程生成的请求,也就是说,每个进程都有一个队列,队列之间的调度使用时间片。
这样,每个进程都可以很好地分配到输入/输出带宽。输入输出调度程序一次执行一个进程的四个请求。
电梯调度员
功能:
在Linux2.4或更早版本的调度程序中,只有一种输入/输出调度算法。
NOOP实现了一个简单的FIFO队列,它像电梯的工作方法一样组织I/O请求。当一个新的请求到达时,它会将该请求与最新的请求合并,以确保该请求位于同一介质中。
NOOP倾向于饿死读写。
NOOP是闪存设备、RAM和嵌入式系统的最佳选择。
解释算法饥饿电梯读取请求:
因为写请求比读请求容易。
写请求通过文件系统缓存,下一个写操作可以开始,而无需等待第一个写操作完成。写请求被合并并堆积在输入/输出队列中。
读请求需要等待,直到所有先前的读操作完成,然后才能被下次读取。读操作之间有几毫秒,写请求介于两者之间,使下面的读请求挨饿。
截止日期(截止日期计划程序)
功能:
按时间和硬盘区域分类。这种分类和合并需要一个类似于noop的调度程序。
Deadline确保请求可以在可调整的截止时间内送达,而默认读取周期短于写入周期,从而防止写入操作因无法读取而饿死。
截止日期是数据库环境(ORACLE RAC、MYSQL等)的最佳选择。).
预期输入输出调度程序
功能:
本质上,它与Deadline相同,但是在最后一次读取操作之后,您必须等待6毫秒,然后才能继续计划其他I/O请求。
您可以从应用程序中预订一个新的读取请求来改进读取操作的执行,但代价是一些写入操作。
它将每6毫秒插入一次新的输入/输出操作,并将一些小写流入合并为一个大写流入,并以写延迟换取最大的写吞吐量。
AS适用于写入较多的环境,如文件服务器。
AS在数据库环境中非常差。
* *输入/输出调度算法摘要* *
预期输入/输出调度程序适用于大多数环境,但不适用于数据库应用程序。
截止期I/O调度器通常相当于predictive,但它更紧凑,更适合数据库应用,DATA/SAS磁盘。
CFQ I/O调度器为所有进程分配相等的带宽,适用于桌面多任务和多媒体应用。默认的输入输出调度程序
NOOP I/O调度器适用于SSD磁盘、带RAID卡的磁盘和READ。
** sysctl.conf针对磁盘进行了优化**
Vm.swappiness=[0-10]默认值为60,太高了。如果是缓存服务器,建议设置为0。
文件系统优化
1.关闭日志功能2.装载参数数据=fstab中的写回
3.启用微调功能
从2.6.33开始,Linux内核就提供了TRIM支持,所以首先运行“uname -a”命令来检查你的内核版本。如果内核版本低于2.6.33,请先升级内核。
然后运行“hdparm -I /dev/sda”,看看你的硬盘是否不支持TRIM技术。如果是的话,你会看到
支持数据集管理
如果满足上述两个条件,可以将丢弃添加到fstab中,以打开TRIM功能,例如:
原始uuid=2f 6 be 0 cf-2f 54-4646-b8c 6-5f 0 b 0 aa 01 ef 23/ext 4 default,errors=remount-ro01
修改后的uuid=2f 6 be 0 cf-2f 54-4646-b8c 6-5f 0 b 0 aa 01 ef 23/ext4 discard,默认值,错误=重新装载-ro 0 1
以上是针对oracle RAC的一些磁盘IO优化。建议你先在虚拟机中测试一波,以后会分享更多关于devops和DBA的信息,感兴趣的朋友可以关注一下!