home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / benchmar / 1684 < prev    next >
Encoding:
Internet Message Format  |  1992-11-13  |  19.8 KB

  1. Xref: sparky comp.benchmarks:1684 comp.arch.storage:768
  2. Path: sparky!uunet!europa.asd.contel.com!emory!swrinde!cs.utexas.edu!rutgers!cbmvax!jesup
  3. From: jesup@cbmvax.commodore.com (Randell Jesup)
  4. Newsgroups: comp.benchmarks,comp.arch.storage
  5. Subject: Re: Disk performance issues, was IDE vs SCSI-2 using iozone
  6. Message-ID: <37043@cbmvax.commodore.com>
  7. Date: 14 Nov 92 04:17:29 GMT
  8. References: <1992Nov11.064154.17204@fasttech.com> <1992Nov11.210749.3953@igor.tamri.com> <36995@cbmvax.commodore.com> <1992Nov12.193308.20297@igor.tamri.com>
  9. Reply-To: jesup@cbmvax.commodore.com (Randell Jesup)
  10. Organization: Commodore, West Chester, PA
  11. Lines: 352
  12.  
  13. jbass@igor.tamri.com (John Bass) writes:
  14. >
  15. >I've gotten a lot of wonderful mail on this series of posting, the few
  16. >detractors make arguements similar to Randell's, so I will rebut his
  17. >public position a little more strongly than otherwise.
  18.  
  19.     Hmmm, I have this vision of a bunch of spectators waving flags in
  20. stands as we "battle" it out.... :-)
  21.  
  22.     The discussion topic (as you noted in the subject) has changed quite
  23. a bit from the original topic; I suspect assumptions about this topic have 
  24. been part of the reasons for disagreement.
  25.  
  26.     (For historical interest, this started out with a "why is IOZone
  27. dangerous to use without understanding" message.)
  28.  
  29.     For the record, I used the Amiga (nee Tripos) filesystem more as an
  30. example of how implemtation details of an OS, such as the Unix buffer cache,
  31. can influence filesystem design and performance, and benchmarks.  The Amiga
  32. filesystem is by no means perfect.  It has some good qualities, such as good
  33. (close to driver limits) performance on large reads/writes and fast opening of
  34. files (due to hashed directories).  It has some bad qualities too, such as
  35. using block lists instead of extents (fixing this would be an easy big win),
  36. slow directory scanning (though the recent release has an ok solution to this),
  37. and a few other things.  It is designed for micro's (multitasking, but micros).
  38. It performs well in a single-user environment in most situations.
  39.  
  40.     Now on to the real discussion...
  41.  
  42. >    2) Substantial in-field performance anoymolies where critical
  43. >       data is in remapped blocks ... what if this was a bench
  44. >       mark evaluation purchase and the customer based a $50M order
  45. >       on it's performance? What about the ordinary customer who
  46. >       just has to live with it's poor behaviour?
  47.  
  48.     That example is a good example of why I said I think we've been
  49. talking about different things/worlds.  That's not the desktop market.  That's
  50. not even close.  In that sort of market, spending LOTS of engineering dollars
  51. to avoid worst-case problems or to get the last bit of performance out of
  52. a drive that is the gating performance issue for many users makes sense.  It
  53. (usually) doesn't in the desktop market.
  54.  
  55.     Most drives that remap do so to spares on the same cylinder.  While
  56. fetching such a spare will take time, it won't take much (average 1/2 rev).
  57. If you have contiguous data and the drive is doing read-ahead, it may only
  58. take an extra sector time, since the drive will be using that extra half-rev
  59. to throw data you'll want into it's buffer).  Of course, if you run out of
  60. spares on the cylinder, you have to do an expensive extra seek.
  61.  
  62. >my position was that remapping should be done in the filesystem
  63. >so that the bad-blocks would NEVER be allocated and need to be remapped. This
  64. >IS a major divergence in thought from current practice in UNIX ... not at all
  65. >for DOS which has always managed bad block info in the filesystem.
  66.  
  67.     There are costs with that approach also.  Quite possibly the costs
  68. aren't large, but they are there.  In our particular application, we make use
  69. of knowing that all blocks are usable to allow image-backups and copies of
  70. partitions - that's painful at best and at worst impossible without mapping
  71. in the driver or the device.  However, for systems like most Unixes which
  72. rarely use removable media this would not be very important.
  73.  
  74. >For WD1003 type controllers the long accepted practice was to flag each
  75. >sector/track bad at low level format, so that when DOS format or SCO badtrk
  76. >scanned the media it was ASSURED of finding the area bad and marking it so.
  77. >From a performance point of view (the one I consistantly take) this is vastly
  78. >better!
  79.  
  80.     One thing you miss in your discussion, though: all reasonable SCSI
  81. drives will tell you what sectors have been mapped out - Read Defect Data.
  82. If the filesystem wishes to use the information, it's there.  You can even
  83. figure out if will replace a cylinder by examining some of the mode pages, or
  84. change the formatting so it doesn't spare on a per-cylinder basis, at least
  85. on some drives (exact options vary from drive to drive, but you can check the
  86. mode pages).
  87.  
  88. >> The Read Multiple command performs similarly to the Read Sectors command. 
  89. >> Interrupts are not generated on every sector, but on the transfer of a block 
  90. >> which contains the number of sectors defined by a Set Multiple command. 
  91. >
  92. >Sorry, but for PC's BRDY of the WD1010 is tied to IRQ, and does generate
  93. >an interrupt per sector -- EVEN WITH IDE .... This discussion started out as
  94. >a IDE/SCSI from a PC point of view ... you need to keep that in mind ... since
  95. >it may not be implemented that way on your Amiga.
  96.  
  97.     Let me reverse that: I told you what the AT-IDE spec says.  Have you
  98. read the spec?  IDE (_not_ WD1010) has NO BRDY signal.  When using Read
  99. Multiple, it does NOT generate more than 1 interrupt per N sectors, where
  100. N is the value set with Set Multiple.  IDE has one interrupt line: INTRQ.
  101.  
  102. >This is a host adapter issue, and hopefully will go away in the future as
  103. >cheap DMA hostadpters become available.
  104.  
  105.     If they become available.  The Dos/Windows people have little reason
  106. to care about DMA, and the OS/2/Windows-NT/Unix people generally opt for
  107. SCSI, for many reasons, including tape drives, larger drives, CDROM, more
  108. devices per interface, disconnect, ability to mount things outside the CPU
  109. box (IDE is limited to 12" of cable, basically it's a straight CPU bus), etc.
  110. We used IDE for only one reason: it's _cheap_.  For mid/high-end we're
  111. committed to SCSI (with one exception for reasons that have little to do
  112. with technical issues).
  113.  
  114. >>    Yes, write-buffering does lose some error recovery chances, especially
  115. >>if there's no higher-level knowledge of possible write-buffering so
  116. >>filesystems can insert lock-points to retain consistency.  However, it can be
  117. >>a vast speed improvement.  It all depends on your (the user's) needs.  Some
  118. >>can easily live with it, some can't, some need raid arrays and UPS's.
  119. >
  120. >It is only a vast speed improvement on single block filesystem designs ...
  121. >any design which combines requests into a single I/O will not see such
  122. >improvement ... log structured filesystems are a good modern example.
  123. >It certainly has no such effect for my current filesystem design.
  124.  
  125.     If it can provide the optimization and make the design of a higher
  126. level significantly simpler, it may be a win.  Also, it can help non-"single-
  127. block filesystems" - the Amiga FS writes in as large amounts as possible, but
  128. it doesn't gather separate requests.  Small writes end up in filesystem
  129. buffers, and when flushed the buffers are non-contiguous, so they must be
  130. sent as separate requests (driver's don't do gather-scatter on the Amiga).
  131. Large writes will become large writes at the drive, and write-caching will be
  132. irrelevant.
  133.  
  134. >For the DOS user, while the speed up may be great ... I have grave questions
  135. >reqarding data reliability when the drive fails to post an error for the
  136. >sectors involved because the spare table overflowed. I also strongly
  137. >disagree with drive based automatic remapping since an overloaded power supply
  138. >or power supply going out of regulation will create excessive soft errors
  139. >which will trigger unnecessary remapping.
  140.  
  141.     First, I've only seen spurious drive errors once in my entire time
  142. working with HD's (when the air conditioning went out and it hit ~110F -
  143. without AC my office roasts), and the drive quickly shut down totally.
  144. Second, as I mentioned, write-buffering needn't be hidden from higher layers.
  145. Introducing filesystem lock-points (similar in concept to trap barrier
  146. instructions on a CPU) would resolve all your worries about missed errors.
  147.  
  148.     I also have almost never seen errors on write, I see a vast majority
  149. of read errors (which isn't suprising given how few people use verify).
  150.  
  151. >Write buffering requires automatic remapping ... A good filesystem design
  152. >should not see any benefits from write buffering, and doesn't need/want
  153. >remapping. Nor do customers want random/unpredictable performance/response
  154. >times.
  155.  
  156.     Again, in the desktop market, few if any people notice what you
  157. call random performance.
  158.  
  159. >>> Tapes are (or will be) here, and I
  160. >>>expect CDROMS (now partly proprietary & SCSI) to be mostly IDE & SCSI
  161. >>>in the future. IDE is already extending the WD1003 interface, I expect
  162. >>>addtional drive support will follow at some point, although multiple
  163. >>>hostadapters is a minor cost issue for many systems.
  164. >>
  165. >>    There are rumbles in that direction.  I'm not certain it's worth
  166. >>it, or that it can be compatible enough to gain any usage.  Existing users
  167. >>who need lots of devices have no reason to switch from SCSI to IDE, and
  168. >>systems vendors have few reasons to spend money on lots of interfaces
  169. >>for devices that don't exist.  The reason IDE became popular is that it was
  170. >>_cheap_, and no software had to be modified to use it.
  171. >
  172. >The fact is that IDE has become the storage bus of choice for low end
  173. >systems ... and other storage vendors will follow it to reduce interface
  174. >(extra slot/adapter) costs. In laptops, IDE IS THE STORAGE BUS,
  175. >no slots for other choices.
  176.  
  177.     Actually, the laptop/palmtop market seems to moving towards PCMCIA
  178. slots for IO and storage.  I don't disagree that in low-power and/or low-
  179. cost applications that IDE has it's place.  That's why it's in our 2 lowest-
  180. end machines.  However, as I said, I don't see significant movement to
  181. extend it to more drives (I hear rumbles, but see no lightning...).  Certainly
  182. there's no rush to IDE tape drives or CDROM drives.  IDE is only _just_
  183. starting to try to support removable media at all (pushed by Syquest and/or
  184. Bernoulli, I think).  Again, there's no indication that this is going to
  185. be a major factor.  It could happen; I doubt it will.
  186.  
  187. >>    Sounds like the old IPI vs SCSI arguments over whether smart or dumb
  188. >>controllers are better (which is perhaps very similar to our current
  189. >>discussion, with a few caveats).  
  190. >
  191. >This IS VERY MUCH LIKE that discussion ... BUT about how a seemingly good
  192. >10 year old decision has gone bad. Given the processor and drive speeds
  193. >of that era ... I also supported SCSI while actively pushing for reduced
  194. >Command Decode times. See article by Dan Jones @ Fortune Systems 1986 I
  195. >think in EDN regarding SCSI performance issues ... resulting from
  196. >the WD1000 emulating SCSI hostadapter I did for them under contract.
  197.  
  198.     Could you summarize for those without large libraries close at hand?
  199.  
  200. >Has IPI largely died due to a lack of volume? ... SCSI proved easier to
  201. >interface, lowering base system costs .... just as IDE has. Certainly
  202. >the standardization on SCSI by Apple after my cheap DDJ published
  203. >hostadapter, was a major volume factor toward the success of SCSI
  204. >and embeded SCSI drives. The market changed so fast after the MacPlus
  205. >that DTC, XEBEC, and OMTI became has been's, even though they shaped
  206. >the entire market up to that point.
  207.  
  208.     Quite true.  I don't follow IPI, but it seems to have faded from view
  209. at least.
  210.  
  211. >>I would suggest
  212. >>    (a) that's a highly contrived example, especially for
  213. >>        the desktop machines that all IDE and most SCSI drives
  214. >>        are designed for,
  215. >
  216. >For DOS you are completely right .... for any multitasking with a
  217. >high performance filesystem you missed the mark.
  218.  
  219.     You need to separate multi-tasking from multi-user.  Single-user
  220. machines (and this includes most desktop Unix boxes) don't have the activity
  221. levels for the example you gave to have any relevance.  It's rare that more
  222. than one or two files are being accessed in any given second or even minute.
  223. Also, in a single-user environment, average response time becomes the over-
  224. riding factor over total throughput.
  225.  
  226. >>    (b) both C-SCAN and most other disksorting algorithms have tradeoffs
  227. >>        for the increase in total-system throughput and decrease in
  228. >>        worst-case performance; FCFS actually performs quite well in
  229. >>        actual use (I have some old comp.arch articles discussing this
  230. >>        if people want to see them).  The tradeoffs are usually in
  231. >>        fairness, response time, and average performance (no straight
  232. >>        disksort will help you until 3 requests are queued in the first
  233. >>        place).
  234. >
  235. >While your short queue observations are quite true, your assumptions
  236. >stating this is the norm are quite different than mine, and are largely
  237. >an artifact of 1975 filesystem designs and buffering constraints.
  238. >In my world systems with 5-20 active users are common, with similar
  239. >average queue depths -- and FCFS is not an acceptable solution since it
  240. >blocks request locality resulting from steady state read-ahead service,
  241. >resulting in a significant loss of thruput (80% or more).
  242.  
  243.     I never said that FCFS was the best (or even acceptable) for all
  244. uses.  Your "world" is not the desktop world.
  245.  
  246. >The primary assumption in FCFS proponents is that all requests are unrelated
  247. >and have no bearing on the locality of future requests. In addition they
  248. >extrapolate response time fairness for a given single block globally.
  249. >In reality, from the users perspective, they judge such from how quickly
  250. >a given task completes ... and most things improve thruput, will improve
  251. >task completion times .... as long as they don't create the ability for
  252. >some process to hog resources.
  253.  
  254.     I think that even in larger systems, both throughput and response
  255. time are important.  Throughput does you no good if you have to wait 5
  256. seconds because some other user was loading a 10MB simulation.  Again, on
  257. desktop machines throughput becomes even less relevant.  If you can show
  258. something is better than FCFS in those constraints, fine.
  259.  
  260. >>    For most desktop machines, even if we ignore single-tasking OS's,
  261. >>probably 99.44% of the time when disk requests occur there are no other
  262. >>currently active requests.
  263. >
  264. >Any strategy that offers performance gains under load can not be
  265. >dismissed out of hand.  Especially RISC systems that completely out run
  266. >the disk subsystems.  If your company is happy with slow single request
  267. >single process filesystems and hardware ... so be it, but to generalize
  268. >it to the rest of the market is folly. There are better filesystem designs
  269. >that do not produce this profile on even a single user, single process
  270. >desktop box.
  271.  
  272.     Certainly they shouldn't be "dismissed out of hand".  However,
  273. recognition of the costs and complexity involved should be there also.
  274. Filesystems are complex beasts, and that complexity can lead to high
  275. maintenance costs.  Things that increase the complexity of an already
  276. complex item for performance gains that are only rarely needed for the
  277. application are suspect.  Also, adding something to an already complex
  278. object can be more costly than adding it to a simple object, because the
  279. complexities interact.  An example: the Amiga FS is built around coroutines
  280. (which should give a good clue as to when it's base was designed...),
  281. basically one per active filehandle plus others as needed.  This alone makes
  282. it very hard to modify; I have to take time to absorb the design every time
  283. before I can work on it, because of the complexity.  Anything that added
  284. significant complexity to it would be a nightmare (rewriting from scratch
  285. is not an option, though I'd love to throw it out and start again...)  This
  286. makes it easier to add mapping to either the driver or the device itself.
  287.  
  288. >If this single user is going to run all the requests thru the cache
  289. >anyway ... why not help it up front ... and queue a significant amount
  290. >of the I/O on open or first reference. There are a few files were this
  291. >is not true ... such as append only log files ... but there are clues
  292. >that can be taken.
  293.  
  294.     Why should the single-user have to run everything through a cache?
  295. I think direct-DMA works very nicely for a single-user environment, especially
  296. if you don't own stock in RAM vendors (as the current maintainers of Unix,
  297. OS/2, and WindowsNT seem to).  Reserve the buffers for things that are likely
  298. to be requested again or soon - most sequential reads of files are not re-used.
  299.  
  300. >>>IDE drives should support the WD1010 SCAN_ID command allowing the driver
  301. >>>locate current head position ... no such SCSI feature exists.
  302.  
  303. >The key word was should .... it was part of the WD1010 chipset that formed
  304. >the WD1003WHA interface standard. Again if nobody makes use of a feature,
  305. >it is optional ... I make the arguement at it has significant value.
  306.  
  307.     It also has significant cost for them to support, especially since
  308. they try to present an interface that looks like an old ST-506 MFM disk to
  309. the system.  99% of them already remap, since few of them have 17 sectors
  310. per track any more, not even counting zone recording or sparing.
  311.  
  312. >>change, performance/cost ratios change, etc.  I also think your opinions
  313. >>come from a large, heavy-io multi-user systems background; which while 
  314. >>interesting for those working with such systems is pretty irrelevant to
  315. >>the desktop systems that IDE and (most of) SCSI are designed for.
  316. >
  317. >By background and perspective run the full range, single user single process
  318. >desktops to mulituser multiprocess multiprocessor servers.  Clinging to old
  319. >filesystems designs is an option, but as I outlined ... your assumptions
  320. >and conclusions are vastly in conflict with designing storage systems
  321. >capable of servicing 486/RISC desktop machines ... and certainly in
  322. >conflict with the needs of fileservers and multiuser applications engines
  323. >found in 100,000's point of sale systems managing inventory and register
  324. >scanners in each sales island -- Sears, Kmart, every supermarket, autoparts
  325. >stores and a growing number of restrants and fast food stores.
  326.  
  327.     Those are interesting areas, but those are not desktop markets,
  328. and those are not single-user markets.  Those are large, multi-user (from the
  329. point of the server) transaction and database server systems.
  330.  
  331. >Your perspective for design tradeoffs for the Amiga home market may well
  332. >be correct ... but are in conflict with the larger comercial markets that
  333. >are the focus of the technologies I have discussed here and elsewhere.
  334.  
  335.     I made the mistake of trying to keep the discussion relevant to the
  336. original topic.  If you had been more clear that your interests and comments
  337. were directed elsewhere, there would have been less confusion.
  338.  
  339. >Ignore what your system does ... what CAN IT DO if things were better?
  340. >
  341. >Again ... Performance comes by DESIGN, not tuning, selection, or
  342. >non-reflective evolution. Too much performance engineering is making do
  343. >with existing poor designs ...  instead of designing how it should be.
  344.  
  345.     True, but one rarely gets to re-do an existing design.  If you're
  346. lucky, you get to occasionally redo a part of it, or spend a bit of time
  347. smoothing out one aspect of it.  Most companies can't afford to take something
  348. that is sub-optimal but functional and start again from scratch.  Look at
  349. the glorified program loader called MSDOS for an example of inertia.  Even
  350. if I agreed that XYZ filesystem would be a major improvement for desktop
  351. systems (such as the Amiga), I would have to weigh the many months of work
  352. it takes to write and debug a full filesystem against both it's gains AND
  353. what other things I could do in that time elsewhere.  If the gains will only
  354. be seen by .1% of the users, .1% of the time, I'm not going to spend _any_
  355. time on it.  Call it the FS version of RISC philosophy - keep things simple.
  356.  
  357.     Sometimes good enough is all that's needed.
  358.  
  359. -- 
  360. To be or not to be = 0xff
  361. -
  362. Randell Jesup, Jack-of-quite-a-few-trades, Commodore Engineering.
  363. {uunet|rutgers}!cbmvax!jesup, jesup@cbmvax.cbm.commodore.com  BIX: rjesup  
  364. Disclaimer: Nothing I say is anything other than my personal opinion.
  365.