Re: Seems like SBP-2 is swamped. Any solution?
Brought to you by:
aeb,
bencollins
From: Mark K. <mk...@co...> - 2004-02-26 15:51:42
|
And...@ao... wrote: > Hi Sebastian, > > Your suggestion WORKED!. Not only did it work, but the speed for 3 drives > under 1394b -- both for resyncing the RAID5 array and as measured by Bonnie++ -- > was substantially higher than what I was getting on my 1394a system with 5 > drives and 5 separate PCI cards. > > That leads me to 2 questions: > > 1) Why does sbp2 NOT serialize IO by default? Maybe I don't understand what > "serialize_io=1" actually means. Common sense tells me this parameter tells the > sbp2 module to "do one thing at a time" -- to wait for some feedback until > doing the next thing. When I see how good my speed is with this parameter set to > 1, it makes me question why anyone would want it set to 0. Generally speaking, I think with it set to 0 the system sends a request and waits for a response. You're queue never gets more than one command deep. With it 'serialized' (strange word) the stack sends requests, puts them in a list with a transaction label, and then accepts responses coming back in what ever order they come back, matches them up and does it's job. Serialized should be much faster, but it's also more work with more things to keep track of. Possibly buggier... > > 2) Of more importance to me, this "secret" that you have revealed to me tells > me I should set the sbp2 module to "serialize_io=1" in my production machine. > Can you tell me how to do that so that each time it boots up this will occur? Can't you put this on the module command line in modules.conf, just like you show below in the insmod command? Maybe not with RAID? I don't know. > > Right now I start my RAID arrays in the rc.local file using mdadm (referring > to the drives in each array by their uuid number -- the only safe way to start > a RAID array with firewire drives, in my opinion). Then, also in rc.local, I > mount the drives. > > Should I put the following two lines: > > > rmmod sbp2 > insmod sbp2 sbp2_serialize_io=0 > > in the same rc.local file BEFORE I start the arrays and mount them? It seems > silly to let the system load the sbp2 modules on boot, then unload them, then > reload them again. However, it also seems simple and straight-forward and I > would understand what's happening. But is there a better, and more secure way > to do it? Is there any downside to doing it the way I suggested? > > Thanks for your help. Had I had this information 3 months ago it would have > saved me a lot of headaches! > > The Linux community is great. But sometimes really important information gets > obscurred and that seems puzzling. I would think this "serialize_io" stuff > would be prominently discussed on the linux1394 web site, no? Hard to read the RFM if there is not RFM? ;-) - Mark |