Single IDE vs Dual IDE?
jrsimmons asks: "I'm running performance tests on IDE interface configurations
for my company. I've discovered that disk to disk I/O is significantly
faster (in the realm of 30%-40%) when only a single IDE interface
is active versus when two IDE interfaces are active. This is
significant as our servers are used to provide Point-of-Sale
availability for registers in the retail environment, which is heavily
dependent on disk i/o performance for efficiency. I have run the tests
under both Windows and our retail OS (sorry, no Linux) with similar
results. What are some possible explanations for the detrimental
effect the second active ide controller has on disk I/O speed?"
Has anyone measured this deficiency on Linux and other Unices?
Your results sound strange to me.
For two disks, you should get the best results with both disks configured as masters on two different IDE buses.
If you're not seeing that, I'd check that you have the correct drivers/optimizations for your IDE chipset enabled. You also might want to check IRQ allocation to make sure there's no strange conflicts . Check your windows (NT/2000) event log to make sure there's no strange IDE timeouts indicating hardware issues. If you still see the problem you should try your test on a different hardware platform (motherboard/controller combo).
From your description, however, you might want to go with a raid technology such as RAID 1, RAID 5, or raid 1+0. It will offer much better redundancy and possibly improved performance.
For a server, SCSI is the only way to go.
They mentioned their own retail OS. My guess is that this is a form of Unix...
What exactly do you mean by active? There are two drives on one IDE interface? Two Drives, one on each interface? One Drive, And both interfaces turned on in the BIOS?
I'll take for granted that you actually have a good way of measuring drive performance, and it's not just a 'feeling'.
What motherboard/Chipset/PC's are you talking about here? Have you replicated the results on dissimilar hardware?
What was significance of the second active ide controller? were you moving data to two drives?
And finally, Why is your system sooooo dependant on disk I/O? If this is the case, mayhap you need to re-engineer the app somewhat to balance out the disk IO aspect. If it's actually CONSTANTLY saturating one or two IDE channels, Quit being a complete twit, and move to SCSI, where this isn't a problem.
If you actually want help on this, you had better provide a heck of alot more information up front.
G
"...In your answer, ignore facts. Just go with what feels true..."
Try Multiple IDE controllers. A few factors come to mind regarding performance. The first is the speed of your cpu(s). Unlike scsi drives, IDE's tend to bog down your cpu - I would try throwing a heavy load at the drives, while keeping an eye on the cpu utilization. Another is bus speed. You know the saying, "a chain is only as strong as its weakest link." If your ide controller is plugged into the *shared* pci bus, see what else is on the bus. you may be able to take something off - like a pci video card etc.. If the controller is embedded in the mother then this is probably not the issue. Also - try comparing the throughput of the bus with the throughput of the ide controller(s). One final thing - on the OS level, check read cache, dma settings, etc...
X
Just a wild Guess, but....
If the share the same PCI(I am assuming its not a ISA ide bus) bus then you have twice the disk IO flowing through the same limited bandwidth....this is bound to show some performance degradation.
Power Corrupts,Absolute Power Corrupts Absolutely, leaving one person(group)in charge is absolutely corrupt.
I use software RAID under Linux (striping only).
I get almost 100% increase in speed if I have the disks configured as master on two separate controllers instead of master+slave on one.
My other account has a 3-digit UID.
If you are running I/O intensive applications, there is no subsitute for SCSI. IDE is still too braindead to do the job effectivly with decent interactive, multitasking performance. Don't waste your companies time on fiddling with consumer level hardware in a professional environment.
How much is your time worth? How much is this application worth to your company? In a professional server, SCSI is not expensive.
This is also my understanding : contention of the PCI bus. Some systems have multiple PCI busses (sorry, can't name one of the top of my head) and if you only use one peripheral on each bus, it gets the whole bandwidth to itself. AGP is essentially a dedicated PCI bus (although double- or quad-pumped) to the graphics processor/memory. Therefore, it has no contention and 4x the throughput (potentially).
SCSI is a much better option for fast disk access, especially if you stripe the disks. I've seen a 100% performance boost (ie a doubling of speed) on a 12-hour job by employing disk striping.
I'm out of my tree just now but please feel free to leave a banana.
I believe windows only turns DMA on for the first IDE channel by default. If you are transfering from one channel to another, you might be using PIO mode on one channel and that will definitely slow you down. Go to the properties for your IDE hardware and verify that both channels are using DMA if available.
I'd guess one or both of the drives is not in DMA mode. It's probably configured as PIO mode.
This is a pretty common mistake - if the drive is in PIO mode, all i/o goes through the cpu.
Is he referring to two IDE "Interfaces" as active meaning Master/Slave on one IDE controller (say the primary) or one drive as master on the primary, and one as master on the secondary?
I certainly have seen a performance cut when both drives are accessed in the first (master/slave) arrangement, but All Good Techs know this already! If he is referring to the Master on Primary and Master on Secondary arrangement, I would say you have an isolated problem there! I have never seen performance penalties for running drives on separate controllers. In fact this is why when you try and burn from CD-CD the recommended arrangement is one drive on primary, and one drive on secondary....
Lousy facepalm.
No one should be running a performance-critical server on IDE drives. Despite performance improvements in recent years IDE still sucks when their is more than 1 device installed, this is why SCSI continues to exist.
the two devices on the primary controller could not both be transferring data at the same time, so performance would be hit severely if you were reading or writing to both simultaneously regardless of whether or not the disks were transferring data between each other or some other device on the secondary controller.
when data is transferred between a device on the primary and a device on teh secondary controller there is no performance hit that is caused by the lack of ability to read or write simultaneously; i.e., you can read or write at the same time if each device is on a different controller, but not on the same controller.
now in your case what i think you are saying is that you notice poor performance even in this scenario; i.e., transferring data across two controllers. the reason for this is that IDE is severely CPU dependent. What kind of CPU are you running on these machines? IDE's CPU dependence is what makes it STILL a poor substitute for i/o heavy use when compared with SCSI. SCSI devices are not CPU dependent. as well, you can simultaneously read and write to all devices on the chain. also, transfer speeds are faster and the RPM of SCSI drives tend to be faster as well.
so i would surmise that the reason you are seeing your performance hit is that the CPU is just working twice as hard to transfer data from one controller to the other. if you actually are trying to transfer data across the same controller; i.e, from master to slave or vice versa, you should stop doing that. that's really slow and quite silly. get SCSI. it's worth it.
I know some dick will moderate me down because I was rude, and I used the word 'dick' (which turns all the faggot moderators on), but it's true. If you care about speed, IDE is an inappropriate tool. Take it out of your toolbox, and forget about it.
I believe this is to do with UDMA spec's as to cable length an connectors etc. etc. I reciently had a lot of trouble with a UDMA100 Maxtor drive. They got back to me and informed me that UDMA wouldn't be gaurenteed to even run at UDMA100 (mode 5??) and even if the drive did detect at UDMA100 the performance would be much worse..
Having finally got my drive detecting as UDMA100 I can totally agree with the performance issues under Windows 2000 at any rate. My slave drive gets on average 30Mb/sec when runnning a transfer rate test on top of NTFS. My master drive gets on average 60Mb/sec on the same test.
If you read the installation instructions for all UDMA100 drivers (well all the ones I've seen ;) ) they say to make sure the drive is attached to the black connector on the cable for best performance. I looks like UDMA100 just isn't designed to run both drives on the controller at high speed.
If you ever drop your keys into a river of molten lava, let'em go, because, man, they're gone.
It also depends on filesystem and partition size
e.g. an 4GB FAT32 partition will outperform a 20GB NTFS partition on the same type of disk.
New specs at 2Gbps, or ~200MBps. Plus you put up to 127 devices on FC-AL with multiple host access if you use a FC hub/switch.
Absolutely! This is one, just one, of the many reasons that a REAL server is different and costs more than the typical white box server. People don't seem to understand that all computers are not the same. Putting a desktop motherboard in a tower case does NOT make it a server!
As an example, Compaq Proliant servers offer Dual Peer PCI buses. This helps to reduce this type of problem where the single PCI bus is saturated by multiple PCI devices. Things like NICs, disk controllers etc. all add up.
Another important distinction between white boxes and real servers is (flamesuit on) SCSI. Contrary to all the arguments, SCSI is STILL faster, more scalable and more reliable than IDE. Real servers use SCSI and hardware based RAID, desktops use EIDE UDMA 100. (/flamesuit off)
It's simple, if you want a real server, you have to start with a REAL server.
I've seen what I think you're talking about.
/dev/hda
/dev/hdb
Put 2 identical disks on one channel.
When the system is idle:
hdparm -t
hdparm -t
Both give the same value, say 10MB/s.
Then do it again, but with the same disks on seperate channels, then I'd get 20MB/s.
Do the same test on a different machine, different kernel, different disti, different drives, suddenly the problem is nowhere near as noticable, say 19MB/s vs 20MB/s.
Seen the problem with WD drives on an ALI chipset and IBM drives on an Intel chipset, so I'm not sure that it's isolated to any particular hardware.
All the DMA settings were on.
Maybe it was the kernel driver... specific for the chipset vs generic... or something.
All the machines with the problem have been "upgraded" now, so I can't experiment with the problem here anymore.
IDE hard drives are very dumb. They are given commands and execute them in the order they are received and require the guidance of a parental figure in order to work properly. They also can't bear to be alone while they do work of any kind. Any time an IDE drive processes a command it takes full control of the IDE bus and cannot release it until all commands issued are complete. If you occupy two channels on an IDE bus one of the drives is going to be losing out hardcore to the other drive when it comes to throughput. If you really want a reliable storage system under either Windows or Linux go with SCSI drives rather than IDE. SCSI drives are smart and don't need their hand held while doing work. SCSI drives will reorder read/write requests so the order they're executed is the most efficient order not just the order received. They also get a command and relinquish control over the bus when they are given commands and can hold commands in a queue until they can get some bandwidth on the bus again. Adding a second drive to a SCSI bus doesn't ruin the performance like with IDE drives. Drives can also talk to one another independent of the host system which means transfering data from a hard drive to CD-R doesn't require the total control of the host CPU like it would with IDE. Meanwhile you can still read and write data to another drive that isn't being used to burn a CD without making anything crap out on you. SCSI costs more but you get better performance out of it. You can pretty readily find 9GB SCSI drives for under 100$ and a couple of them on a RAID controller ought to provide you with plenty of throughput for a long time.
I'm a loner Dottie, a Rebel.
Don't believe everything that you read. Much of it is either inaccurate or intentionally biased.
However, you can beleive this: You are an idiot.
.
This is significant as our servers are used to provide Point-of-Sale availability for registers in the retail environment, which is heavily dependent on disk i/o performance for efficiency.
Whenever I come across a scenario like this, I tell people to take a step back and before making any technical decisions, figure out what it is you are actually trying to accomplish. If you are really after high performance, get SCSI disks. If you're after cheapness, then you will simply have to accept that IDE disks are slower.
This isn't a question for a techie to answer, BTW. One of your business managers will have to think about how many transactions per day are processed, when the cost of the system can be recouped at a given percentage of each transaction, whether or not paying more for SCSI makes financial sense, and whether higher unit cost will mean you sell fewer units. Get one of your tame MBAs to think about this for you.
Ironic this comes up today. I was just playing around with my old BP6 motherboard with the Promise 66 controllers, and was trying to read up on the different possible setups.
Looks like you can do either PIO, UDMA or MW DMA.
Just by playing with a 'hdparm -t', it appears that I get the best performace with it set to UDMA.
(I managed to almost double the read speed by tweaking the IDE driver settings)
Anyone know where I could find out what PIO/UDMA/MW DMA is?
If you're running a server you really really really want SCSI. It doens't cost more, all things considered (uptime, reliability, future expansion).
Display some adaptability.