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

  1. Xref: sparky comp.benchmarks:1673 comp.arch.storage:767
  2. Newsgroups: comp.benchmarks,comp.arch.storage
  3. Path: sparky!uunet!ukma!darwin.sura.net!sgiblab!sgigate!sgi!igor!jbass
  4. From: jbass@igor.tamri.com (John Bass)
  5. Subject: Re: Disk performance issues, was IDE vs SCSI-2 using iozone
  6. Message-ID: <1992Nov12.193308.20297@igor.tamri.com>
  7. Organization: TOSHIBA America MRI, South San Francisco, CA
  8. References: <1992Nov11.064154.17204@fasttech.com> <1992Nov11.210749.3953@igor.tamri.com> <36995@cbmvax.commodore.com>
  9. Date: Thu, 12 Nov 92 19:33:08 GMT
  10. Lines: 303
  11.  
  12.  
  13. I've gotten a lot of wonderful mail on this series of posting, the few
  14. detractors make arguements similar to Randell's, so I will rebut his
  15. public position a little more strongly than otherwise.
  16.  
  17. jesup@cbmvax.commodore.com (Randell Jesup) writes:
  18. >    You're making the assumption that IDE doesn't hide that from you as
  19. >well.  It does.  Some (many?) current IDE drives use the cylinder/head/sector
  20. >registers as merely a convoluted way to specify a block number, use zone
  21. >recording, etc.  I strongly suspect that this will continue, as the benefits
  22. >of zone recording, sector replacement, etc are too large to ignore (a number
  23. >of filesystems (most?) require that the device drivers present them with a
  24. >perfect media, no unusable blocks.  This requires remapping of bad blocks in
  25. >the disk controller (SCSI or IDE) or in the device driver itself.  Usually the
  26. >controller has a better chance to do a good job at this.)
  27. > ...
  28. >    There's a big philosophical argument over who should deal with media
  29. >problems.  The consensus seems to be that they should be pushed into the
  30. >lowest level possible (fs->driver->host controller->drive controller).  Having
  31. >written both filesystems and device drivers, I must agree with that (and yes
  32. >I've had to implement bad-block mapping at the driver level, such as for IDE).
  33.  
  34. I didn't assume so, in fact I bitched about drives that refuse to turn it
  35. off and not allow the driver/filesystem to deal directly with the unmapped
  36. zones. Remapping is certainly an issue to debate ... while it makes
  37. filesystems and drivers a little easier (minor development effort for
  38. a relatively complex filesystem/driver design) ... as I mentioned the
  39. cost in performance for mid-high performance systems is too high on
  40. two accounts:
  41.  
  42.     1) The remapping task can be performed more quickly by any
  43.        386/486/RISC processor ... the on-drive micros are slow.
  44.  
  45.     2) Substantial in-field performance anoymolies where critical
  46.        data is in remapped blocks ... what if this was a bench
  47.        mark evaluation purchase and the customer based a $50M order
  48.        on it's performance? What about the ordinary customer who
  49.        just has to live with it's poor behaviour?
  50.  
  51. I don't understand why "the controller has a better chance to do a good job
  52. at this" ... my position was that remapping should be done in the filesystem
  53. so that the bad-blocks would NEVER be allocated and need to be remapped. This
  54. IS a major divergence in thought from current practice in UNIX ... not at all
  55. for DOS which has always managed bad block info in the filesystem.
  56.  
  57. For WD1003 type controllers the long accepted practice was to flag each
  58. sector/track bad at low level format, so that when DOS format or SCO badtrk
  59. scanned the media it was ASSURED of finding the area bad and marking it so.
  60. From a performance point of view (the one I consistantly take) this is vastly
  61. better!
  62.  
  63. I have also written filesystems and drivers, I take a STRONGLY different
  64. stand ... given the DOS filesystem handling of bad blocks, I hardly
  65. consider this a consensus to do it in the drive. ALthough many software
  66. guys would like it there to make their job simpler. I strongly prefer
  67. the ability to have the drive present vendor defects with the ID's marked
  68. as bad.
  69.  
  70. Nor would I like to be the customer who has his FAT or root inode over
  71. a remapped sector.
  72.  
  73. >>>    Once per sector?  Don't PC's use the ReadMultiple/WriteMultiple
  74. >>>commands?  I guess not (which matches what I've heard elsewhere).  Our IDE
  75. >>Yes, Yes ... the interrupt for WD1003/IDE interfaces means the 512 byte sector
  76. >>buffer is full, and must be emptied. R/W Multiple are used, but it requires
  77. >>handling a transfer request interrupt for each sector, or busy waiting on
  78. >>data_request in the command status register ... hence poor man's disconnect
  79. >>from the processor bus.
  80. >
  81. >    I think you're confused.  The CAM-ATA spec (and all the IDE drives I've
  82. >played with) says that when read/write Multiple is used (with SetMultiple),
  83. >you get 1 interrupt per N sectors.  From CAM-ATA rev 2.3:
  84. >
  85. > 9.12  Read Multiple Command 
  86. >
  87. > The Read Multiple command performs similarly to the Read Sectors command. 
  88. > Interrupts are not generated on every sector, but on the transfer of a block 
  89. > which contains the number of sectors defined by a Set Multiple command. 
  90.  
  91. Sorry, but for PC's BRDY of the WD1010 is tied to IRQ, and does generate
  92. an interrupt per sector -- EVEN WITH IDE .... This discussion started out as
  93. a IDE/SCSI from a PC point of view ... you need to keep that in mind ... since
  94. it may not be implemented that way on your Amiga.
  95.  
  96. This is a host adapter issue, and hopefully will go away in the future as
  97. cheap DMA hostadpters become available.
  98.  
  99. >    Yes, write-buffering does lose some error recovery chances, especially
  100. >if there's no higher-level knowledge of possible write-buffering so
  101. >filesystems can insert lock-points to retain consistency.  However, it can be
  102. >a vast speed improvement.  It all depends on your (the user's) needs.  Some
  103. >can easily live with it, some can't, some need raid arrays and UPS's.
  104.  
  105. It is only a vast speed improvement on single block filesystem designs ...
  106. any design which combines requests into a single I/O will not see such
  107. improvement ... log structured filesystems are a good modern example.
  108. It certainly has no such effect for my current filesystem design.
  109.  
  110. For the DOS user, while the speed up may be great ... I have grave questions
  111. reqarding data reliability when the drive fails to post an error for the
  112. sectors involved because the spare table overflowed. I also strongly
  113. disagree with drive based automatic remapping since an overloaded power supply
  114. or power supply going out of regulation will create excessive soft errors
  115. which will trigger unnecessary remapping. When it was demanded by the powers
  116. that be at Fortune Systems ... we put it in ... only to take it when Field
  117. Service grew tried of the bad block tables overflowing and taking a big loss
  118. on good drives being returned due to "excessive bad blocks" as the result
  119. of normal (or abnormal) soft error rates due to other factors.
  120.  
  121. Write buffering requires automatic remapping ... A good filesystem design
  122. should not see any benefits from write buffering, and doesn't need/want
  123. remapping. Nor do customers want random/unpredictable performance/response
  124. times.
  125.  
  126. >
  127. >> Tapes are (or will be) here, and I
  128. >>expect CDROMS (now partly proprietary & SCSI) to be mostly IDE & SCSI
  129. >>in the future. IDE is already extending the WD1003 interface, I expect
  130. >>addtional drive support will follow at some point, although multiple
  131. >>hostadapters is a minor cost issue for many systems.
  132. >
  133. >    There are rumbles in that direction.  I'm not certain it's worth
  134. >it, or that it can be compatible enough to gain any usage.  Existing users
  135. >who need lots of devices have no reason to switch from SCSI to IDE, and
  136. >systems vendors have few reasons to spend money on lots of interfaces
  137. >for devices that don't exist.  The reason IDE became popular is that it was
  138. >_cheap_, and no software had to be modified to use it.
  139.  
  140. The fact is that IDE has become the storage bus of choice for low end
  141. systems ... and other storage vendors will follow it to reduce interface
  142. (extra slot/adapter) costs. In laptops, IDE IS THE STORAGE BUS,
  143. no slots for other choices.
  144.  
  145.  
  146. I combined both his postings into a single reply.....
  147.  
  148. >    Sounds like the old IPI vs SCSI arguments over whether smart or dumb
  149. >controllers are better (which is perhaps very similar to our current
  150. >discussion, with a few caveats).  
  151.  
  152. This IS VERY MUCH LIKE that discussion ... BUT about how a seemingly good
  153. 10 year old decision has gone bad. Given the processor and drive speeds
  154. of that era ... I also supported SCSI while actively pushing for reduced
  155. Command Decode times. See article by Dan Jones @ Fortune Systems 1986 I
  156. think in EDN regarding SCSI performance issues ... resulting from
  157. the WD1000 emulating SCSI hostadapter I did for them under contract.
  158.  
  159. Has IPI largely died due to a lack of volume? ... SCSI proved easier to
  160. interface, lowering base system costs .... just as IDE has. Certainly
  161. the standardization on SCSI by Apple after my cheap DDJ published
  162. hostadapter, was a major volume factor toward the success of SCSI
  163. and embeded SCSI drives. The market changed so fast after the MacPlus
  164. that DTC, XEBEC, and OMTI became has been's, even though they shaped
  165. the entire market up to that point.
  166.  
  167. >I would suggest
  168. >    (a) that's a highly contrived example, especially for
  169. >        the desktop machines that all IDE and most SCSI drives
  170. >        are designed for,
  171.  
  172. For DOS you are completely right .... for any multitasking with a
  173. high performance filesystem you missed the mark.
  174.  
  175. >    (b) both C-SCAN and most other disksorting algorithms have tradeoffs
  176. >        for the increase in total-system throughput and decrease in
  177. >        worst-case performance; FCFS actually performs quite well in
  178. >        actual use (I have some old comp.arch articles discussing this
  179. >        if people want to see them).  The tradeoffs are usually in
  180. >        fairness, response time, and average performance (no straight
  181. >        disksort will help you until 3 requests are queued in the first
  182. >        place).
  183.  
  184. While your short queue observations are quite true, your assumptions
  185. stating this is the norm are quite different than mine, and are largely
  186. an artifact of 1975 filesystem designs and buffering constraints.
  187. In my world systems with 5-20 active users are common, with similar
  188. average queue depths -- and FCFS is not an acceptable solution since it
  189. blocks request locality resulting from steady state read-ahead service,
  190. resulting in a significant loss of thruput (80% or more).
  191.  
  192. The primary assumption in FCFS proponents is that all requests are unrelated
  193. and have no bearing on the locality of future requests. In addition they
  194. extrapolate response time fairness for a given single block globally.
  195. In reality, from the users perspective, they judge such from how quickly
  196. a given task completes ... and most things improve thruput, will improve
  197. task completion times .... as long as they don't create the ability for
  198. some process to hog resources.
  199.  
  200. As such, windowed CSCAN (cyl/trk) in the reverse order of file block allocation
  201. gives you the best of both worlds ... the ability to gain localized burst
  202. behaviour during readahead as long as the application has low enough
  203. cpu requirements and can process the blocks ... plus forced breaks to
  204. round robin the queue at each window boundry. I first presented this issue
  205. at the Santa Monica USENIX conference in the late 70's, and have made
  206. it a key point in numerous other performance presentations at other
  207. conferences and lectures.
  208.  
  209. In addition my current filesystem design, and XENIX work I did for SCO, both
  210. attempt to read-ahead entire files of moderate length. A single block
  211. read-ahead doesn't allow for improved scheduling ... burst read-ahead
  212. does and uniformly gets the task completed quicker.
  213.  
  214. >    (c) Your example also depends on very fast track-to-track stepping
  215. >        times AND very high locality of the requests (within your fast
  216. >        stepping distance), and becomes less relevant on drives with
  217. >        large numbers of cylinders and fast spin times.
  218.  
  219. Or drives with steppers or dedicated servo that have a more than one head.
  220. The larger the number of heads, the bigger the gain.  In practice any drive
  221. with multiple heads, or a track to track seek time less than 1/2 rev time
  222. will service a minimium of 15%-30% additional requests per second under
  223. normal UNIX timesharing loads ... with a potential of several hundred percent
  224. on fast seek and/or many headed drives.
  225.  
  226. Any facility that uses a disk reorg utility that provides locality
  227. will benefit greatly .... in the case of my filesystem which does
  228. active data migration and maintains a high degree of locality, the
  229. results are VERY significant.
  230.  
  231. >
  232. >    For most desktop machines, even if we ignore single-tasking OS's,
  233. >probably 99.44% of the time when disk requests occur there are no other
  234. >currently active requests.
  235.  
  236. Any strategy that offers performance gains under load can not be
  237. dismissed out of hand.  Especially RISC systems that completely out run
  238. the disk subsystems.  If your company is happy with slow single request
  239. single process filesystems and hardware ... so be it, but to generalize
  240. it to the rest of the market is folly. There are better filesystem designs
  241. that do not produce this profile on even a single user, single process
  242. desktop box.
  243.  
  244. If this single user is going to run all the requests thru the cache
  245. anyway ... why not help it up front ... and queue a significant amount
  246. of the I/O on open or first reference. There are a few files were this
  247. is not true ... such as append only log files ... but there are clues
  248. that can be taken.
  249.  
  250. >>In addition, if the filesystem were then presented with storing a 9K
  251. >>file it would use 12/3/4 to 12/3/12 (best fit nearest active region).
  252. >>A big win over using 10/0/[2,5,8], 10/3/[4,8], 10/4/6-7, and 11/0/8 as
  253. >>convential filesystem with a bitmap would tend to allocate.
  254. >
  255. >    Any best-fit will produce better read and rewrite performance over
  256. >a first-fit, bitmapped or not, at the potential cost of increased fragmentation
  257. >and slower block allocation (especially if the bitmap or free-list isn't all
  258. >kept in memory at once).
  259.  
  260. I argue that given the distribution of file sizes and life-times,
  261. my filesystem model shows otherwise ... decreased fragmentation, slight CPU
  262. cost (0.2-1.5%) with a significant reduction in disk requests -- the primary
  263. resource to optimize. Much of decreased fragmentation comes from a secondary
  264. effect of freeing contiguous files ... more continguous freespace. Allocating
  265. fragmented files .... promotes fragmented free space. Again the common
  266. wisdom from studies on resource allocators, fails to take these side effects
  267. into account .... their models don't match this usage, and it is an error
  268. to extrapolate their results to all systems/applications.
  269.  
  270. >>IDE drives should support the WD1010 SCAN_ID command allowing the driver
  271. >>locate current head position ... no such SCSI feature exists.
  272. >
  273. >    No such IDE feature exists.  This _was_ a discussion of IDE vs. SCSI.
  274. >As far as I know, no one has even proposed such a feature to the CAM-ATA
  275. >committee, let alone implemented it.  The only positional information is the
  276. >index bit in the status register (I suspect many drives just leave it 0).
  277.  
  278. The key word was should .... it was part of the WD1010 chipset that formed
  279. the WD1003WHA interface standard. Again if nobody makes use of a feature,
  280. it is optional ... I make the arguement at it has significant value.
  281.  
  282. >>Given 1974-1986 hardware, most of the current filesystem design issues
  283. >>were correct .... to just OK. Given 1992-1995 hardware, the same tradeoffs
  284. >>are mostly WRONG. Performance comes by DESIGN, not tuning, selection, or
  285. >>non-reflective evolution. Too much performance engineering is making do with
  286. >>existing poor designs ...  instead of designing how it should be.
  287. >
  288. >    While your statement is correct, I think you're guilty here also.
  289. >Just because method/hack/whatever was a good choice for V7 Unix running RPS
  290. >drives, doesn't mean that that approach is (as) effective today.  Technologies
  291. >change, performance/cost ratios change, etc.  I also think your opinions
  292. >come from a large, heavy-io multi-user systems background; which while 
  293. >interesting for those working with such systems is pretty irrelevant to
  294. >the desktop systems that IDE and (most of) SCSI are designed for.
  295.  
  296. By background and perspective run the full range, single user single process
  297. desktops to mulituser multiprocess multiprocessor servers.  Clinging to old
  298. filesystems designs is an option, but as I outlined ... your assumptions
  299. and conclusions are vastly in conflict with designing storage systems
  300. capable of servicing 486/RISC desktop machines ... and certainly in
  301. conflict with the needs of fileservers and multiuser applications engines
  302. found in 100,000's point of sale systems managing inventory and register
  303. scanners in each sales island -- Sears, Kmart, every supermarket, autoparts
  304. stores and a growing number of restrants and fast food stores.
  305.  
  306. Your perspective for design tradeoffs for the Amiga home market may well
  307. be correct ... but are in conflict with the larger comercial markets that
  308. are the focus of the technologies I have discussed here and elsewhere.
  309.  
  310. Ignore what your system does ... what CAN IT DO if things were better?
  311.  
  312. Again ... Performance comes by DESIGN, not tuning, selection, or
  313. non-reflective evolution. Too much performance engineering is making do
  314. with existing poor designs ...  instead of designing how it should be.
  315.