═══ 1. General Help ═══ General Help for the Config.Sys Optimizer The Optimizer has all of the performance oriented Config.Sys parameters on a single page (screen). The values shown in black are the values from your Config.sys file. They may be modified individually by changing the entries either directly by using the tab key or mouse pointer and changing the value, or by using the spin arrows, check boxes or radio buttons. The Optimizer has recommended values for your system indicated in red. These values are specific to your system type and memory size. These values can be applied by pressing the Set button (red). This action will place all of the recommended values into their corresponding entry fields. After changing the fields to your preference, pressing the Apply Changes button (also in red) will update your Config.Sys. It will optionally make a copy of your Config.sys, if you check the box marked Create backup. Additional help is available for each parameter. Tab to the parameter in question, and press the F1 key. There are also hints about each field that appear on the bottom of the screen as you move the mouse pointer over the field. Feel free to explore all of the fields. Remember, changes are not applied to Config.Sys until you press the Apply Changes button. All of the values are validated, so you can be assured that an invalid parameter can't be entered. ═══ 2. Processor Type ═══ OS/2 V2 & V3 both exploit the processor instruction set of the Intel 386 processor. Computer processors that include the 386 instruction set should be able to run OS/2. The Intel 486 and Pentium processors certainly qualify and are the most pervasive. Please specify your processor type as a 386, 486 or Pentium. ═══ 3. Speed ═══ CPUs are available with different clock speeds, often referred to as Megahertz (Mhz). The clock determines the time it takes the processor to cycle through one operation, for example, the execution of a single instruction. Some instructions do require multiple cycles so this is not always the most accurate way to measure the performance of a processor, but it will serve our discussion. A faster clock speed indicates a faster CPU within that processor family, (e.g. a 386-33Mhz is faster than a 386-25Mhz but not faster than a 486-25Mhz). When the 586, or Pentium as it is currently being named, becomes available it will be 386 compatible and faster than a 486. Another group of processors available that use technique called clock doubling or tripling. This means that the CPU operates at two different speeds depending on the operation it is performing. Internal operations execute at the faster speed. This includes all instruction operations that are internal to the CPU chip. The cache located on the 486 chip makes this an effective technique for improving performance, since it also operates at the faster speed. For external (to the CPU chip) operations, the processor operates at the slower cycle speed. This reduces the speed requirements of the components directly interfacing with the CPU, (and thus their cost). System board memory and local bus components will interface at this slower cycle speed. An example of one of these processors is the Intel 486DX2/66. It has an internal processor speed of 66MHz. When this processor accesses memory on the system board it does so at 33MHz or half the internal rate. Please choose the clock speed that your computer executes. If its rate is not shown, then choose a rate that is close. ═══ 4. Memory ═══ The place that programs and data must be at the time when the CPU needs them. Often called RAM (Random Access Memory), it is a set of very fast electronic chips that temporarily stores data and programs for the computer's use. When you power down your system, RAM memory is cleared. A minimum of 4MB of this memory is needed for OS/2 to effectively operate. Many people get confused between memory and disk storage because both are measured in MBs and both hold your programs and data. Unlike memory, your data and programs remain on disk storage even after you power down your system. OS/2 can use between 4 and 64 MBs of memory. ═══ 5. Cacheing ═══ This is the best technique you can use to improve the effectiveness of your CPU. Our testing shows that cache memory for HPFS and/or FAT is a great use of memory. Always keep in mind that memory used this way is taken away from overall memory, and while it may improve your CPU's effectiveness, overall performance could be reduced due to increased page swapping. ═══ 6. HPFS Partition Cacheing ═══ IFS=C:\OS2\HPFS.IFS /CACHE:xxx /CRECL:yyy /AUTOCHECK:d,e,f This parameter is only specified in CONFIG.SYS. Its presence activates the HPFS file system and it must be present for you to access your HPFS partitions. If you have no HPFS partitions, then delete this statement and save 500+KB of your system memory. ═══ 6.1. CACHE ═══ HPFS CACHE This is the best technique you can use to improve the effectiveness of your CPU. Our testing shows that cache memory for HPFS is a great use of memory. Always keep in mind that memory used this way is taken away from overall memory, and while it may improve your CPU's effectiveness, overall performance could be reduced due to increased page swapping. /CACHE:xxx, where xxx specifies the amount of memory in KB that is used for HPFS cache. The default is 10% of the available system memory, and the maximum is 2048KB. ═══ 6.2. CRECL ═══ HPFS Cache Maximum Record Length /CRECL:yyy, where yyy specifies the maximum record size in multiples of 2KB that will be eligible for caching. The Minimum is 2KB, the Maximum is 64KB and the default is 4KB. This value can be an important performance parameter as it represents the largest size an I/O activity can be, and still be read into cache. Setting this too small could limit the usage of your cache. We recommend that you chose as large a Cache and CRECL as you can afford. ═══ 6.3. AUTOCHECK ═══ HPFS Autocheck /AUTOCHECK:d,e,f specifies any additional drives, (other than the boot drive), that OS/2 should check at startup to determine if the file system associated with that particular drive(s) is in an inconsistent state. This might occur because of improper shutdown. If inconsistencies are found the operating system will execute the CHKDSK command with the /F option to attempt to correct any problem. This is highly recommended that you include every HPFS drive in this list! ═══ 6.4. REMOVE IFS=HPFS ═══ You'll only see this check box if your system has NO HPFS Partitions and the IFS=HPFS.IFS statement appears in your CONFIG.SYS. If this is the case, the High Performance File System is being loaded into your memory during the boot process. A cache is allocated and set aside for HPFS exclusive use. IN OTHER WORDS - valuable memory is being wasted because you have NO HPFS PARTITIONS! A half MB or more of your expensive memory is being lost. All you need to do to regain the use of this memory is remove the IFS=HPFS.IFS statement from your CONFIG.SYS or let the Optimizer do it for you by checking the Remove IFS=HPFS.IFS check box. ═══ 7. FAT Partition Cache (DISKCACHE) ═══ DISKCACHE=xxx,LW,threshold,AC:cdef This command may only be placed in CONFIG.SYS. It creates a cache for use by those fixed disk partitions formatted as FAT. It will not provide a caching facility for diskette or network disk drives. HPFS does not use memory allocated for FAT cache. If there are no FAT partitions in your system, deleting or REMing this statement from your CONFIG.SYS will save memory. ═══ 8. FAT Partition Cacheing ═══ ═══ 8.1. CACHE ═══ FAT CACHE DISKCACHE=xxx xxx is the amount in KB to set aside for the cache. For OS/2 version 2 it may be a value between 64 and 14400. There is a new minimum value of 48KB for OS/2 Version 3. Version 3 also has an alternate choice of "D" for this value. "D" stands for a dynamically allocated default. The default varies based on total system memory. 48KB is used for a 4 MB system, for 5-6 MB system 128KB cache size is set, 6-8MB systems are set to 512KB, and for systems with more than 8MB of memory the cache size allocated is 10% of system memory. The Performance PLUS V3 Optimizer is more conservative than the system defaults for systems with 5-8MB. In systems this size memory is better used for applications than for cache. On larger systems the Optimizer recommends larger cache sizes than the default. This is a good parameter to tinker with as each system has different needs - and changes will surely affect performance (either positive or negative). Remember to run SimpleCount before and after each change to measure the effect of the change. ═══ 8.2. LAZY ON/OFF ═══ FAT LAZY WRITE DISKCACHE=xxx,LW Lazy Write (LW) is a highly recommended performance feature of the DISKCACHE statement. It tells the FAT file system to delay writing data to the disk until the drive has idled. This means that when your application asks the file system to write the data, OS/2 responds as soon as the data is placed into the memory cache rather than wait until the data is actually written onto the disk drive. This will dramatically improve the performance of most applications. Many people have fears that lazy write will increase the likelihood of lost data. The delay mentioned above is usually measured in seconds. Should a power failure occur, only the data not written from the cache to disk would be lost (the past few seconds of data (if any). In other words, the potential for additional lost data is minimal when lazy write is ON. Unless your program is a mission critical program that uses a transaction logging scheme for data recovery, I recommend taking advantage of the performance improvements offered by lazy write. ═══ 8.3. THRESHOLD ═══ FAT Record Threshold DISKCACHE=xxx,LW,ttt ttt is the threshold size, which specifies the number of disk sectors that will be placed into cache when an I/O operation is initiated by your application program. The threshold should be as large as possible but not larger than м of the total size of the cache. Since most disk drives have a sector size of 512 bytes, 2 sectors equal 1 KB. A value of 10 for ttt equates to 5 KB (for most disk drives). For example, a cache (xxx) of 64 should have a ttt value of 32 (resulting in a 16KB threshold size or м of the 64KB Cache) . Vary this with sector size. The maximum value for ttt is 128, and should be used if your cache is 256K or larger. ═══ 8.4. AC: ═══ FAT Autocheck DISKCACHE=xxx.LW,ttt,AC:defg AC:defg specifies any additional drives, (other than the boot drive), that OS/2 should check at startup to determine if the file system associated with that particular drive(s) is in an inconsistent state. This might occur because of improper shutdown. If inconsistencies are found, the operating system will execute the CHKDSK command with the /F option to attempt to correct any problem. It is highly recommended that you include every FAT drive in this list! The Optimizer checks all drives available on your system and recommends that the FAT drives be placed into this list. ═══ 8.5. D - Dynamic DISKCACHE Default ═══ FAT Diskcache DISKCACHE=D,LW,ttt,AC:defg D is a new option for DISKCACHE with OS/2 Warp Version 3. "D" stands for a dynamically allocated default. The default varies based on total system memory. 48KB is used for a 4 MB system. 128KB is set for a 5-6MB system. 512KB is set for a 6-8MB system. 10% of memory set for systems with more than 8MB. ═══ 8.6. Remove DISKCACHE ═══ The Optimizer detected a DISKCACHE statement in your Config.Sys and NO FAT Partitions. This means that a Cache has been set aside for FAT partitions but will not be used for anything. The FAT cache does not cache diskette drives nor LAN Network drives. Remove this DISKCACHE from your Config.Sys to reclaim this memory or check this box for the Optimizer to remove it for you. ═══ 9. Program Management ═══ Program Management This group of settings allow you to control the execution of the various applications being multitasked in your system. Included are: o MAXWAIT o o THREADS o o PRIORITY_DISK_IO o o PRIORITY o o IOPL o o TIMESLICE ═══ 9.1. MAXWAIT ═══ MAXWAIT - Task Management MAXWAIT=xxx sets the length of time, in seconds, that a thread waits before the system will assign it a higher priority. The default is 3 seconds, you may specify a number from 1 through 255. Setting this to 1 could help applications with a significant I/O orientation, but it could also increase the overhead processing of OS/2 since OS/2 would check every 1 second rather than the default of 3. Under certain circumstances very fast processors (Pentium and 486DX4) can benefit from a setting of 1 since a fast processor will be less likely to be adversely affected by an increase in OS/2 overhead. Likewise a slow 386sx - 16Mhz processor might benefit from increasing this value to 5, which would reduce the OS/2 overhead. ═══ 9.2. THREADS ═══ THREADS - Task Management THREADS=xxxx sets the maximum number of tasks OS/2 will allow to be concurrently activated. This can be between 64 and 4095. The default is 256. This setting might be modified as your application habits change from DOS based to OS/2 based applications. Since many OS/2 applications implement multithreading the value will need to be increased as you migrate from DOS applications. This parameter does set aside fixed resources for the maximum number of threads. Start with a setting of 64 if your system is a minimum memory system (4MB). ═══ 9.3. PRIORITY_DISK_IO ═══ PRIORITY_DISK_IO - Task Management PRIORITY_DISK_IO=yesno PRIORITY_DISK_IO allows you to change the default setting of YES that provides priority disk access to the foreground application. You may change it to NO to give equal disk I/O priority to all tasks. Under special circumstances, such as a LAN file or application server, you might want a background application to have better performance than the foreground application; setting this to NO will enable this possibility. Setting it to NO will probably adversely affect the performance of your foreground application. ═══ 9.4. PRIORITY ═══ PRIORITY=DYNAMIC is the default method of OS/2 priority assignments. OS/2 varies the priority of tasks dynamically, as their I/O and processor usage change. You may specify ABSOLUTE to keep OS/2 from changing the priority of tasks as they are running. DYNAMIC is our recommendation for all cases. ═══ 9.5. IOPL ═══ IOPL - Task Management IOPL=YES or IOPL=list IOPL allows you to grant all applications (YES), or a list of application names (list), the I/O privilege level 2, rather than the default level 3. The privilege level 2 gives an application the right to directly communicate with a device. This might be a necessary performance requirement of an application. Being assigned privilege level 3 restricts an application's ability to directly communicate with a device. The Optimizer recommends that this command be set to YES. Example: IOPL=YES IOPL=FAXWORKD,QSYSTEM ═══ 9.6. TIMESLICE ═══ TIMESLICE - Task Management TIMESLICE=nnn,xxx Sets the (minimum,maximum) length of time a thread will be given to use the CPU before it is interrupted by a thread having the same priority. All threads having the same priority are scheduled in a round-robin algorithm. OS/2 2.1 has implemented dynamic timeslicing to minimize the impact of interrupt processing due to timeslicing. TIMESLICE=, when present in CONFIG.SYS, overrides the OS/2 timeslicing default which uses a dynamic algorithm. That is, the default timeslice period is dynamically changed as system conditions change. This dynamic algorithm is very efficient for most systems - override this default only if you have a compelling reason. ═══ 10. BUFFERS ═══ BUFFERS BUFFERS=xxx This parameter may only be placed in CONFIG.SYS. The value indicated by xxx specifies the number of 512 byte buffers to be setup at system startup for reading and writing to files with data blocks smaller than your disk's sector size also 512 bytes. This parameter is very important if you are not using cache. It is also important for improving the performance of disk partition directory management. The value for xxx, may be between 1 and 100. If you have HPFS and FAT partitions, an equal number of buffers are allocated for each file system, that is specifying BUFFERS=80 will allocate 160 buffers - 80 for your FAT partitions and 80 for your HPFS partitions. ═══ 11. DOS ═══ The following set of values, when found in Config.Sys, become the default values for all DOS sessions started. (You may override defaults for each individual DOS program using that program object's settings.) o FILES o o RMSIZE o o FCBS o o HIGH o o UMB ═══ 11.1. FILES ═══ FILES FILES=xxx This sets the maximum number of files that the DOS program may open using file handles (as opposed to FCBS). It sets aside 45 bytes of memory per file handle. The default FILES=20 sets aside 900 bytes. Set this higher for those programs that document a higher requirement. Remember that setting this in CONFIG.SYS to the max of 255 will set aside 11.5KB of memory for each VDM started. ═══ 11.2. RMSIZE ═══ RMSIZE RMSIZE=xxx When a DOS program starts under OS/2 it runs in what is know as a VDM or Virtual DOS Machine. RMSIZE defines the size of conventional memory for that "virtual" machine. Valid values are 0 to 640KB. Rarely will a program dictate that this value be other than 640KB. I have seen a few situations when a value of 639 was needed. ═══ 11.3. FCBS ═══ FCBS - DOS only FCBS=(xxx,yyy) In the early days of DOS an application program used FCBS (File Control Blocks) to control files (today most programs use file handles). The xxx value specifies how many FCBS are to be put aside for your DOS program. If your program uses FCBS it is usually documented. The default of 16 is usually plenty and only wastes a small amount of memory, (44 bytes for each FCB). Don't go overboard though for such a rarely used DOS parameter, after all 255 X 44 is over 11KB! The yyy value tells DOS that a subset of the xxx FCBS are to be kept open. This setting is rarely needed by today's DOS programs. The default of 8 is more than plenty for most situations. ═══ 11.4. HIGH ═══ DOS=HIGH DOS=(high,umb) Use HIGH to provide your DOS program with additional available conventional memory (below the 640KB barrier). Specifying HIGH moves about 24KB of the DOS kernel to XMS (Extended Memory). DOS=HIGH can also be set for each DOS program using the settings for that individual program object. (Use the Performance PLUS V3 DOS BlackBox program to vary the DOS settings.) DOS=LOW is the default. Setting DOS=HIGH requires that you have XMS_HMA_MIN set to at least 64. DOS=HIGH is a good idea since many DOS programs need as much room below the 640KB line as they can get. ═══ 11.5. UMB ═══ DOS=UMB DOS=(high,umb) DOS=UMB is another technique to increase the available conventional memory space for your DOS programs. This tells DOS to load TSRs and Device Drivers into the Upper Memory Block area. DOS=NOUMB restricts DOS from loading device drivers into the UMB area. If you need a more detailed explanation than this, refer to the book. ═══ 12. Swap Management ═══ Setting Swapper Initial Size and Path SWAPPATH=drive&path,xxxx,yyyy This is another parameter placed in CONFIG.SYS. The values you can specify are: drive&path This is shown in the normal manner, e.g. C:\OS2\SYSTEM. This will tell OS/2 where to allocate the SWAPPER.DAT file at startup. ═══ 12.1. SWAPPATH ═══ SWAPPATH SWAPPATH=drive&path,xxxx,yyyy This is another parameter placed in CONFIG.SYS. The values you can specify are: drive&path This is shown in the normal manner, e.g. C:\OS2\SYSTEM. It tells OS/2 where to allocate the SWAPPER.DAT file at startup. Place SWAPPER on the most active partition of the least active physical drive. This will improve the probability that the read/write heads will have a closer proximity to the SWAPPER file. Additional advise on SWAPPER location is to place it on a partition with plenty of free space - see additional information about this with the MinFree parameter. NOTICE: After changing the drive&path and after re-booting, remember to delete the SWAPPER.DAT file from its old location to reclaim that disk space! MinFree xxxx specifies when OS/2 should warn you that the disk space available for Swapper expansion is low. If the Swapper needs to expand, and there is not enough room, OS/2 will stop. The default value is 2048KB and probably should be higher - try 4096 or 5120. Remember, if space on your swapper partition becomes full and the swapper needs to expand the system will STOP COLD. You will need to reboot, losing work in process and a long wait for your drive partitions to be checked. If you are warned that this value is reached... stop what you are doing, and immediately reduce your multitasking level. You should also perform some housekeeping by deleting some nonessential files in this partition. Initial Value yyyy sets the initial size of the Swapper file at OS/2 startup. OS/2 sets the default value based on your system's total RAM memory. Set this to the total size Swapper expands during a normal session. This will insure contiguous file space for Swapper, which is the most efficient allocation technique, and will provide you the best page swapping performance. Use the Performance 3.0 SeeSWAP Monitor utility to find the proper value for this parameter. ═══ 12.2. MinFree ═══ ═══ 12.3. Initial ═══ ═══ 13. Controls ═══ The control buttons help simplify the manipulation of the values. They include: o Set o o Clear o o Reset o o Apply Changes o o Exit o o Create Backup ═══ 13.1. Set ═══ Set Pressing the Set button will apply the Optimizer recommendations to the entry field values. That is, those values in RED will be chosen. Toggle the values back by pressing the Reset button. Press the Clear button to reset the values to their initial setting (when you started the Optimizer). ═══ 13.2. Clear ═══ Clear Pressing the Clear button will change the entry field values to the initial settings (when you started the optimizer). Once again, you may toggle the values with the reset button. ═══ 13.3. Reset ═══ Reset Toggle the entry fields to the values prior to the last Set or Clear operation. ═══ 13.4. Apply Changes ═══ Apply Changes Press the Apply Changes Button to capture all of the setting values on the screen and apply them to Config.Sys and end the Optimizer. A backup copy of Config.Sys will be made if the Backup check box is marked. ═══ 13.5. Exit ═══ Exit End the Optimizer without applying any changes to Config.Sys. ═══ 13.6. Create backup ═══ Create backup Optimizer will make a copy of your current Config.Sys before modifying its values when the Apply Changes button is pressed. Optimizer checks the root directory of your system boot drive for other versions of your Config.XXX. It increments the largest value for the next backup copy and displays that name next to the check box. Optionally you may specify the name of the config.sys backup by entering the name in the field.