This post is more than 5 years old
40 Posts
0
5487
Oracle on Linux - what elevator to use?
When running Oracle on Linux, your supported options are Oracle Linux (OL), RedHat Enterprise Linux (RHEL) and SuSE Enterprise Linux (SLES). With RHEL and SuSE, and until Oracle started providing their own "Unbreakable" UEK Kernel, all these distributions used a a default I/O scheduler of CFQ - Completely Fair Queuing. With OL's UEK Kernel, the default I/O scheduler is now deadline.
I've seen a few articles over the years (http://www.redhat.com/magazine/008jun05/features/schedulers/ , http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Oracle_Tuning_Guide/RHELTuningandOptimizationforOracleV11.pdf ) stating the deadline scheduler is better for databases as it attempts to reduce latency of any given single I/O by waiting as long as possible before writing buffers to disk.
To further cloud this issue you have SANs and hypervisors that do their own caching and prioritization of I/O, so maybe the best performance would be gained by changing the scheduler to noop - no operation - which means don't attempt to prioritize I/O or reduce latency.
Does EMC have any specific recommendations regarding I/O schedulers with Oracle Databases connected to (EMC) SANs and does EMC have any specific recommendations regarding I/O schedulers when running virtualized Oracle Database workloads under VMware vSphere and are there perhaps different recommendations when using vSphere with local vs shared storage?
Personally I usually set my Oracle databases running on a SAN and/or under a hypervisor to noop , but I figured I'd ask.
I blogged about this a few months ago ( http://weinshenker.net/blog/2011/04/08/choosing-input-output-scheduler-oracle-linux/ ) and although Kevin Closson commented there, I haven't seen any other authoritative answers.
DarrylBSmith
28 Posts
0
November 10th, 2011 08:00
EMC IT has standardized on Red Hat and is using the default scheduler, CFQ - Completely Fair Queuing. I have personally benchmarked our most mission critical databases, which do a tremendouse amount of IO, in both virtualized and physical environments. I have found that this schedule has provided us with the best performance, as measured by response times per transaction.
Our benchmarks consist of simulated batch processing, taken from our actual production workload, and end-user transactions. The end-user transactions are generated with a tool called load runner and excercise the application with real transactions. We then measure the performance based on response times for those business transactions.
We have tried running with the deadline, NOOP and CFQ schedulers and we have found CFG to outperform the other two in all cases, when measured with user response times.
slucido
109 Posts
1
November 10th, 2011 08:00
This is a subject I really enjoy discussing as processors play a vital role in database and virtualization performance as well as Oracle licensing costs. Late last year I explored the topic "Fastest Linux Boot Time" and found some very interesting discussions / articles. Boot time is becoming much more important as it represents "wait time" which generally speaking means poor performance. How important is boot time? Big companies like Mircosoft are investing in their operating systems to eliminate or reduce the boot time wait. VMware has VAAI for improving VDI boot storms. Still I'm not really tackling your question: Which Linux scheduler is best for Oracle Database workloads? A good question for which there is very little in the way of good use case studies (please correct me if I'm wrong).
An excellent deep technical review of the Linux I/O scheduler in physical and then in the virtual would provide some useful guidelines. Even if the improvement was only 3 to 5% what we must keep in mind that over time this can add up to a nice performance savings with an associated cost of your original time invested. Unfortunately, this performance topic is over shadowed by other perfomance tuning or architecture design considerations that provide more immediate returns on the performance investment. For example, using FAST VP to transparently move database hot blocks to Enterprise Flash Drives (EFD) for improved performance is more impactful.
Still I'm with you in that I would like to see more research into which Linux I/O scheduler as it relates to Oracle. Like most DBAs I'm interested in every avenue available for improving performance.
jweinshe
40 Posts
0
November 10th, 2011 08:00
Maybe I'm misunderstanding what you wrote:
"A good question for which there is very little in the way of good use cases (please correct me if I'm wrong)."
Do you mean very little in the way of good case studies? I can think of many "good use cases" aka, situations where this information could be beneficial.
Oracle has made many performance claims with their UEK kernel (basically it's a RHEL 6 kernel backported to RHEL 5 with things added) and I'm curious how much of their performance improvements come from that change in the elevator.
slucido
109 Posts
0
November 10th, 2011 08:00
Had to race off to a meeting without the opportunity for review. I meant very little in the way of existing Oracle case studies that show through testing which I/O scheduler is best for the database. I agree with you that more information will be beneficial for both physical and virtual implementations. Cheers.
mcontestabile
43 Posts
0
February 24th, 2015 06:00
Hi,
after few years, can you confirm that CFQ is yet the best IO scheduler option for VMAX? And what about VNX?
I read BP also from other storage vendor: they suggest deadline, but with native multipathing. Does also for VMAX/VNX the multipathing affect on option chosen for the IO scheduler?
Regards,
Mario