OSOTSWAP - MEMORY AND SWAPPER INFORMATION 11/09/94 ================================================================ MEMORY AND SWAPPER INFORMATION ================================================================ MEMORY ---------------------------------------------------------------- OS/2 runs on 4MB. Depending on the application mix, and the desired performance, memory requirement needs vary. Generally, the system should have enough memory to avoid excessive amount of swapping activity. Question: What are the symptoms of poor performance caused by insufficient amount of memory ? A. Excessive amount of hard disk activity caused by constant swapper activity. In extreme cases, the disk light may be constantly active even if system is not being actively used. B. Performance degradation - It takes an excessive amount of time to do anything. In extreme cases, it might take several minutes for the task list to be displayed after pressing Ctrl+Esc. Solution: Adding additional memory alleviates the above symptoms. SWAPPER ----------------------------------------------------------------- Question: How much disk space should be allowed for swapper file growth ? A. It depends on the number of applications, the kind of applications running and the amount of memory in the system. Symptoms: If getting SWAPPER FULL (if COMMIT=OFF) or LOW MEMORY (if COMMIT=ON) messages, then you are not allowing enough free disk space for swapper growth. Performance drops tremendously, because of increased swapper activity, and in extreme cases, the system may halt or trap. If you are monitoring swapper file size, you learn the size of the typical swapper file size under normal system usage. MEMORY ALLOCATIONS ---------------------------------------------------------------- When an application requests memory, the system gives the application, regardless of the amount request, 4k blocks of memory. (4096 bytes) out of a 64k segment. Example: if the process requests 5100 bytes, the system will allocate 64k segment of which 8192 bytes can be used for this process. If applications have a large number of small memory allocation requests, memory being used by this process may not be what is expected. MEMORY ALLOCATION LIMITS ---------------------------------------------------------------- As documented in the programming guide volume 1 (S10G-6261-00) and the Redbook Volume 1 (GG24-3730-00), it is theoretically possible to allocate 512MB (Virtual address space). This, of course is based on the systems available ram and disk space. This 512MB area is divided into 3 parts: --------------- 512 MB | | | A (64MB) | Reserved | | --------------- 448 MB | | | B (64MB) | Shared Virtual address space | | - - - - - - - - 384 MB | | | | | | | | | | | C | Private and shared virtual | | address space | | | | | | | | --------------- 0 MB Section A is reserved for future enhancements to the operating system and can be used by changing the PROTECT option in MEMMAN statement located in the CONFIG.SYS to NOPROTECT. Section A would then be used by section B. Section B is allocated at bootup time for shared memory and can grow into section C. Section C is used by private and shared memory and the more shared memory is allocated, the less private address space will be available. Please refer to the Redbook or the programming guide Volume 1 for further information. SWAPPER GROWS AND WILL NOT SHRINK. ---------------------------------------------------------------- The swapper file will grow when an application is started and there isn't enough available RAM to run. The swapper file attempts to shrink back to its original size after application is ended. More than likely the size of the swapper file remains bigger. Swapper file shrinkage begins approximately 30 seconds after there is no system activity, assuming no process with higher priority is running. SWAPPATH's second parameter, in CONFIG.SYS, defines the minimum size of the swapper file. The swapper file does not shrink to a size smaller than the swap file size specified by SWAPPATH's second parameter. NOTE: The first parameter in the SWAPPATH statement specifies the minimum amount of free space in KB that can remain on the partition where the SWAPPER.DAT file is located before a warning notifies you that the swapper file has increased to a size that leaves less than this amount on the disk. SOME UTILITIES FOR ANALYZING MEMORY AND SWAPPER ACTIVITY ---------------------------------------------------------------- THESEUS2 which comes as part of the SPM/2 product, sold by IBM, shows amount of used and free swapper space and has many other additional functions for analyzing memory and swapper usage. OS20MEMU, can be downloaded from the IBM PCC BBS at 919-517-0001 shows the amount of swapper in use. The difference between that number and the size of SWAPPER.DAT is the free swapper space. DINFO, can be downloaded for free from IBM PC BBS, monitors swapper size and remaining disk space. NOTE: OS/2 determines the optimum initial swapper size according to the amount of memory in system. This value can be overridden by the changing the second SWAPPATH parameter in CONFIG.SYS SIZE OF SWAPPER FILE IS TOO BIG ---------------------------------------------------------------- An application is probably using up a lot of memory. Using a utility program like OS20MENU can help determine which program is using an excessive amount of memory. There remains the issue where the SWAPPER.DAT grows to a large value (usually greater that 20MGS), as a result of a large resource allocating application which when terminated does not free up all of the memory it requested. This is termed as a "memory leak" originating from application. The manufacturer of the application should be contacted for assistance. If getting SWAPPER FULL (if COMMIT=OFF) or LOW MEMORY (if COMMIT=ON) messages, then you are not allowing enough free disk space to allow for swapper growth. Performance drops tremendously due to increased swapper activity, and in extreme cases, the system may halt or trap. If you are monitoring swapper file size, you will get a feel for the size of the typical swapper file size under normal system usage. SYS0008 ERROR MESSAGE when running memory intensive applications ---------------------------------------------------------------- This may be caused by having swapper file in a partition with a large amount of free disk space. This is a known problem that has been fixed and will be incorporated in ServicePak for OS/2 2.1 or the next version of OS/2. As a work around, place swapper file on a partition with less than 100MB of free space. SYS1477 THE PARTITION CONTAINING SWAPPER.DAT IS FULL ---------------------------------------------------------------- A potential problem may occur because all OS/2 processes continue running after receiving a SYS1477 "Out of Swapper" warning message. The possibility of a system crash exists if these processes continue allocating memory. The SYS1477 Swapper File Full message is just a warning message to informs you that it needs more disk space in order for the swapper file to grow. However, it is not designed to allow usage of the system under low disk space conditions in the swapper partition without running the risk of causing a system failure. You should understand that while the SYS1477 message is being displayed, all processes continue running. If any one of the processes continues allocating memory while the SYS1477 message is displayed, and you do not respond to it quickly enough, this may cause OS/2 to run out of memory and halt the system with an Internal Processing Error (IPE). In very fast machines, or if the system is very busy. It is possible for an application to consume the remaining memory and cause an IPE before SYS1477 message has time to come up. SUGGESTIONS TO MINIMIZE THE CHANCES OF PROBLEMS: ---------------------------------------------------------------- 1. Provide enough disk space to allow for swapper growth. 2. Larger "minfree" parameter so that the SYS1477 warning message is displayed earlier. 3. Usage of the "COMMIT" parameter. This prevents an application from running unless there is enough memory and swapper resources for the application to run. You should understand that the "COMMIT" parameter allocates memory and swapper resources when REQUESTED by the application. If this parameter is not used, resources are allocated as NEEDED by the application to run. EXAMPLE: If an application allocates 16MB of memory but does not use the memory, then if "COMMIT" is specified it will require a total of 16MB of memory and swapper resources for application to run. If "COMMIT" is not used, it may only require 200k of memory and swapper resources to run application. MEMORY AND SWAPPER UTILITIES ---------------------------------------------------------------- From IBM PC BBS (free) DINFO - Monitor swapper file and remaining disk space. OS20MEMU - Memory allocation tool. Utilities from the BBS are provided "as is". There is no customer support provided for these utilities. Can be ordered from IBM (1-800-426-2255) SPM/2 - Contains Theseus2. More sophisticated than OS20MEMU for analyzing memory and swapper. ADDITIONAL INFORMATION ---------------------- You can download utilities, address questions to IBM or other OS/2 users from the following BBS or data services. IBM PC BBS (free) - (919) 517-0001 TalkLink OS/2 BBS - 1-800-547-1283 for information and application. Prodigy - Call Prodigy for information CompuServe - Call CompuServe for information. * Refer to the OS/2 Command Reference for additional information.