home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / NOVELL / FSP.ZIP / FSP.TXT next >
Encoding:
Text File  |  1990-08-06  |  62.4 KB  |  1,400 lines

  1.  
  2. 286-Based NetWare v2.1x
  3. File Service Processes
  4.  
  5. The Final Word
  6.  
  7.  
  8. Systems Engineering Division
  9. April 1990
  10. Novell, Inc.
  11. 122 East 1700 South
  12. Provo, UT. 84606
  13.           
  14. Disclaimer
  15.  
  16.  
  17. Novell Inc. makes no representations or warranties with respect to the
  18. contents or use of this report, and specifically disclaims any express or
  19. implied warranties of merchantability or fitness for any particular
  20. purpose. Further, Novell Inc. reserves the right to revise this report and
  21. to make changes in its content at any time, without obligation to notify
  22. any person or entity of such revision or changes.
  23.  
  24.  (c) Copyright 1990 by Novell, Inc., Provo, Utah
  25.  
  26. File Service Processes
  27.  
  28. All rights reserved. This report may be stored electronically, and
  29. reproduced for your use, as long as no part of this report is omitted or
  30. altered. Further, this report, in part or whole, may not be reproduced,
  31. photocopied, stored in a retrieval system, or transmitted, in any form or
  32. by any means, electronic, mechanical, photocopying, recording, or
  33. otherwise, for any publication, general, trade, user group or otherwise,
  34. without the express prior written consent of Novell, Inc. 
  35. Preface 
  36. -------
  37.  
  38. The following report is a preliminary excerpt from an upcoming Novell
  39. Systems Engineering Division Research report entitled "NetWare Internals
  40. and Structure". The actual report may differ slightly from this excerpt,
  41. however the content will be the same. This particular excerpt provides an
  42. in-depth explanation of File Service Processes (FSP) under 286-based
  43. NetWare v2.1x. This includes ELS I and II, Advanced Dedicated, Advanced
  44. Non-Dedicated, and SFT. Because of the way in which FSPs are allocated, the
  45. following excerpt will also provide a detailed explanation of RAM allocated
  46. in the DGroup data segment under 286-based NetWare v2.1x.
  47.  
  48. Please note that NetWare 386 incorporates, among other things, a completely
  49. different memory scheme than 286-based NetWare. Due to this fact, none of
  50. this discussion of limitations or memory segments, apply to NetWare 386.
  51.  
  52. The most evident problem experienced by users, is a shortage of File
  53. Service Processes. This problem has recently surfaced because of two
  54. reasons. The first has been the growing tendency towards building bigger
  55. and more complex server configurations. The second has been the addition
  56. of functionality and features to the NetWare OS. With this shortage of
  57. FSPs, has come a variety of explanations for this problem from both within
  58. Novell, and outside of Novell. While some of these explanations have
  59. provided some partially correct answers, this excerpt provides the actual
  60. mechanics and breakdown of this component of the 286-based NetWare
  61. operating system.
  62.  
  63. After reading this report you should be able to understand all the factors
  64. affecting FSP allocation, as well as be able to correctly recognize when
  65. a server has insufficient FSPs. Additionally you will have several options
  66. for dealing with FSP starved servers.
  67.  
  68.  
  69.  
  70. Page 1             Copyright 1990 by Novell, Inc., Provo, Utah
  71.           
  72. File Service Processes
  73. ----------------------
  74.  
  75. A File Service Process is a process running in the NetWare Server that
  76. services File Service Packets. These are typically NetWare Core Protocol
  77. (NCP) requests. Workstations, or clients, in a NetWare network request
  78. services from the File Server through NCP requests. When a workstation
  79. wants to read a file, the NetWare shell builds a packet with the
  80. appropriate NCP request for reading the correct file, and then sends it off
  81. to the server.
  82.  
  83. At the server, the NCP request is handed off to a FSP. The FSP processes
  84. the NCP request. It is the only process running in the NetWare server that
  85. can process a NCP request. The FSP does this in one of two ways. It either
  86. processes the request directly, or it can schedule additional processes,
  87. in order to service the request.
  88.  
  89. Because there are various processes with various lengths of run time that
  90. can be used in the servicing of a workstation's NCP request, File Service
  91. Processes become a potential bottleneck at the server. The following is an
  92. example of this:
  93.  
  94. A workstation sends a NCP request that asks that a certain block of data
  95. be read from the server's disk. The FSP servicing the NCP request schedules
  96. the appropriate process to retrieve the information from the disk, and then
  97. instructs this disk process to "wake it up", when it has the information.
  98. The FSP then "goes to sleep" waiting for completion of the disk process.
  99.  
  100. If no other FSPs are available to run, then no other NCP requests can be
  101. processed until this first request is finished During this time period,
  102. the server is forced to process lower priority processes (if any are
  103. scheduled to run) until the disk request is completed and the FSP returns
  104. with another request. The server will also delay or ignore any new NCP
  105. requests that come in during this time period.
  106.  
  107. It should be noted that a FSP will, in all real terms, only go to sleep
  108. when it waits upon information coming back from a disk request. There are
  109. typically no other processes in the NetWare server that the FSP uses, that
  110. would cause the FSP to "go to sleep".
  111.  
  112. Page 2             Copyright 1990 by Novell, Inc., Provo, Utah            
  113. File Service Processes (continued)
  114. ----------------------------------
  115.  
  116.  
  117.  
  118. When a server does not have enough FSPs, typically performance will
  119. degrade, especially in heavy data movement environments, (large file
  120. copies, database environments, etc.). The problem that is created was
  121. depicted in the previous scenario. The file server must process the NCP
  122. requests in more of a serial fashion, rather than a parallel fashion, hence
  123. creating a longer waiting line for requests.
  124.  
  125. (How many of us have expressed frustration at seeing only one bank teller
  126. servicing the waiting line, especially on a Friday afternoon.)
  127.  
  128. Additionally, because there is only a certain amount of buffer space
  129. available on a server for incoming packets, packets coming in after this
  130. buffer space is filled are trashed. The workstations must then spend more
  131. time resending requests, which reduces performance for the workstation and
  132. also reduces performance for the network due to the increased traffic over
  133. the cable.
  134.  
  135. However, not all degradation can be attributed to a lack of FSPs, even in
  136. the aforementioned heavy data movement environments. In some instances bad
  137. or intermittent NICs, either at the server, or at another node, can create
  138. the very same performance degradations.
  139.  
  140. Before deciding that a network problem is due to FSP shortages, you should
  141. consult the following FCONSOLE statistic:
  142.  
  143. The very first indication of FSP problems is shown under FCONSOLE -> LAN
  144. I/O Stats -> File Service Used Route. The number on this line, is the
  145. number of File Service Packets (or NCP requests) that had to wait because
  146. a FSP was not able to service it.
  147.  
  148. Take this number and divide it by the amount of File Service Packets (also
  149. on this screen), which indicates the number of File Service Packets
  150. serviced by this server. This ratio should be below 1%.
  151.  
  152. Page 3             Copyright 1990 by Novell, Inc., Provo, Utah            
  153. File Service Processes (continued)
  154. ----------------------------------
  155.  
  156.  
  157.  
  158.  
  159. Care should be taken when using this FCONSOLE diagnostic method. The
  160. problem is that the File Service Used Route counter will roll over easily,
  161. especially in a FSP starved environment. While it should be easy to see if
  162. this number counter will turn over for your server (you will be able to see
  163. the number steadily increasing as you look at it) it's still recommended
  164. that these numbers be taken several times over the course of the day, or
  165. several days, to see if there are any radical differences in the
  166. percentages. It is especially useful to do this calculation during heavy
  167. utilization times on your server. In some instances you might not
  168. experience FSP starvation until a particular application is running or a
  169. certain activity takes place.
  170.  
  171. Lastly, in terms of describing FSP usage, and as will be explained later
  172. in this document, attaching a FSP amount to a particular option is
  173. inaccurate. For example, saying that a certain LAN board "takes up 2 FSPs"
  174. is inaccurate. What one server's FSP allocation is like can be radically
  175. different from another's. The most accurate information that can be given
  176. for server options, is in DGroup bytes used, not FSPs.
  177.  
  178.  
  179. Page 4             Copyright 1990 by Novell, Inc., Provo, Utah
  180.           
  181. DGroup Data Segment
  182. -------------------
  183.  
  184.  
  185.  
  186. The DGroup data segment is the most important segment of memory for the
  187. NetWare Operating System. It consists of a single 64K block of RAM, which
  188. cannot be changed due to the way in which pre-80386 Intel microprocessors
  189. segment RAM into 64K blocks. This 64K block of RAM exists (and is required
  190. in order for the Server to even operate) in the smallest of server
  191. configurations, as well as the largest. Adding or removing RAM does not
  192. affect this block at all. (Indeed this is RAM that is part of the "Minimum
  193. RAM required" specification of the NetWare OS.)
  194.  
  195. The DGroup data segment contains various integral components which serve
  196. as the heart of the NetWare OS. Briefly these components are, the Global
  197. Static Data area, the Process Stack area, the Volume and Monitor Table
  198. area, Dynamic Memory Pool 1, and the File Service Process Buffer area. The
  199. reasons that these components all reside within this 64K data segment are
  200. mostly for performance advantages. In past versions of NetWare, some
  201. components were removed from the DGroup Data segment in order to
  202. accommodate increased functionality as it was added to the OS. However,
  203. further removal of components from this area with the current version of
  204. the OS would necessitate major changes.
  205.  
  206. The Global Static Data area contains all the global variables defined in
  207. the NetWare OS. This area also contains all of the global variables defined
  208. by the LAN and disk, (or VADD), drivers.
  209.  
  210. The Process stacks area provides stack space for all of the various NetWare
  211. processes.
  212.  
  213. The Volume and Monitor tables contain information for the Monitor screen
  214. of the file server, as well as information on all of the disk volumes
  215. mounted on the server.
  216.  
  217. Dynamic Memory Pool 1 is used by virtually all NetWare processes and
  218. routines as either temporary or semi-permanent workspace.
  219.  
  220.  
  221.  
  222. Page 5             Copyright 1990 by Novell, Inc., Provo, Utah
  223.  
  224. DGroup Data Segment (continued)
  225. -------------------------------
  226.  
  227.  
  228.  
  229.  
  230. The File Service Process Buffers are the buffers where incoming File
  231. Service Packets are placed. An interesting side note is that File Service
  232. Processes are not a part of DGroup itself. However, the number of File
  233. Service Process Buffers directly determine how many File Service Processes
  234. are allocated.
  235.  
  236.  The following graphic illustrates the five components and their minimum
  237. to maximum RAM allocation:
  238.  
  239.  
  240. |===============================================================|
  241. |                                                               |
  242. |  Global Static Data:                             28-40 KB     |
  243. |                                                               |
  244. |===============================================================|
  245. |                                                               |
  246. |  Process Stacks:                                 7-11 KB      |
  247. |                                                               |
  248. |===============================================================|
  249. |                                                               |
  250. |  Volume & Monitor Tables:                        1-12 KB      |
  251. |                                                               |
  252. |===============================================================|
  253. |                                                               |
  254. |  Dynamic Memory Pool 1:                          16-21 KB     |
  255. |                                                               |
  256. |===============================================================|
  257. |                                                               |
  258. |  File Service Process Buffers:                   2-12 KB      |
  259. |                                                               |
  260. |===============================================================|
  261.  
  262.  
  263.  
  264. The following portion of the report will go into more detail on each one
  265. of these DGroup components.
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275. Page 6             Copyright 1990 by Novell, Inc., Provo, Utah
  276.           
  277.  
  278.  
  279.  
  280. |===============================================================|
  281. |                                                               |
  282. |  Global Static Data:                             28-40 KB     |
  283. |                                                               |
  284. |===============================================================|
  285.  
  286.  
  287.  
  288.  
  289. The Global Static Data Area is typically the largest single segment of
  290. DGroup allocated.
  291.  
  292.  The Global Static Data Area contains all of the global variables defined
  293. by the operating system code. This number has increased with not only each
  294. successive version of the OS, but for most revisions as well. A table of
  295. OS DGroup allocation is included for comparison.
  296.  
  297.  This area also contains all of the global variables defined in both the
  298. NetWare NIC Drivers and the Disk drivers. Tables for disk and NIC Driver
  299. DGroup allocations are also included.
  300.  
  301.  When loading multiple NIC Drivers, the variables are allocated in DGroup
  302. once for each NIC Driver. If the same NIC Driver is loaded twice, then the
  303. variables are allocated twice. For example if you configure two NE2000s
  304. into the OS, then the DGroup allocation is 812 bytes, (2 times 406 bytes).
  305.  
  306.  When loading multiple Disk drivers, the variables are also allocated in
  307. DGroup once for each Disk driver. However, if the same Disk driver is
  308. loaded multiple times, the variables are still only allocated once. For
  309. example if you configure the ISA disk driver and the Novell DCB driver into
  310. the OS, then the DGroup allocation is 292 plus 783, or 1075 bytes. However
  311. is you configure two Novell DCBs into the OS, then the DGroup allocation
  312. is only 783, and not 1566 bytes.
  313.  
  314.  The only user configurable options for this component of DGroup are what
  315. types and how many NIC and Disk drivers, will be loaded into the OS.
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324. Page 7             Copyright 1990 by Novell, Inc., Provo, Utah
  325.           
  326.  
  327.  
  328.  
  329. Operating System and Disk Driver DGroup Allocation Tables
  330. ---------------------------------------------------------
  331.  
  332.  
  333.  
  334. |===============================================================|
  335. |                                                               |
  336. |                       Operating System                        |
  337. |                                                               |
  338. |===============================================================|
  339. |                                                               |
  340. |                                                  DGroup       |
  341. |    Operating System                            Allocation     |
  342. |                                                               |
  343. |===============================================================|
  344. |                                                               |
  345. | Advanced NetWare v2.15                        28,454 Bytes    |
  346. | Advanced NetWare v2.15 (Non-Dedicated)        28,518 Bytes    |
  347. | SFT NetWare v2.15                             28,444 Bytes    |
  348. | SFT with TTS NetWare v2.15                    28,596 Bytes    |
  349. | Advanced NetWare v2.15c                       28,466 Bytes    |
  350. | Advanced NetWare v2.15c (Non-Dedicated)       28,530 Bytes    |
  351. | SFT NetWare v2.15c                            28,466 Bytes    |
  352. | SFT with TTS NetWare v2.15c                   28,608 Bytes    |
  353. |                                                               |
  354. |===============================================================|
  355.  
  356.  
  357.  
  358. |===============================================================|
  359. |                                                               |
  360. |                          Disk Drivers                         |
  361. |                                                               |
  362. |===============================================================|
  363. |                                                               |
  364. |                                                 DGroup        |
  365. |    Disk Drivers                               Allocation      |
  366. |                                                               |
  367. |===============================================================|
  368. |                                                               |
  369. | IBM AT hard disk controller                   170 Bytes       |
  370. | Novell Disk CoProcessor - AT                  783 Bytes       |
  371. | IBM PS/2 Model 30 286 MFM                     138 Bytes       |
  372. | IBM PS/2 MFM disk controller                  152 Bytes       |
  373. | IBM PS/2 ESDI disk controller                 180 Bytes       |
  374. | Industry Standard ISA or AT Controller        292 Bytes       |
  375. |                                                               |
  376. |===============================================================|
  377.  
  378.  
  379.  
  380.  
  381.  
  382. Page 8             Copyright 1990 by Novell, Inc., Provo, Utah
  383.           
  384.  
  385.  
  386.  
  387. NIC Driver DGroup Allocation Table
  388. ----------------------------------
  389.  
  390.  
  391. |===============================================================|
  392. |                                                               |
  393. |                  NIC Driver DGroup Allocation                 |
  394. |                                                               |
  395. |===============================================================|
  396. |                                               DGroup          |
  397. |     NIC Driver                              Allocation        |
  398. |===============================================================|
  399. | Ethernet                                                      |
  400. | Novell Ethernet NE1000                      301 Bytes         |
  401. | Novell Ethernet NE2000                      406 Bytes         |
  402. | Novell Ethernet NE/2                        356 Bytes         |
  403. | Novell Ethernet NE2000 W/AppleTalk          881 Bytes         |
  404. | Novell Ethernet NE/2 W/AppleTalk            837 Bytes         |
  405. | Micom-Interlan NP600                        243 Bytes         |
  406. | 3Com 3C501 EtherLink                        403 Bytes         |
  407. | 3Com 3C505 EtherLink Plus (2012)            405 Bytes         |
  408. | 3Com 3C505 EtherLink Plus (1194)            573 Bytes         |
  409. | 3Com 3C505 Etherlink Plus W/AppleTalk       798 Bytes         |
  410. | 3Com 3C503 EtherLink II                     388 Bytes         |
  411. | 3Com 3C523 EtherLink/MC                     258 Bytes         |
  412. |===============================================================|
  413. | Token Ring                                                    |
  414. | IBM Token-Ring                              644 Bytes         |
  415. | IBM Token-Ring Source Routing              3920 Bytes         |
  416. |===============================================================|
  417. | Arcnet                                                        |
  418. | Novell RX-Net                               256 Bytes         |
  419. | Novell RX-Net/2 -- SMC PS110                259 Bytes         |
  420. | SMC Arcnet/Pure Data                        256 Bytes         |
  421. |===============================================================|
  422. | Other Protocols                                               |
  423. | Novell NL1000 & NL/2 (AppleTalk)            108 Bytes         |
  424. | Novell Star Intelligent NIC                 160 Bytes         |
  425. | AT&T StarLAN                                103 Bytes         |
  426. | Corvus Omninet                              162 Bytes         |
  427. | IBM PC Cluster                             1044 Bytes         |
  428. | IBM PCN (Original Adapter)                  606 Bytes         |
  429. | IBM PCN II & Baseband                       696 Bytes         |
  430. | Gateway Communications Inc. G/NET           241 Bytes         |
  431. | Proteon ProNET-10 P1300/P1800               356 Bytes         |
  432. | Generic NetBIOS                            1526 Bytes         |
  433. | IBM Async (Com1/Com2)                      3203 Bytes         |
  434. | Async WNIM                                 9942 Bytes         |
  435. | Telebit P.E.P. Modem/WNIM                  9952 Bytes         |
  436. |===============================================================|
  437.  
  438.  
  439.  
  440. Page 9             Copyright 1990 by Novell, Inc., Provo, Utah
  441.           
  442.  
  443.  
  444.  
  445. |===============================================================|
  446. |                                                               |
  447. |  Process Stacks:                                 7-11 KB      |
  448. |                                                               |
  449. |===============================================================|
  450.  
  451.  
  452.  
  453.  
  454. There is a stack area allocated for each NetWare Server process. Each of
  455. the stacks range from 80 to 1000 bytes. The following are the stack space
  456. requirements for the NetWare processes:
  457.  
  458.  
  459.  
  460.  
  461. |===============================================================|
  462. |                                                               |
  463. | Standard Operating System processes:            7136 bytes    |
  464. |                                                               |
  465. | TTS Stack:                                       250 bytes    |
  466. |                                                               |
  467. | Print Spooler Stack:                             668 bytes    |
  468. | (This is allocated once for                                   |
  469. |  each port spooled in Netgen)                                 |
  470. |                                                               |
  471. |===============================================================|
  472.  
  473.  
  474.  
  475.  
  476. Note that the print spooler stacks are created for a spooled port that is
  477. defined in Netgen. Print servers and / or print queues do not impact FSP
  478. allocation.
  479.  
  480.  The only user configurable options for this component of DGroup are
  481. loading TTS and configuring spooled ports in Netgen.
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495. Page 10            Copyright 1990 by Novell, Inc., Provo, Utah
  496.           
  497.  
  498.  
  499. |===============================================================|
  500. |                                                               |
  501. |  Volume & Monitor Tables:                        1-12 KB      |
  502. |                                                               |
  503. |===============================================================|
  504.  
  505.  
  506. The Monitor table is used by the console to store information required to
  507. display the Monitor screen. This table size is fixed, not configurable.
  508.  
  509.  
  510. |===============================================================|
  511. |                                                               |
  512. | Monitor Table Size:                              84 bytes     |
  513. |                                                               |
  514. |===============================================================|
  515.  
  516.  The Volume table is used to maintain information on each of the disk
  517. volumes mounted on the server. The size of memory allocated for this table
  518. is dependent on the size of the mounted volumes, as well as the amount of
  519. directory entries allocated in Netgen. Therefore this is the user
  520. configurable portion of this DGroup component.
  521.  
  522.  Please note that mounted volume size is used for these tables and
  523. therefore mirrored drives are not counted twice. The following is the
  524. Volume table memory requirements:
  525.  
  526.  
  527. |===============================================================|
  528. |                                                               |
  529. | For each volume mounted on the server:          84    bytes   |
  530. |                                                               |
  531. | For each MB of disk space mounted:               1.75 bytes   |
  532. | (This number is rounded to                                    |
  533. |  the next highest integer.)                                   |
  534. |                                                               |
  535. | For each 18 directory entries on all volumes:    1    byte    |
  536. | (This number is rounded to                                    |
  537. |  the next highest integer.)                                   |
  538. |                                                               |
  539. |===============================================================|
  540.  
  541.  For example, if you had a server with only one volume (SYS:) mounted, with
  542. a size of 145mb and 9600 directory entries, the Volume and Monitor Tables
  543. would require (1*84) + (145*1.75) + (9600/18) + 84 bytes of DGroup memory,
  544. or 956 bytes (rounded up).
  545.  
  546.  Page 11            Copyright 1990 by Novell, Inc., Provo, Utah            
  547.  
  548.  
  549.  
  550. |===============================================================|
  551. |                                                               |
  552. |  Dynamic Memory Pool 1:                          16-21KB      |
  553. |                                                               |
  554. |===============================================================|
  555.  
  556.  
  557.  
  558.  
  559. Dynamic Memory Pool 1 is used by virtually all NetWare processes and
  560. routines as temporary workspace. Workspace from 2 to 1024 bytes, with 128
  561. being the average, is allocated to a NetWare process. It is then used then
  562. recovered upon completion.
  563.  
  564.  Additionally, there are several NetWare processes and routines that hold
  565. memory allocated out of DMP 1, either on a semi- permanent basis, or until
  566. the process or routine finishes. A table of these semi-permanent DMP 1
  567. allocations is included.
  568.  
  569.  If there is no Dynamic Memory Pool 1 RAM available for a process or
  570. routine, the workstation will likely display "Network Error: out of dynamic
  571. workspace during <operation>", where <operation> refers to the name of the
  572. DOS call that was being tried. In some instances, with some versions of the
  573. OS, running out of DMP 1 RAM can cause print jobs to either disappear
  574. (until more DMP 1 RAM is freed) or be lost completely. It has also been
  575. reported that under some earlier versions of NetWare 286, running out of
  576. DMP 1 RAM can cause the server to lock up without displaying an ABEND error
  577. message.
  578.  
  579.  Please note that references to Dynamic Workspace in an error message can
  580. refer to the unavailability of RAM in either Dynamic Memory Pools 1, 2 or
  581. 3. Use the FCONSOLE => Summary => Statistics screen to determine the exact
  582. memory pool involved.
  583.  
  584.  Based upon the way in which DMP 1 is allocated, it is very difficult to
  585. manipulate the size of this pool. Therefore the major user configurable
  586. options for this DGroup component are in the semi-permanent DMP 1
  587. allocations.
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596. Page 12            Copyright 1990 by Novell, Inc., Provo, Utah
  597.           
  598.  
  599.  
  600.  
  601. |===============================================================|
  602. |                                                               |
  603. |       Semi-Permanent Dynamic Memory Pool 1 Allocations:       |
  604. |                                                               |
  605. |===============================================================|
  606. |                                                               |
  607. | Drive Mappings                  14 bytes per map assignment,  |
  608. |                                    per workstation            |
  609. |                                                               |
  610. |*Additional Drive information    612 bytes per physical drive  |
  611. |                                                               |
  612. |*Process Control Blocks          28 bytes each (30 allocated   |
  613. |                                    initially)                 |
  614. |                                                               |
  615. |*Semaphores                      6 bytes each (40 allocated    |
  616. |                                    initially)                 |
  617. |                                                               |
  618. | Auto Remirror Queue             4 bytes per drive to be       |
  619. |                                    remirrored                 |
  620. |                                                               |
  621. | Apple MAC file support          4 bytes per open MAC file     |
  622. |                                                               |
  623. | Workstation support             8 bytes per logged in         |
  624. |                                    workstation                |
  625. |                                                               |
  626. |*Disk Storage Tracking Process   960 bytes (if Accounting is   |
  627. |                                    enabled)                   |
  628. |                                                               |
  629. | Spool Queue entries             44 bytes per spooled print    |
  630. |                                    job                        |
  631. |                                                               |
  632. | Queue Management System         28 bytes per queue            |
  633. |                                                               |
  634. | QMS Queue servers               5 bytes per queue server up   |
  635. |                                    to a maximum of 25 queue   |
  636. |                                    servers                    |
  637. |                                                               |
  638. |*Volume Names                    up to 16 bytes per mounted    |
  639. |                                    volume                     |
  640. |                                                               |
  641. |*VAPs                            128 bytes per VAP, for stack  |
  642. |                                    space                      |
  643. |                                                               |
  644. |===============================================================|
  645.  
  646.  
  647. Please note that the DMP 1 allocations marked with an asterisk* are, in
  648. practical terms, permanent allocations.
  649.  
  650.  
  651.  
  652.  
  653.  
  654. Page 13            Copyright 1990 by Novell, Inc., Provo, Utah
  655.           
  656.  
  657.  
  658.  
  659. |===============================================================|
  660. |                                                               |
  661. |  File Service Process Buffers:                   2-12 KB      |
  662. |                                                               |
  663. |===============================================================|
  664.  
  665.  
  666.  
  667.  
  668. The File Service Process buffers are the buffers allocated in DGroup for
  669. incoming File Service Request Packets. The number of FSP buffers available
  670. directly determines how many FSPs your server will have, in a one to one
  671. relationship. If you have 4 FSP buffers available, then you will have 4
  672. FSPs. The maximum FSPs available for any server configuration is 10.
  673.  
  674.  The following is the breakdown of memory requirements, for each File
  675. Service Process buffer:
  676.  
  677.  
  678. |===============================================================|
  679. |                                                               |
  680. | Reply buffer                                      94 bytes    |
  681. | Workspace                                        106 bytes    |
  682. | Stack space                                      768 bytes    |
  683. | Receive buffer                              512-4096 bytes    |
  684. |                                                               |
  685. |===============================================================|
  686.  
  687.  The total size of the FSP buffer is dependent upon the largest packet size
  688. of any NIC Driver installed in the File Server. The exact packet size
  689. constitutes the receive buffer portion of the FSP buffer.
  690.  
  691.  As an example, if you have configured an Ethernet driver with a packet
  692. size of 1024 bytes, and an Arcnet driver using 4096 byte packets, then the
  693. FSP buffers for this server will be 5064 bytes, (4096 + 768 + 106 + 94).
  694. This provides ample evidence that configuring a server with NIC drivers of
  695. varied packet sizes can be very inefficient. If at all possible, moving
  696. different NIC drivers to external bridges can remedy this situation.
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705. Page 14            Copyright 1990 by Novell, Inc., Provo, Utah
  706.           
  707.  
  708.  
  709. Additional File Service Process Buffer RAM
  710. ------------------------------------------
  711.  
  712.  
  713. |===============================================================|
  714. |                                                               |
  715. | Additional Reply buffer                           94 bytes    |
  716. | Memory Set aside for DMA workaround           0-4095 bytes    |
  717. |                                                               |
  718. |===============================================================|
  719.  
  720.  
  721. Additionally, there is a one time allocation of a single additional reply
  722. buffer of 94 bytes. Lastly, if any NIC driver configured into the OS,
  723. supports DMA access, there may be additional memory that will be set aside,
  724. (unused).
  725.  
  726.  The problem is due to the fact that in some PCs, the DMA chip cannot
  727. handle addresses correctly across physical 64K RAM boundaries. Therefore,
  728. if the receive buffer of a FSP buffer straddles a physical 64K RAM
  729. boundary, then the OS will skip the memory (depending on the size of the
  730. receive buffer it could be 0-4095 bytes) and not use it. This problem can
  731. be erased by changing to a non-DMA NIC. It is also conceivable that
  732. changing the Volume Tables can shift the data structures enough to allow
  733. for no straddling. The following graphic depicts this workaround.
  734.  
  735.  
  736. |===============================================================|
  737. |   ----------   |            |                                 |
  738. |  |  Global  |  |            |                                 |
  739. |  |  Static  |  |            |                                 |
  740. |  |   Data   |  |            |                                 |
  741. |   ----------   |  Physical  |                                 |
  742. |  | Process  |  |            |                                 |
  743. |  |  Stacks  |  |   Block    |                                 |
  744. |   ----------   |            |                                 |
  745. |  | Volume/  |  |    64K     |                                 |
  746. |  | Monitor  |  |            |                                 |
  747. |  | Tables   |  |    RAM     |                                 |
  748. |   ----------   |            |                                 |
  749. |  |  DMP 1   |  |            |          Unused RAM,            |
  750. |   ---------- --|------------|--------\ skipped for DMA        |
  751. |  |   FSP    |---============---------/ workaround, if less    |
  752. |  | Buffers  |   ============           than a complete        |
  753. |   ----------   |  Physical  |          receive buffer         |
  754. |                |   Block    |                                 |
  755. |                |    64K     |                                 |
  756. |                |    RAM     |                                 |
  757. |===============================================================|
  758.  
  759.  Page 15            Copyright 1990 by Novell, Inc., Provo, Utah            
  760.  
  761. |===============================================================|
  762. |                                                               |
  763. |       NIC Driver Packet and DGroup Buffer Sizes (bytes)       |
  764. |                                                               |
  765. |===============================================================|
  766. |                                    Max.Packet  DGroup   H/W   |
  767. |         NIC Driver                    Size     Buffer   DMA   |
  768. |===============================================================|
  769. | Ethernet                                                      |
  770. | Novell Ethernet NE1000                1024      1992     No   |
  771. | Novell Ethernet NE2000                1024      1992     No   |
  772. | Novell Ethernet NE/2                  1024      1992     No   |
  773. | Novell Ethernet NE2000 W/AppleTalk    1024      1992     No   |
  774. | Novell Ethernet NE/2 W/AppleTalk      1024      1992     No   |
  775. | Micom-Interlan NP600                  1024      1992    Yes   |
  776. | 3Com 3C501 EtherLink                  1024      1992     No   |
  777. | 3Com 3C505 EtherLink Plus (2012)      1024      1992    Yes   |
  778. | 3Com 3C505 EtherLink Plus (1194)      1024      1992    Yes   |
  779. | 3Com 3C505 ELink Plus W/AppleTalk     1024      1992    Yes   |
  780. | 3Com 3C503 EtherLink II               1024      1992    Yes   |
  781. | 3Com 3C523 EtherLink/MC               1024      1992     No   |
  782. |===============================================================|
  783. | Token Ring                                                    |
  784. | IBM Token-Ring                        1024      1992     No   |
  785. | IBM Token-Ring Source Routing         1024      1992     No   |
  786. |===============================================================|
  787. | Arcnet                                                        |
  788. | Novell RX-Net                          512      1480     No   |
  789. | Novell RX-Net/2 -- SMC PS110           512      1480     No   |
  790. | SMC Arcnet/Pure Data                   512      1480     No   |
  791. |===============================================================|
  792. | Other Protocols                                               |
  793. | Novell NL1000 & NL/2 (AppleTalk)      1024      1992     No   |
  794. | Novell Star Intelligent NIC            512      1480     No   |
  795. | AT&T StarLAN                           512      1480     No   |
  796. | Corvus Omninet                         512      1480     No   |
  797. | IBM PC Cluster                         512      1480     No   |
  798. | IBM PCN (Original Adapter)            1024      1992    Yes   |
  799. | IBM PCN II & Baseband                 1024      1992     No   |
  800. | Gateway Communications Inc. G/NET     1024      1992     No   |
  801. | Proteon ProNET-10 P1300/P1800         1024      1992     No   |
  802. | Generic NetBIOS                       2048      3016     No   |
  803. | IBM Async (Com1/Com2)                  512      1480     No   |
  804. | Async WNIM                             512      1480     No   |
  805. | Telebit P.E.P. Modem/WNIM              512      1480     No   |
  806. |===============================================================|
  807.  
  808.  The following tables show various NIC Drivers and their Packet and FSP
  809. Buffer sizes, and whether or not they use DMA. Following tables will show
  810. the exact steps in allocating DGroup RAM, as well as the biggest impacters
  811. on DGroup RAM allocation and some steps for alleviating FSP shortages.
  812.  
  813.  Page 16            Copyright 1990 by Novell, Inc., Provo, Utah            
  814.  
  815.  
  816. |===============================================================|
  817. |                                                               |
  818. |                DGroup RAM Allocation Process                  |
  819. |                                                               |
  820. |===============================================================|
  821. |                                                               |
  822. | The following is the step by step process of allocating       |
  823. | RAM in Dgroup:                                                |
  824. |                                                               |
  825. | 1) The OS first allocates the Global Static Data Area of      |
  826. |    DGroup. This includes OS, NIC, and Disk variables.         |
  827. |                                                               |
  828. | 2) The Process Stacks are allocated next.                     |
  829. |                                                               |
  830. | 3) The Volume and Monitor tables are next allocated.          |
  831. |                                                               |
  832. | 4) 16KB is set aside for Dynamic Memory Pool 1.               |
  833. |                                                               |
  834. | 5) The remaining DGroup RAM is used to set up File Service    |
  835. |    Process buffers.                                           |
  836. |                                                               |
  837. | 6) First 94 bytes is set aside as an additional reply buffer. |
  838. |                                                               |
  839. | 7) Next 0-4095 bytes may be set aside, (unused), if any       |
  840. |    installed NIC Driver supports DMA.                         |
  841. |                                                               |
  842. | 8) Then the remaining RAM is divided by the total FSP buffer  |
  843. |    size up to a maximum of 10.                                |
  844. |                                                               |
  845. | 9) The remainder DGroup RAM that could not be evenly made     |
  846. |    into a FSP buffer is added to Dynamic Memory Pool 1.       |
  847. |                                                               |
  848. |===============================================================|
  849.  
  850.  A server configured with a NE2000 NIC and a SMC Arcnet NIC, (using the
  851. Novell driver), would require a FSP buffer size of 1992 which is the FSP
  852. buffer size of the larger packet size NIC, (the NE2000 has a 1024 byte
  853. packet size as opposed to the 512 byte packet size of the Arcnet card).
  854.  
  855.  If after allocating all the prior DGroup data structures, there remained
  856. 7500 bytes of DGroup available for FSP buffers the allocation would be as
  857. follows: Subtract 94 bytes from the 7500 for the one additional reply
  858. buffer, divide the remainder by the 1992 FSP buffer size, giving 3 FSP
  859. buffers and a remainder of 1430 to be added to Dynamic Memory Pool 1. The
  860. following is the computation:
  861.  
  862.  (7500 - 94) / 1992 = 3 with remainder of 1430
  863.  
  864.  Page 17            Copyright 1990 by Novell, Inc., Provo, Utah            
  865.  
  866.  
  867.  
  868. DGroup RAM Allocation Process (continued)
  869. -----------------------------------------
  870.  
  871.  
  872.  
  873.  
  874. Once understanding this process it becomes very easy to see how close any
  875. particular server is to gaining another FSP.
  876.  
  877.  
  878. |===============================================================|
  879. |                                                               |
  880. | 1) First, figure out the FSP buffer size.                     |
  881. |                                                               |
  882. | 2) Next take the Maximum RAM in Dynamic Memory Pool 1, and    |
  883. |    subtract it from 16384 bytes.                              |
  884. |    (the fixed size of DMP 1)                                  |
  885. |                                                               |
  886. | 3) Lastly subtract that difference from the FSP buffer size.  |
  887. |                                                               |
  888. |    That amount is how many bytes short that server            |
  889. |    configuration is from gaining an additional FSP.           |
  890. |                                                               |
  891. |===============================================================|
  892.  
  893.  For example, if the server configuration had a 1992 FSP buffer size, and
  894. the maximum DMP 1 was 16804, then you could figure out that in order to
  895. gain an additional FSP, you would have to free up an additional 1572 bytes
  896. of DGroup. The following is the computation:
  897.  
  898.  1992 - (16804 - 16384) = 1572
  899.  
  900.  Two solutions for this configuration, would be to remove three spooled
  901. printer ports, or reduce directory entries by 28296. Either of these would
  902. free up the necessary DGroup RAM.
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917. Page 18            Copyright 1990 by Novell, Inc., Provo, Utah
  918.           
  919.  
  920.  
  921.  
  922. Troubleshooting
  923. ---------------
  924.  
  925.  
  926.  
  927.  
  928. |===============================================================|
  929. |                                                               |
  930. |                       Troubleshooting                         |
  931. |                                                               |
  932. |===============================================================|
  933. |                                                               |
  934. |  The following are the biggest impacters on DGroup RAM        |
  935. |  allocation, in order of importance:                          |
  936. |                                                               |
  937. |===============================================================|
  938. |                                                               |
  939. | 1) NIC Driver Packet Size                                     |
  940. |                                                               |
  941. | 2) Amount of Disk space mounted and                           |
  942. |    Directory Entries allocated                                |
  943. |                                                               |
  944. | 3) LAN and Disk driver Global variables                       |
  945. |                                                               |
  946. | 4) Possible DMA compatibility allowances,                     |
  947. |    (if the NIC Driver uses DMA)                               |
  948. |                                                               |
  949. | 5) Spooled Ports defined in Netgen                            |
  950. |                                                               |
  951. | 6) TTS                                                        |
  952. |                                                               |
  953. |===============================================================|
  954.  
  955.  
  956.  
  957. The following is the methodology used to define this list:
  958.  
  959.  1) The NIC Driver packet size has the most significant impact on the
  960. allocation of FSPs, due to the fact that this determines what divisor is
  961. used to allocate FSP buffers. The larger the packet size, the larger the
  962. FSP buffer, and the smaller the amount of FSPs.
  963.  
  964.  2) Larger disk configurations this can conceivably have the second largest
  965. impact on DGroup RAM allocation. Mounting a single volume of 2GB with
  966. 10,000 dir entries would require 13584 bytes of DGroup RAM alone.
  967.  
  968.  
  969.  
  970.  
  971. Page 19            Copyright 1990 by Novell, Inc., Provo, Utah
  972.           
  973.  
  974.  
  975.  
  976. Troubleshooting (continued)
  977. ---------------------------
  978.  
  979.  
  980.  
  981.  
  982. 3) These NIC and Disk variables can be significant in size. The Async WNIM
  983. driver alone requires 9942 bytes of DGroup RAM.
  984.  
  985.  4) The maximum DGroup RAM lost to this workaround is 4095 bytes.
  986.  
  987.  5) The maximum DGroup RAM that can be allocated to print spooler stacks
  988. is 3340 bytes.
  989.  
  990.  6) The TTS process stack uses 250 bytes of DGroup RAM. Also additional
  991. Global Static Data variables for TTS can run from 142 to 152 additional
  992. bytes.
  993.  
  994.  
  995. Page 20            Copyright 1990 by Novell, Inc., Provo, Utah
  996.           
  997.  
  998.  
  999.  
  1000. Troubleshooting (continued)
  1001. ---------------------------
  1002.  
  1003.  
  1004.  
  1005.  
  1006. |===============================================================|
  1007. |                                                               |
  1008. |                DGroup RAM Management Methods                  |
  1009. |                                                               |
  1010. |===============================================================|
  1011. |                                                               |
  1012. | 1) Remove TTS (If Possible)                                   |
  1013. |                                                               |
  1014. | 2) Remove Printers in Netgen (Possibly to Print Servers)      |
  1015. |                                                               |
  1016. | 3) Decrease Directory Entries                                 |
  1017. |                                                               |
  1018. |    WARNING: Before decreasing directory entries, please read  |
  1019. |             the Directory Entries information in the next     |
  1020. |             section. If you incorrectly reduce your directory |
  1021. |             entries, it is possible that you will lose files. |
  1022. |                                                               |
  1023. | 4) Change NIC Drivers to non-DMA ones                         |
  1024. |    (If current drivers use DMA)                               |
  1025. |                                                               |
  1026. | 5) Decrease NIC Driver Packet size                            |
  1027. |    (Or move large packet drivers to bridge)                   |
  1028. |                                                               |
  1029. | 6) Decrease Disk space                                        |
  1030. |                                                               |
  1031. | 7) Use Dynamic Memory Pool 1 patch for qualified servers      |
  1032. |                                                               |
  1033. |===============================================================|
  1034.  
  1035.  
  1036. The order used in this list was an attempt to minimize the impact these
  1037. changes would have on a given server. It goes without saying that some of
  1038. these changes will be impossible for certain configurations. For example
  1039. if you are using a TTS database system on your system, removing TTS does
  1040. not become an option. Likewise removing spooled printers from your server
  1041. may be prohibitive or impossible.
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052. Page 21            Copyright 1990 by Novell, Inc., Provo, Utah
  1053.           
  1054.  
  1055.  
  1056.  
  1057. Directory Entries
  1058. -----------------
  1059.  
  1060.  
  1061. When a 286-based NetWare server sets up a directory entry block based upon
  1062. the amount of directory entries defined in Netgen, it allocates that as one
  1063. block. As directory entries are used up ( by files, directories, and
  1064. trustee privileges ), the block is filled up more or less sequentially. As
  1065. the directory entry block is filled, NetWare keeps track of the peak
  1066. directory entry used. This is the highest number entry used in the
  1067. directory entry block.
  1068.  
  1069.  However, directory entries are added sequentially only as long as prior
  1070. directory entries are not deleted. When directory entries are deleted
  1071. "holes" in the directory entry block are created that are filled by
  1072. subsequent new directory entries.
  1073.  
  1074.  
  1075. |===============================================================|
  1076. |                                                               |
  1077. |                         -----------                           |
  1078. |       New Server       |           |                          |
  1079. |       Directory        |           |                          |
  1080. |       Entry Block      |   Used    |                          |
  1081. |       -----------      |  Entries  |                          |
  1082. |                        |           |                          |
  1083. |                        |           |                          |
  1084. |                    /---|-----------|--- Peak Directory        |
  1085. |     Total         /    |           |    Entries Used          |
  1086. |     Free      ---|     |   Free    |                          |
  1087. |     Directory ---|     |  Entries  |                          |
  1088. |     Entries       \    |           |                          |
  1089. |                    \--- -----------                           |
  1090. |                                                               |
  1091. |   Used Server       -----------  -------------------          |
  1092. |   Directory        |           |                    |         |
  1093. |   Entry Block      |   Used    |                    |"Live"   |
  1094. |   -----------      |           |                    | Block   |
  1095. |                /---|-----------|--\  Deleted Files  |-of      |
  1096. |              --    |   Free    |   - Directory      | Dir.    |
  1097. |  Total      |  \---|-----------|--/  Entries        | Entries |
  1098. |  Free      -|      |   Used    |                    |         |
  1099. |  Directory -|  /---|-----------|--- Peak Directory--          |
  1100. |  Entries    | /    |           |    Entries Used              |
  1101. |              -     |   Free    |                              |
  1102. |               \    |           |                              |
  1103. |                \--- -----------                               |
  1104. |                                                               |
  1105. |===============================================================|
  1106.  
  1107.  Page 22            Copyright 1990 by Novell, Inc., Provo, Utah            
  1108.  
  1109.  
  1110.  
  1111. Directory Entries
  1112. -----------------
  1113.  
  1114.  
  1115.  
  1116. This directory entry block fragmentation is not defragmented either under
  1117. NetWare, or after running VREPAIR. To compute the amount of directory block
  1118. fragmentation perform the following steps:
  1119.  
  1120.  1) Pull up the FCONSOLE => Statistics => Volume Information => (select a
  1121. volume) screen.
  1122.  
  1123.  2) Take the Maximum Directory Entries number and subtract the Peak
  1124. Directory Entries Used number from it. This is the number of free directory
  1125. entries that can be safely manipulated via Netgen, without loss of files.
  1126.  
  1127.  3) Next take the Current Free Directory Entries number and subtract the
  1128. number from (2) from it. This number is the amount of free directory
  1129. entries that are inside your "live" block of directory entries. This number
  1130. indicates how much fragmentation of your directory block exists. The higher
  1131. proportion of free directory entries you have inside your "live" block of
  1132. directory entries (the number from (3)) to the ones you have outside your
  1133. "live" block (the number from (2)), represent a more fragmented directory
  1134. block.
  1135.  
  1136.  When you down a server and run Netgen, in order to reduce directory
  1137. entries, the directory entry block is simply truncated to the new number.
  1138. Netgen does not check to see if directory entries that are about to be
  1139. deleted, are in use. If you have a fragmented directory block, and you
  1140. reduce the directory entry block based upon the amount of free directory
  1141. entries you have available, it is entirely likely that you will be deleting
  1142. directory entries that are in use.
  1143.  
  1144.  This will cause files, directories, and trustee privileges that were
  1145. defined in those directory entries to be lost. Running VREPAIR will salvage
  1146. the files and some of the directory structure, but will save most files in
  1147. the root directory with names that are created by VREPAIR. These names are
  1148. typically something like VF000000.000. For a more complete description of
  1149. the operation of VREPAIR, consult section 8 in the SFT/Advanced NetWare 286
  1150. Maintenance manual.
  1151.  
  1152.  Page 23            Copyright 1990 by Novell, Inc., Provo, Utah            
  1153.  
  1154.  
  1155.  
  1156. Directory Entries
  1157. -----------------
  1158.  
  1159.  
  1160. The only safe number to use, in determining how much you can reduce your
  1161. directory entries by, is your Peak Directory Entries Used number. You can
  1162. reduce your total directory entries to near this number, without loss of
  1163. files. Please note that you can quickly calculate if manipulating the
  1164. directory entries will buy your server any FSPs. You should do this by
  1165. checking your Maximum Directory Entries number against your Peak Directory
  1166. Entries Used number. The difference between these two represent the amount
  1167. of directory entries you can manipulate. You can then calculate if reducing
  1168. this number can aid your FSP situation.
  1169.  
  1170.  If you recognize that you have a significant amount of directory block
  1171. fragmentation, you can elect to defragment it using the following method:
  1172.  
  1173.  1) Make a complete backup of the volume(s) whose directory entry block you
  1174. wish to defragment.
  1175.  
  1176.  2) Make note of how many directory entry blocks you have USED.
  1177.  
  1178. Do this by rerunning FCONSOLE and selecting the Statistics => Volume
  1179. Information => (select a volume) screen. Next take the amount of Maximum
  1180. Directory Entries and subtract the number of Current Free Directory
  1181. Entries, from it. This is the number of directory entries that you have
  1182. used, and need in order to restore all of your volume.
  1183.  
  1184. You should now calculate how many total directory entries you wish to have.
  1185. If you do not have a set number in mind, taking this number of used
  1186. directory entries and adding half again to it, is a good start. An example
  1187. is that if you have used 6000 directory entries, allocating 9000 is a good
  1188. start.
  1189.  
  1190.  3) Down the server and rerun Netgen.
  1191.  
  1192.  4) Reinitialize the selected volume(s).
  1193.  
  1194.  5) Reset the number of directory entries to the number you calculated you
  1195. needed from (2).
  1196.  
  1197.  Page 24            Copyright 1990 by Novell, Inc., Provo, Utah            
  1198.  
  1199.  
  1200.  
  1201. Dynamic Memory Pool 1 Patch
  1202. ---------------------------
  1203.  
  1204.  
  1205.  
  1206. Finally, be aware that Novell has a patch fix for some FSP starved server
  1207. configurations. This patch has been available through LANSWER technical
  1208. support for qualified configurations. This is the only Novell supported
  1209. method for distributing this patch. This patch also appears to be available
  1210. from other sources in an unsupported fashion, however warnings should
  1211. precede its use.
  1212.  
  1213.  The patch consists of three files, a general purpose debug type program
  1214. called PATCH.EXE, a patch file to be used with the PATCH.EXE program, and
  1215. a README file. The instructions for the PATCH program are listed on the
  1216. following page. The basic way in which the patch program works is to take
  1217. the patch instruction file and patch the specified file. The patch
  1218. instruction file consists of three lines, a pattern line, an offset, and
  1219. a patch line, in that order. The following is the Novell supplied patch
  1220. instruction file called SERVPROC.
  1221.  
  1222.  
  1223. |===============================================================|
  1224. |                                                               |
  1225. |        Novell Dynamic Memory Pool 1 Patch Instructions        |
  1226. |                                                               |
  1227. |===============================================================|
  1228. |                                                               |
  1229. |                         8B E0 05 00 1F                        |
  1230. |                         4                                     |
  1231. |                         08                                    |
  1232. |                                                               |
  1233. |===============================================================|
  1234.  
  1235.  This means that the patch program will search the specified file, (one of
  1236. the OS .OBJ files), for the pattern 8B E0 05 00 1F, and will replace the
  1237. byte 1F with 08. (You can read the PATCH program instructions for a further
  1238. explanation of the PATCH program, by simply running the PATCH.EXE program
  1239. without any parameters.)
  1240.  
  1241.  What this does is to change a portion of the fixed size of Dynamic Memory
  1242. Pool 1. The 1F bytes represents a fixed size of this portion of DMP 1 of
  1243. 7936 bytes or 1F00h. What the patch program then does is change that byte
  1244. to 08 or 800h, or 2048 bytes. This change means that DMP 1 will be reduced
  1245. approximately 5888 bytes or 5.75K. (7936 - 2048 = 5888)
  1246.  
  1247.  Page 25            Copyright 1990 by Novell, Inc., Provo, Utah            
  1248.  
  1249.  
  1250.  
  1251. Dynamic Memory Pool 1 Patch
  1252. ---------------------------
  1253.  
  1254.  
  1255.  
  1256.  
  1257. Understanding the operation of the patch can allow the number of bytes that
  1258. DMP 1 is reduced by, to be changed. In other words you can use any value
  1259. beginning at 1F and decreasing to 00, in the patch line of the patch
  1260. instruction file. This will decrease DMP 1 in 256 byte increments as
  1261. follows:
  1262.  
  1263.  
  1264. 1E       Decrease DMP 1 by 256 bytes
  1265. 1D       Decrease DMP 1 by 512 bytes
  1266. 1C       Decrease DMP 1 by 768 bytes
  1267. 1B       Decrease DMP 1 by 1024 bytes
  1268. ...
  1269. 08       Decrease DMP 1 by 5888 bytes
  1270. ...
  1271. 00       Decrease DMP 1 by 7936 bytes
  1272.  
  1273.  Remember that in actuality, the hex number you are changing is the two
  1274. digit hex number above followed by 00. In the first case you will be
  1275. patching the number 1F00h (the original value) to 1E00h. Subtracting the
  1276. two gets you the difference of 256 bytes. It is also conceivable that the
  1277. patch can be used in this manner to increase the fixed size of this portion
  1278. of DMP 1. You could increase this fixed size by using numbers greater than
  1279. 1F. You would again be increasing this fixed size in 256 byte increments
  1280. for every single number increment above 1F.
  1281.  
  1282.  It is strongly recommended that you do not alter the patch line numbers
  1283. in an effort to provide a quick fix to your server. If you have not
  1284. performed the DGroup RAM calculations, and you do not know exactly what you
  1285. are gaining in FSPs, and losing in DMP 1, you should not be altering the
  1286. patch. You should also be aware that in some configurations, if you are not
  1287. reducing DMP 1 by a at least one FSP buffer size, you will not be gaining
  1288. any additional FSPs.
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299. Page 26            Copyright 1990 by Novell, Inc., Provo, Utah
  1300.           
  1301.  
  1302.  
  1303.  
  1304. Dynamic Memory Pool 1 Patch
  1305. ---------------------------
  1306.  
  1307.  
  1308.  
  1309.  
  1310. The current patch value of 08 was arrived at because it will provide the
  1311. following FSP gains in a minimum to maximum range of FSPs:
  1312.  
  1313.  
  1314. 512K Packet NIC Drivers            3-4 Additional FSPs
  1315. 1024K Packet NIC Drivers           2-3 Additional FSPs
  1316. 2048K Packet NIC Drivers           1-2 Additional FSPs
  1317. 4096K Packet NIC Drivers           1-2 Additional FSPs
  1318.  
  1319.  The warnings for use of this patch should be self evident by now. If you
  1320. run short of Dynamic Memory Pool 1 you will get erratic and sometimes fatal
  1321. behavior of your server. Also altering the patch numbers is not a
  1322. guaranteed or supported function of the patch. These numbers and this
  1323. explanation, were arrived at based upon understanding how the patch works,
  1324. and then performing the calculations. If you feel the need to use the
  1325. patch, you should use it as it is supplied.
  1326.  
  1327.  What LANSWER will do prior to sending a user the patch, is guarantee that
  1328. the peak used of Dynamic Memory Pool 1 is at least 6K greater than the
  1329. maximum allocated. If you receive the patch through other means you should,
  1330. at the minimum, check those numbers yourself.
  1331.  
  1332.  Due to the nature of these types of fixes, ones which patch the operating
  1333. system, it is always recommended that you try all prior means of curing a
  1334. FSP starved server, before resorting to this type of patch.
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350. Page 27            Copyright 1990 by Novell, Inc., Provo, Utah
  1351.           
  1352.  
  1353.  
  1354.  
  1355. Final Notes
  1356. -----------
  1357.  
  1358.  
  1359.  
  1360.  
  1361. 286-Based NetWare v2.1x was designed along the principal of enhanced client
  1362. server computing being the foundation of future computer networking.
  1363. Therefore technologies such as a non- preemptive server OS, disk mirroring,
  1364. transaction tracking, and hardware independence, all implemented with
  1365. exceptional speed and security, formed the basis of the technology and
  1366. design that went into 286-based NetWare. The fact that almost all other
  1367. current network implementations are now borrowing heavily from these ideas,
  1368. matter little. The additional fact that more and more users are placing
  1369. larger amounts of computer resources into their NetWare LANs only reaffirms
  1370. the sound concepts behind the design. However, as with any design,
  1371. limitations define the playing field.
  1372.  
  1373.  One conclusion that can be drawn from this report is echoed on the final
  1374. page of the SFT NetWare 286 In-Depth Product Definition:
  1375.  
  1376.  "*NOTE:   Maximums listed are individual limits. You will not be able to
  1377. use these specifications at maximum levels at all times. You may have to
  1378. purchase additional hardware to achieve some of these maximums."
  1379.  
  1380.  After understanding the relationship between DGroup RAM allocation, the
  1381. separate DGroup RAM components, and File Service Processes, it becomes
  1382. evident that as an example, setting up an Advanced NetWare 286 server with
  1383. 100 workstations, 2GB of disk space, and four NICs, becomes inadvisable if
  1384. at all possible. Many of the limitations for this type of configuration can
  1385. be largely attributed to many of the current hardware limitations.
  1386.  
  1387.  NetWare design technologies remain firmly focused at furthering network
  1388. computing. NetWare 386 is the next logical design step. The fact is that
  1389. NetWare 386 introduces a completely new memory scheme that renders all of
  1390. the current discussion on FSP and DGroup limitations, academic. Using a
  1391. completely dynamic memory and module management system, NetWare 386 is
  1392. beginning to introduce a new set of features and technologies that will
  1393. represent the new standard for computer networks. And as the next
  1394. generation of computer hardware becomes available, we will find that
  1395. NetWare 386 will be there, ready and waiting.
  1396.  
  1397.  Page 28            Copyright 1990 by Novell, Inc., Provo, Utah
  1398.  
  1399.  
  1400.