- Readers will master complex memory management techniques
- Teaches how to build an Internet server
- Explores peer-to-peer networking
|Product dimensions:||7.34(w) x 9.11(h) x 1.94(d)|
Read an Excerpt
[Figures are not included in this sample chapter]
Peter Norton's Complete Guide to Windows NT 4 Workstation
- 3 -
Tuning or optimizing a machine for optimum performance is one of the first things many people think about when they install a new operating system. After they get all their applications installed and check out some of the new utilities, they want to see just how much they can get out of their new toy. The first thing you need to consider when reading this chapter is what tuning means. Getting every last ounce of power out of a system to perform a specific task represents one type of tuning. Allowing a system to perform a variety of specific tasks simultaneously (multitasking) is another. General tuning to provide the best performance in a variety of situations is yet another. I could go on. The fact of the matter is that there's no default configuration and no standard machine. All users have different needs and different hardware they need to use to get the job done. Any form of worthwhile optimization will take your specific needs into account.
I won't tell you how to tune your specific machine in this chapter. There's no way I can provide step-by-step tuning instructions for anyone without knowing his or her situation. What I will provide you with are some guidelines and tips you can use to create your own solution. You'll need to decide which tips you should implement and which you should ignore. I plan to provide tips for a variety of machine configurations, and your machine will appear somewhere in the list.
So, do you start reading right this second and hope to find the tips you need the first time through? You probably won't. It takes a bit of time and patience to really tune a system for optimum performance. To get some idea of what I'm talking about, consider race car drivers. A race car is tuned to fit its particular "personality." The mechanic and driver work together to come up with the best configuration for that particular car. In addition, the car is tuned to fit the track that it will race on and even the weather conditions. Tuning the car is probably the easy part of the process. Planning how to tune it requires a bit more effort.
You won't need to worry about the weather when tuning your system, but many other principles do apply. Planning how you need to tune your system is always a good idea. Just like any other worthwhile endeavor, tuning your system requires that you create a few goals and take a few potholes into account. Your machine contains hardware from a variety of sources. It probably contains a combination of components that are unique within your company. You need to consider how that hardware will react. Your applications are unique. Even if your job isn't unique, your way of doing that job probably is. A system that's perfectly tuned for the way I work probably won't do a lot for you.
Looking Ahead: This chapter takes a look at the physical tuning of your system. We'll look at other aspectsósuch as tuning your desktopóin other chapters. Physically tuning your system is an important first step. After you complete it, read the rest of this book (especially Chapter 2) for additional ideas on ways you can improve the efficiency of actually using your computer.
Keeping these personal needs in mind, let's look at some of the things you should consider before you start tuning up for the big race. The following list provides criteria you must consider before you start to tune your system. Of course, the time and effort you expend in this effort is directly proportional to the amount of performance you can expect to receive.
- Memory: The amount of real memory your system contains is a big factor in how well Windows NT will operate. You shouldn't consider starting to tune until you have a minimum of 12MB of real RAM. You'll need to tailor this number to meet the demands of the applications you plan to run. A spreadsheet requires a lot of memory, for example, a database even more, but a word processor is relatively light when it comes to memory consumption. You might find that a graphics application requires a moderate amount of memory but takes a heavy toll on both the processor and graphics adapter. The number of simultaneous applications you plan to run also affects the point at which you should start to tune your system. I equipped my system with 32MB of RAM because I often run a word processor, spreadsheet, and communications program simultaneously. Virtual memory helps take up the slack between real memory and what you need, but you can't count on it to assume the full burden.
- Hard disk size: Windows NT runs best when you give it a large swap area to work with. In addition, you need space for the application itself and some space for data files. The one factor many people underestimate is the size of their data files. I was quite surprised the other day when I translated a small Word for Windows file from 1.0 format to 6.0. The file consumed almost twice as much space even though the amount of data hadn't changed one iota. Of course, the 6.0 format file provides many features the 1.0 file doesn't. The extra space used by the 6.0 format bought me added functionalityóan important trade-off to consider. The general rule of thumb I use for figuring out the amount of hard disk space I need is to add up space required for installed configurations of my applications and triple it. This is a very coarse calculation, but it works for me.
- Hard disk speed: Older operating systems were a lot less disk-intensive than Windows NT is. Not only do you have the swap file that Windows NT creates, but applications also make greater use of the hard drive today for temporary storage. To see what I mean, open just about any application and check for the number of TMP files on your drive. You might be surprised by what you see. All this disk access means just one thing: You have to have a fast drive to make Windows NT jump through the hoops that you want it to. Drive speed isn't the cure-all for every problem, but it has become a much bigger part of the overall picture.
- Processor speed: Your processor speed affects the way your computer runs. No other factor so greatly affects your system once you meet the basic storage requirements. Herein lies the rub. Many people opt for a high-speed processor and then choke it with limited memory and hard drive space. Remember that the processor makes a big impact on system throughput only after you meet the basic storage requirements. A thrashing hard drive can eat up every bit of extra speed you add to a system.
- Motherboard features: Items such as the size of the motherboard's SRAM cache might seem a bit on the technical side, but these features aren't just for technicians. An optimized system starts with an optimized motherboard. Get a motherboard that offers plenty of room to grow and the ability to tune. I just upgraded one of my systems from a 486-33 to a 486-100 with a simple processor change that took just 15 minutes from start to finish, for example. You'll also want to check out features like processor cache; some motherboards allow you to increase the size of the cache and improve performance. Another motherboard I saw allowed you to bump the processing speed up a little; I could run my 33MHz processor at 35MHz and get a performance boost as a result. Of course, this could actually cause problems in some cases, because the processor is only rated at 33MHzóthe 35MHz setting makes use of an engineering addition that most processors provide. Suffice it to say that the number of features you'll find on motherboards is limited only by the motherboard vendor's imagination.
- Peripheral devices: I/O has always been a bottleneck in the PC. That was true yesterday, and it's even more true today. The two peripherals you need to concentrate on the most are your disk controller and display adapter. Think about the way Windows is designed for a second, and you'll understand why. Windows is a GUI; it consumes huge amounts of time simply drawing all those pretty images you see on the display. A display adapter that uses processor cycles efficiently (or even unloads some processing tasks) can greatly affect the perceived speed of your system. The less time Windows spends drawing icons and other graphics, the more time it'll have to service your application. Likewise, a slow controller will make even a fast hard disk look slow. It's the controller that becomes a bottleneck with many systems today. The short take on peripherals? Always get 32-bit peripherals whenever possible and make certain that they are fully compatible with Windows NT. (Because Windows NT doesn't support real-mode drivers, you don't have any easy way of getting around problem devices.)
- Bus speed: You might not think very much about the little connectors that you stick cards into, but the system does. The system bus has been a source of major concern for a great number of years, and I don't see this changing anytime soon. What good is a fast peripheral if you can't access it at full speed? There's a slew of 32-bit bus architectures on the market. Users have tried everything from EISA to VL and the MCA bus to solve the problem with bottlenecks. Suffice it to say that the speed of your bus is yet another factor in how your system will perform.
- Network interface card (NIC): If you spend a lot of time working on the network, you'll most certainly want a high-capacity NIC. The minimum you should settle for is a 16-bit Ethernet card. Anything less is a waste of perfectly good network bandwidth. People who share graphics or other very large files across the system should consider getting 32-bit NICs for their machine. Some NICs also come equipped with an expandable cache. Using a larger cache can buy you some additional network speed in some cases, especially under Windows NT. You'll also want to consider NICs that support more than one cable type, because some types of cabling are more efficient than others. Your company might decide to go with twisted-pair cabling today because it's cheap. Wouldn't it be nice if you could perform a cable upgrade tomorrow without also replacing all the NICs on your system?
Peter's Principle: Stretching Your Hard Drive
Making your hard drive hold more has become a major topic in the wake of today's mega-application. (Doesn't it always seem to come down to the size of your hard drive and/or system memory?) Talk to just about anyone, and the first thing he'll suggest to make your hard drive hold more information is disk compression. That's a good idea in some circumstances, but in others, it could prove problematic. Some systems just don't compress all that well because of conflicts with the hard drive or controller. Other people worry about the reliability of disk compression, so they don't use it. Still another problem is the type of data your machine contains; application code doesn't compress all that well. If you store your data on the network, your machine probably won't make the best candidate for compression.
Several other ways you can extend your hard drive cost a bit but provide long-term benefits. The first is to buy a good CD-ROM. I'm not talking about an older double-speed model, but a high-end, quadruple- or sextuple-(6X) speed drive. (NEC just introduced its new 8X drive; other vendors are sure to follow.) Make sure that it is connected to a good controller and that you have a separate hard drive extension. A few controllers actually limit throughput to the speed of the slowest device in the chain. Placing the CD-ROM on a separate chain ensures that you won't adversely affect the speed of higher-speed devices. Many vendors such as Corel Systems and Microsoft are making their applications so that you can copy a few files to the hard drive but run the application from the CD-ROM. Not only does this save hard drive space, but it also allows you to install the full capabilities of a product. You'll pay a performance penalty for using this type of installation, so you'll want to reserve it for applications you don't use on a daily basis.
Another disk space saver is to use compressed file formats whenever possible. This is especially true in the multimedia and graphics areas. A CorelDRAW! file that consumes a mere 60KB in its native format could consume 1MB or more in Adobe Illustrator (AI) format. Another example is the PCX format. Storing a 1024x768, 16-color image requires 90KB. That same image requires 200KB if you increase the number of colors to 256. Storing the same 256-color image in TIF format (using LZW compression) uses 136KB and only 124KB in GIF format. As you can see, something as simple as a file format can make a big impact on the amount of space available on your hard drive.
After you get your hardware configuration out of the way, it's time to consider your software configuration. Windows NT does a much better job of managing resources than Windows 3.x did, but it's by no means perfect. Windows 3.x's infamous system resources problem is still with us. You still have the same problem with the 64KB USER and GDI areas. Filling these areas with icons, windows, and other graphical elements still results in a system that runs out of memory before physical memory is exhausted. (We'll see later that there's a lot more than meets the eye to the whole topic of system resources under Windows NT. Microsoft has tuned this operating system to make many of the problems you experienced under Windows 3.x disappear.) The way in which Microsoft configures and uses memory now, however, really reduces the drag you will see as system requirements increase.
Under Windows 3.x, I'd start to run out of resources after loading my word processor, spreadsheet, communications program, and one or two small utility programs such as a screen saver or Notepad. I usually consider closing an application or two when I get to the 35 percent system resources level, which is about where I was with this configuration. Windows NT still has 78 percent of its resources free when using the same configuration. This means that I can usually open two or three more applications on top of my usual configuration.
Of course, system resources are only one memory factor. There's the actual level of RAM to take into consideration as well. Under Windows 3.x, you would start to notice a fairly large performance penalty when you got to the point where the swap file was as large as real memory. Under Windows NT, this doesn't seem to be as much of a problem, but it's still very noticeable. The bottom line is that if your swap file starts approaching the size of your installed memory, it's time for an upgrade.
You need to take into consideration the combination of system resources and system memory when thinking about your software situation. A memory-constrained system always lacks enough memory to perform the job you need it to. It's a subjective type of measurement based on how you actually use your system. You should load the Resource Monitor (discussed in Chapter 2) and, over a few days, track both the size of your swap file and the number of resources you have available. If you start to see a pattern of low memory, read the next section. You might even find that the problem isn't the amount of installed memory on your machine but the way you use that memory.
Windows NT users have a plethora of other concerns that other Windows users don't share. For one thing, the platform you choose can make a great deal of difference. Even if you choose an Intel platform, however, you need to consider some of the advanced capabilities that Windows NT provides. You can get over part of the performance hurdle, for example, by using a multi-processor machine. There's also the availability of multiple hard disk formats to consider. An NTFS partition may reduce flexibility (because you can only access it from within Windows NT), but it also enhances performance.
By now, you can see what all this preliminary checking is leading to. A mechanic would never consider tuning a car before checking it over for the first time. Likewise, you should never consider tuning your system before you know what type of system you have and how you use it. It's not enough to say that you have 24MB of RAM installed. The way you use that RAM determines whether it's sufficient. A 1GB hard drive might sound impressive, unless you're trying to create a lot of multimedia presentations with it. Then this'll sound like a rather paltry amount. (I've seen some multimedia systems that have 4GB of storage, although that's by no means standard.)
Performance Tips for a Minimal Setup
Memory would seem to be the biggest problem most people face on a system, but it really shouldn't be. I recently looked at memory prices at my local parts store and found that I could buy an 8MB SIMM for a mere $320. I'm almost positive that isn't the cheapest price in town, either. Although memory isn't free, it certainly isn't the most expensive upgrade you can make to your system. Few new items can provide as much potential for a noticeable increase in system performance as memory.
Microsoft will try to tell you that you can get by with as little as 12MB of RAM when running Windows NT (the Workstation versionóthe server version requires 16MB minimum). I wouldn't believe this if I were you. The minimum I recommend is 16MB, and that's if you intend to run only two or three applications at a time. Just think about these numbers for second. How many of you can say you run a single application? No one? I thought so. Think about how many applications you do run. At the very least, you'll probably find four or five applications running on your machine. Make sure that you include small applications like e-mail in the count. A more reasonable system will contain 32MB of RAM. Even with 32MB of RAM, I find my system a tad constraining at times. Of course, the opposite extreme exists as well. Few people I've talked to report any noticeable improvement in system performance after they exceed 128MB, although that's probably not due to any lack of effort on the part of Windows NT. Currently, a system with 32MB to 64MB is probably the maximum you need.
Suppose for the moment that your boss absolutely won't buy any additional memory for your machine and you're stuck at that 12MB level. What can you do to improve the situation? How can you stretch 12MB of RAM enough to make your single-tasking system (from a memory perspective) work as a multitasking system?
Tip: The generic optimization techniques in this section work equally well with Windows 95, WFW 3.x, and Windows 3.x workstations. If you're using Windows NT in a peer-to-peer LAN environment, it's very likely that you'll use a Windows NT workstation (or the server version) as your file server. You also might have some older machines that still use WFW 3.x connected to the network. Whatever your setup, these generic tips can help just about any workstation make better use of the memory it contains.
General Tuning Tips for Windows
There are a few quick and easy methods I recommend that you start with. Anyone can use these methods, but using them always involves some level of compromise that you might not be willing to make. The following list shows my quick fixes to memory problems:
- Wallpaper: Did you know that it costs you a little memory and some processing time to keep wallpaper on your system? If you have a memory-constrained system and can do without some bells and whistles, here's one item to get rid of. Don't think you'll save much by using smaller wallpaper or restricting yourself to patterns. Both items chew up some memory.
- Colors: The number of colors you use for your display directly affects the amount of memory it uses. A 16-color display uses roughly half the memory of a 256-color display. Although a 16-color display doesn't look as appealing as its 256-color or 32KB color counterpart, using one does help you save memory. You probably won't notice much of a difference in appearance if the programs on your machine are word processing and spreadsheets.
- Screen resolution: The resolution you set your display at affects processing speed and, to a much smaller degree, memory. Of course, the problem with changing your display resolution is fairly simple to figure out. You can probably get by with fewer colors, but fewer pixels is a whole different matter. You'll probably want to save changing the screen resolution as a last-ditch effort to get that last bit of needed performance.
- Doodads: I put a whole realm of utility programs into the "doodad" category. If you run one of the fancier screen savers rather than the built-in Windows counterpart, for example, you're wasting memory. The new screen saver might look pretty, but it'll really cost you in terms of performance. Some people also keep a small game program such as Solitaire running. These small applications might provide a few seconds of pleasure here and there, but you really don't need to keep them active all the time. If you insist on using that screen saver, run it right before you leave the room for a while and then exit it when you return. The same holds true with a game programókeep it open when you play it, and then close it before you get back to work.
- Icons and other graphics: Every icon displayed on your desktop consumes memory. The same holds true for any other form of graphics image or window. At least Windows NT doesn't penalize you for opening a folder like Windows 3.x did. Unlike Windows 3.x, you can actually recover the memory by closing the folder. The simple way of looking at this is to organize your data into folders and open only the folders that you need at any given time.
- Leaky applications: Some programs leak when it comes to memory. They allocate memory from Windows but never give it back, even after they terminate. After a while, you might find that you don't have enough memory to run programs even though you should. This problem was severe under Windows 3.x. It's less so under Windows 95 and Windows NT. The Windows NT data-centric interface, however, does tend to accelerate the rate at which memory seems to dissipate if you open and close an application for each data file you want to edit. You can alleviate this situation somewhat by keeping leaky applications open until you know for certain that you won't need them again later. You can find a leaky application by checking system resources and memory before you open it, opening and closing the application a few times (make sure that you also open some documents while inside), and then checking the amount of memory again after the last time you close it. If you find that you have less memory (I mean a measurable amount, not a few bytes),the application is leaky.
- Extra drivers: Windows 95 and Windows NT do a fairly good job of cleaning old drivers out of the registry. Windows 3.x, on the other hand, doesn't do any cleaning at all. No matter which version of Windows you use, you'll want to take the time to see whether all the drivers were removed from the system after you remove an application. This isn't such a big deal for newer applications that are specifically designed for Windows 95 or Windows NT. Both these newer operating systems provide a special installation utility that removes newer applications from the systemóincluding the files they stick in the SYSTEM directory and any references to them in the system files. What I'm talking about are those old Windows 3.x applications that don't remove anything.
- DOS applications: Nothing grabs memory and holds it like a DOS application under Windows. Unlike other applications, Windows normally can't move the memory used by a DOS application around to free space. This means that you might have a lot of memory on your system, but Windows won't be able to use it because it's all too fragmented. If your system is so constricted on memory that it can't tolerate even the smallest amount of memory fragmentation, you'll probably want to avoid using DOS applications.
Windows NT-Specific Tuning Tips
Now that we've gotten past the generic tips, let's look at a few Windows NT-specific ways to enhance overall system performance and the amount of memory you have available. Unfortunately, none of these tips will work for Windows 3.x systems. Even though many might work with Windows 95, you'll want to give them a long test before making them permanent. Some of these tips are Windows NT 4.x-specific; don't try using them with older versions of the product because you won't get the desired results.
- Use 486 or Pentium processors if possible. Windows 3.x didn't care about the processor you usedóonly the processing speed. The facts are plain: Windows 3.x used 16-bit code that ran equally well on any 386 or above processor. There's a big difference in performance when using different processor types under Windows NT because it uses 32-bit code. A 486 processor is better optimized to take advantage of 32-bit code. The Pentium is better still. A Pentium Pro is even better at running 32-bit applications, but it actually performs worse than the Pentium in the 16-bit area. (Intel is working on fixing this problem right now, but you'll want to stay with the Pentium if you run a lot of 16-bit applications.) Theoretically, you should notice a fairly substantial improvement in processing capability between a machine equipped with a 486 versus a 386 machine of the same processor speed. In reality, the difference is noticeable, but not that noticeable. You'll want to get the extra performance if possible, but don't worry about it until you take care of other problems, such as upgrading your memory.
- Increase the number of processors. One of the most common ways to add more performance to a Windows NT system is to add more than one processor. Some machines are designed to move from one, to two, to four processors. I recently saw one file server system that accepted 16 processors, but now we're getting out of the realm of possibility for a workstation. Don't think, though, that you'll get double the performance by adding another processor to a single processor machine. Some amount of overhead is involved in keeping the two processors working together. I've typically seen about one and three-fourths processor's worth of work out of a two-processor system. Obviously, your results will vary depending on how you use you system and the way in which the hardware is designed.
- Use an efficient hard drive format. Hard drive format affects system performance in several ways. The most obvious is direct file access; you'll get the best level of performance using an NTFS partition (you'll give up some flexibility to get this speed boost). The second area is a little less obvious. Placing your swap file on an NTFS partition can actually improve performance because NTFS is an optimized disk-formatting technology. I wouldn't count on a large speed improvement, however; moving your swap file is more in the line of an incremental improvement.
- Eliminate 16-bit drivers and DLLs. Windows NT is essentially a 32-bit operating system with some 16-bit compatibility components and a few items left over from Windows 3.x. It runs every 32-bit application in a separate session. Doing this allows Windows NT to perform some very intense memory management on the resources needed by that application. 16-bit applications also run in separate sessions (unlike Windows 95, where they run in a single session) but share resources. The amount of management Windows NT can perform on these shared resources is a lot less than what it can do for the individual 32-bit sessions because it can't make certain assumptions about how that memory is getting used. In addition, the 32-bit memory space is flat (every call is a near call), reducing the number of clock cycles required to make a function call or look at something in memory. On the other hand, the segmented address space used by 16-bit components requires two to three times the number of clock cycles to process because every call is a far call.
- Use folders in place of Explorer. Folders are more efficient to use than Explorer. This might seem like a contradiction in terms because folders use the Explorer interface, but it's not. Opening a copy of Explorer eats a lot more system resources than opening a folder. Actually, you might think this is a foregone conclusionóopening any application eats system resources. Here's the memory saver for you. Place all your data in folders, and then place a shortcut to those folders on the desktop. You can still get to all your important files without opening a copy of Explorer. The cost in memory is a lot less than keeping Explorer running all the time. Use Explorer to actually explore your system, not as a substitute for File Manager.
- Use context menus in place of the Control Panel. I find that I occasionally need to adjust the properties of various system elements during a session. Windows 3.x always forced me to open the Control Panel to make these adjustments. Old habits die hard. It took me a while to adjust to the new Windows NT way of dealing with this situation. Chapter 2 talked a lot about the context menu attached to every object. Using that context menu is not only more efficient from a keystroke perspective, but it uses less memory as well. This is something to consider if you need to keep an Object Properties dialog box open for any length of time.
- Reset your printer for RAW printing. Windows NT automatically installs support for Enhanced Metafile Format (EMF) printing on systems that it thinks will support it. This feature allows Windows NT to print faster by translating the output to generic commands in the foreground and then creating printer-specific output in the background. Creating generic commands requires a lot less processing time than writing printer-specific output. Changing the setting of the Spool Data Format field in the Spool Settings dialog box to RAW forces Windows NT to create a printer-specific output in the first pass. (You can access this dialog box by selecting the Details tab of the Printer Properties dialog box and clicking the Spool Settings button.) Using the RAW setting means that less operating system code is maintained in memory during the print process. Some memory-constrained systems receive a large benefit by using this print mode. Of course, the trade-off is longer foreground print times.
- Keep your disk defragmented. Older versions of Windows allowed you to create a permanent swap file. Using a permanent swap file improved performance by reducing hard disk head movement to read swap file data. It didn't matter how fragmented your drive got after you set up the swap file, because the swap file always resided in the same contiguous disk sectors. Windows NT doesn't provide the permanent swap file option. It always uses a temporary file. Microsoft has improved the access algorithms and reduced the penalty for using a temporary swap file, however. Of course, the system doesn't work perfectly. You can still get a highly fragmented drive that reduces system performance as Windows moves from area to area in an attempt to read the swap file. Defragmenting your drive reduces the possibility that the swap file will become too fragmented. Most people find that a weekly maintenance session takes care of this requirement.
- Place your swap file on the fastest drive. Windows NT usually chooses the NTFS formatted drive with the largest amount of available memory for the swap file. (There are other occasions in which the exact criteria Windows used to select a swap-file location eludes meóit seems to use hit-and-miss tactics from time to time.) In most cases, the drive it chooses doesn't make that big of a difference. If you have a system with one large, slow drive and a second small, fast drive, however, you'll probably want to change the virtual memory settings. See the section later in this chapter, "Using Windows NT Automatic Tuning Features," for details.
- Get rid of nonessentials. You'll find that some parts of Windows NT make your system slightly more efficient, but at a fairly large cost in memory. Enabling the International Settings feature (described in Chapter 2) makes your system more efficient if you work with several languages, for example, but that enhancement costs you some memory. Unfortunately, after you activate this feature, you can't deactivate it until you reboot the machineóthe memory is gone for good. The same holds true for the Resource Monitor and many of the other icons that appear on the Taskbar near the clock. All these features are nice to have but are not essential. The Accessibility options are a nice enhancement to have, for example, but you might want to get rid of them on a memory-constrained system unless you actually use them. Even though it doesn't display an icon on the Taskbar, installing this feature consumes some memory every time you start Windows NT.
Peter's Principle: Efficiency of Actions Versus Memory Usage
Something I'm discovering under Windows NT is that efficiency in action is sometimes accompanied by some decrease in memory usage. The Windows NT interface seems to be designed to make every movement as easy as possible (although some users still find it difficult to use).
Using features such as a context menu might not seem like a very big dealóyou save only two or three mouse clicks in most casesóbut they result in memory savings. Windows NT provides other speed-enhancing features that save you memory. Using the automatic settings for most of the system parameters such as virtual memory, for example, improves performance and enhances memory usage.
Some Windows NT features aren't only extremely efficient, but also save you a considerable amount of time. You'll find that using Explorer costs you a lot less memory compared to using Program Manager, for example. (A comparison on my machine shows system resources at 98 percent when using Explorer but only 87 percent when using Program Manager in the same configuration.) You can check this out on your machine by changing the shell=Explorer.exe line in SYSTEM.INI to shell=Progman.exe and then shutting down and rebooting your system. Using the Explorer interface is so much more efficient that I would never go back to Program Manager.
Finding Unneeded Hidden Drivers
At times, Windows NT does a less-than-perfect job of setting up your machine. Earlier, I mentioned that you should remove any unneeded drivers. What would happen if you had some "hidden" drivers you really didn't need installed on your system? Figure 3.1 shows a dialog box that illustrates this point perfectly. I installed Windows on a machine in a peer-to-peer networking environment. The installation program even asked about the level of support I wanted when I got to that point in the installation. It assumes that not everyone knows what they're talking about, however, so it installed both Microsoft and Novell support on my system. The Novell support goes to waste because this is a peer-to-peer network that doesn't connect to a NetWare file server. I have a Windows NT server, a Windows NT workstation, and a WFW 3.x machine all connected and sharing resources.
Figure 3.1. Sometimes Windows NT installs too much support. You can reduce your memory footprint and improve performance by getting rid of this additional support.
You need to look at three steps in this particular situation:
- Eliminate additional network support. You need to install support for only one network if you're using a peer-to-peer setup. In most cases, this means that you'll retain the Microsoft network and discard NetWare support. Likewise, if you don't plan to set up a peer-to-peer network, remove the Microsoft network support in a NetWare environment.
- Reduce the number of protocols you have installed. I typically maintain NetBEUI support for a peer-to-peer setup if at all possible. Of course, the protocol you choose must reflect the capabilities of the network you install. (You'll find a list of installed protocols on the Protocols page of the Network Properties dialog box.)
Tip: If you remove one of the protocols from your workstation and find that you can't connect to the other workstations, make sure that all the workstations are using the same protocol. Many people find that working networks suddenly fail when they try to optimize their setup. This simple fix of checking for network protocol consistency repairs the vast majority of "broken" installations.
- Install the fewest possible network services. Installing sharing support for a floppy drive is a waste of memory because it's unlikely that someone will need it. If someone does need it, you can always add the support later. Try starting out with the lowest level of support possible. You'll also want to think about which workstation printers you really want to share. If a workstation has an older printer attached, you probably won't want to install print sharing support for it.
Looking Ahead: Chapter 21, "Peer-to-Peer Networking," talks about peer-to-peer networks in detail. Likewise, Chapter 22, "Client/Server Networking," talks about client/server networks in detail. These two chapters will tell you about the mechanics of your network connection. You should also spend some time reading Chapter 23, which talks about security issues. You have to weigh the reliability and flexibility of your network connections against the need to save memory.
DOS Application Performance Tips
DOS applications represent a big challenge under Windows 3.x. I'd love to say that Windows NT will run every DOS application you ever owned without any major configuration problems, but that wouldn't be very accurate. In fact, if you're going to run a lot of DOS applications, Windows NT isn't even the best operating system you could choose. The bottom line is that Windows 95 runs these older applications far better than Windows NT or Windows 3.x. If you only plan to run a few well-behaved DOS applications, however, Windows NT can still get the job done. It's best to remember that you will encounter problems when running certain DOS applications, and you need to tune your system to avoid them.
The good news is that you can make all the required changes using the application's Properties dialog box. Windows NT supports all the old configuration features provided by Windows 3.x and adds quite a few of its own. This means that you can make the required changes by right-clicking the object and choosing Properties from the context menu. The first thing you'll see is an <Application> Properties dialog box similar to the one shown in Figure 3.2. Everything you need to run DOS applications efficiently under Windows NT appears in this dialog box. It replaces the PIF Editor used in previous versions of Windows.
Figure 3.2. The <Application> Properties dialog box.
There are many similarities between the entries you'll find in the Properties dialog box and those in the PIF files of previous versions of Windows. Don't be fooled. Windows NT provides much the same functionality as those previous versions; it just makes it a bit easier to change the settings. Fortunately, the Properties dialog box does add some much-needed fields and a new mode or two.
Several tabs directly affect the way a DOS application behaves under Windows NT. The first one we'll look at appears in Figure 3.3. The Program tab contains some fields that tell Windows NT what application to run and where to run it. This includes the application name and its working directory. The area of concern for this chapter is the Windows NT button near the bottom of the dialog box. Clicking that button displays the Windows NT PIF Settings dialog box shown in Figure 3.4, which contains some of the DOS-specific settings that affect how Windows NT will react.
Figure 3.3. The Program tab of the <Application> Properties dialog box.
Figure 3.4. The Windows NT PIF Settings dialog box.
You only get a few tools to run DOS applications under Windows NT. The fact that you can choose a special AUTOEXEC.BAT and CONFIG.SYS file to run a troublesome application certainly helps. You'd place the name and location of those files in this dialog box. This particular feature helps you run two categories of DOS applications. The first category is game programs. Using special AUTOEXEC.BAT and CONFIG.SYS files can make a big difference. Even this advantage won't allow you to run an ill-behaved DOS application, however. Notice the Compatible Timer Hardware Emulation checkbox. I usually select this option for games as well, because many games use timing loops rather than interrupt-driven programming techniques to keep game components in sync. Unfortunately, checking this box also involves a penalty. Running an application that has this box checked usually wastes processor cycles, because Windows NT must spend additional time processing the application's needs.
The other categoryóstrangely enoughóis older graphics applications. Using tuned AUTOEXEC.BAT and CONFIG.SYS files can help these applications use system memory more efficiently and run better in most cases. The old copy of Harvard Graphics I had lying around performed almost twice as fast using hand-tuned files as it did using the default files shown in Figure 3.4, for example. After a bit of research, I concluded that this was due to a combination of factors, such as direct-screen writing and other rule-breaking behaviors that create problems for these applications. I'd still say that this is the exception to the rule. The best idea is to check out an application using the default files first; creating hand-tuned files is a very time-consuming and resource-wasting endeavor. Better yet, replace it with a Windows NT-specific product if at all possible.
The Memory tab, shown in Figure 3.5, can also help you obtain the best possible setup for your application. In most cases, you'll want to stick to the Auto setting. However, I have several applications that require more environment space than the Auto setting provides. All you need to do is adjust the setting of the drop-down listbox as required. The same thing holds true for any other memory settings you might need to adjust.
Figure 3.5.The Memory tab allows you to customize the DOS application's memory settings.
There's one thing you should always keep in mind with this tab. Setting any memory entries you don't need to None will save system memory and allow Windows NT to provide better services to the rest of the applications on your machine. Windows NT always assumes a worst-case scenario with DOS applications; setting the various memory options gives it a little more information to work with.
The Protected checkbox in the Conventional Memory group is a two-edged sword. Setting it will allow some applications to run. It will also prevent Windows NT from moving applications around in memory. Some applications that access memory directly need this kind of protection. The down side of checking this box is that a fixed session in memory always increases memory fragmentation and the chance that you'll artificially run out of memory.
The last tab we'll look at from a performance perspective is the Screen tab, shown in Figure 3.6. We'll talk about only two checkboxes in this chapter; the rest are covered in Chapter 13, "Exploiting Your Software." Not surprisingly, both checkboxes appear in the Performance group.
Figure 3.6. The Screen tab provides two performance settings.
The Dynamic Memory Allocation checkbox is the important one here. As with the Protected checkbox on the Memory tab, this checkbox determines whether Windows NT can move memory around. Here's the problem. Many graphics applications resort to using direct screen writes to get the performance they need. Those same graphics applications won't work under Windows NT if you keep this box checked, because Windows might move the "virtual" screen that the application is actually writing to somewhere else. The warning sign you need to look for on a graphics application is some type of distortion. Most applications display vertical bars or some type of striation. You might see part of the display shift or what appears to be cursor trails on-screen. All these types of distortion tell you that you need to uncheck the Dynamic Memory Allocation checkbox.
Another group of applications somewhere (I've yet to find it in my office) needs to directly access the ROM routines. The Fast ROM Emulation checkbox tells Windows NT to emulate the display ROM in fast protected-mode RAM. If your application is looking for the system ROM in conventional memory, however, it won't find the emulated version. One way to tell whether your application needs to have this box unchecked is if you get unexplainable system crashes that you can't pinpoint to another cause. These crashes could be caused when the application looks for ROM code at a certain address and doesn't find it.
Multitasking System Performance Tips
Getting more than one application to run on a system at the same time usually involves making some compromises. You can tune a single-tasking system to provide the best performance for that one application. You could tune your system in such a way that a disk-intensive application gets everything it needs in order to get the job done quickly, for example. But what happens if you run one application that's disk-intensive and another that's CPU-intensive? Do you starve the resources of one to get better performance from the other?
We've already looked at most of the generic ways to provide additional memory. This is one area you'll need to concentrate on if you plan to multitask. Running more than one application at once always consumes a lot of memory. What you might not realize is that your performance levels might become artificially low because of the way in which Windows NT handles memory management.
Disk swapping, the same feature that provides so much virtual memory for your applications, can also wreak havoc in a multitasking environment. Two big clues tell you when disk swapping has become a problem and not a cure. First, you'll notice a dramatic increase in your system's disk activity. This isn't always a bad thing under Windows NT, but it is an indicator. Windows NT uses a very aggressive disk-writing algorithm to make the most of system idle time. You might see what seems like a lot of disk activity, when all Windows NT is doing is writing some of the data from memory to disk.
The second clue will tell you just how bad the memory situation is. Look at the size of your swap file. If your swap file is about the same size as your real memory, your system is memory-starved, and you really can't run the number of applications you're trying to run. Windows NT will try its best to provide a satisfactory level of performance, but the truth is that you just won't see it.
There are far more scientific ways to precisely measure system performance, and we'll look at them in the next section. The two clues we just discussed provide you with a very quick idea of what your system performance is like right this minute without wasting a lot of your time trying to define it completely. Of course, using Performance Monitor to display your actual system performance for your boss could get you the memory upgrade you've been wanting.
You'll also want to take into account the needs of the LAN as a whole if your system doubles as a file server. A peer-to-peer network depends on the resources of one or more workstations to act as file and print servers. This doubling of tasks is really another form of multitasking. You might run only one or two tasks on your machine, but it'll run very slowly if you don't take into account the needs of other people who are using your system. In this case, however, a simple look at the swap file and disk activity probably won't provide you with enough information. You'll have to monitor the network statistics using the Performance Monitor program.
Windows NT also provides another utility (actually, a Control Panel applet) that will come in handy here. The Server applet (described in Chapter 21) provides information about who is logged in and what type of resource they're using. You can combine this information with that obtained from Performance Monitor to create a clear picture of how your machine is being used in the network environment. Figure 3.7 shows a typical example of the type of information you can expect. Making a correlation between who is using which resource and what the level of activity is might seem like a difficult task, but after a while, you'll notice certain patterns emerging. You can use those patterns as basis for tuning your system.
Figure 3.7. The Server applet allows you to monitor who is sharing your computer and which resources they're using.
Load balancing was a term I thought I'd never have to apply to a PC, but here it is. You can get better performance out of your system if you balance the types of tasks it performs. Scheduling all your disk-intensive tasks to run at the same time is one sure way to bring your system to its knees. Likewise, scheduling all your CPU-intensive tasks at the same time will garner the same resultsóonly faster. If you're working on a spreadsheet in the foreground, that might be a good time to compile an application or perform some database-related task in the background. Of course, the opposite is true as well. You can always perform that really intense spreadsheet recalculation in the background while performing data entry in the foreground.
Tip: Unlike previous version of Windows, Windows NT actually does a reasonable job of downloading files and performing other forms of on-line communication in the background. I recently spent almost eight hours downloading a new copy of some Windows NT files from the Internet at 28.8 Kbps while working on articles and my spreadsheet in the foreground. I never did miss a file or experience any form of corruption. Under Windows 3.x, I would've had to give up my system for the day in similar circumstances. One rule of thumb you need to follow is to keep resource-hogging, 16-bit applications to a minimum. Windows NT does a good job of handling short delays without losing characters. Some older applications, however, grab the system for so long that background communications are impossible even with the improved features that Windows NT provides.
There's one final consideration you need to think of when you want to get the most out of your multitasking environment. Using 16-bit applications under Windows NT means that you must suffer the consequences of cooperative multitasking. In essence, a program can be a bad sport and grab the system for a long period of time (fortunately, Windows NT maintains positive control of the system so that it can reduce the impact of this system-hogging behavior). 32-bit applications don't get this kind of treatment. Ready or not, they have to turn control of the system back over to Windows NT at specific intervals. The difference between multitasking 16-bit and 32-bit applications will absolutely amaze you. If multitasking is the name of the game, 32-bit applications are what you need to make it work smoothly.
Checking for Interactions with Event Viewer
Windows NT is a complex operating system, there's no doubt about it. A change that looks fine when you make it might cause unexpected results. You might remove a device driver that you think is no longer in use, for example, only to find that it really is being used by some part of the system. Windows NT does a good job of keeping you out of trouble for the most part, but it's not perfect.
There's a tool that can help you out, though. You can use the Event Viewer to keep track of the workstation as a whole (see Figure 3.8). Any events that get logged in here tell you something about your computer. There are security as well as other system events. I want to concentrate on those events that will affect your performance-tuning efforts in this section. We'll look at other event types as the book progresses.
Figure 3.8. You can use the Event Viewer to keep track of system events and monitor your system for any negative results from performance tuning.
You'll want to make sure that you're looking at the system log. Use the Log | System Log command to display it. There are two other logs: security and application, but we won't talk about them here. Now that you have the right log selected, look for any red stop sign (Error) icons. Those are the icons that tell you something is wrong in the system. Figure 3.8 shows several of these icons. In this case, I forced them to appear to show you what they look like. You'll notice two other icons here as well. The blue information icon simply tells you about a non-critical system event. For the most part, you can ignore these icons unless you want to track some specific system event. The warning icons (the yellow exclamation points) tell about a special event. In this case, Windows NT is turning on bus mastering support for my IDE controller. You'll want to check out these icons, but they're usually non-critical as well. Event viewer also supports two other icons, but we won't see them here: success audit and failure audit.
Obviously, the short descriptions shown in the Event Viewer window don't tell you enough to fix a problem. Select any of the lines and press Enter to see the Event Detail dialog box shown in Figure 3.9. Notice that it tells you exact details about what caused a particular event to happen. You can use this information to troubleshoot the problem. This dialog box doesn't tell you about the interactions that take place between system components, however. In other words, you may remove a much needed driver, but some other component will fail as a result. You might see the failed component in the Event Viewer and have to work your way back to the missing driver.
Figure 3.9. T he Event Viewer provides detailed information about the cause of a particular entry in a log.
Monitoring the Results of Performance Enhancements
I use three methods to monitor the results of any optimization changes I make. The first is by looking at the Resource Monitor. Checking how much system resource memory you have left after an optimization is one way to see whether the change was effective. I also monitor the size of the swap file. Even though this isn't a precise measure of the state of system memory, it does provide an overall indicator of system memory. Windows NT increases the size of the swap file as it needs more memory, so checking on the size of the swap file is one way to see how much memory Windows NT needs over the physical memory available on the system.
The third method is an actual monitoring tool. Performance Monitor is an optional utility that you can install, and it's a very worthwhile tool. It allows you to track a variety of system statistics, including CPU usage and actual memory allocation. Monitoring these statistics will tell you whether a certain optimization strategy was successful. Performance Monitor also provides a means of detecting performance-robbing hardware and software errors on the system. Figure 3.10 shows a typical Performance Monitor display.
Figure 3.10. The Performance Monitor allows you to view system events and to monitor the effects of configuration changes.
When you start Performance Monitor for the very first time, you'll get a blank screen. Before you can do anything, you'll need to select some events to monitor. I decided to monitor CPU usage statistics for the machine I was testing. Figure 3.10 shows one way to display this information. There are four buttons on the toolbar that change the way you track information: Chart, Alert, Log, and Report. You can also use the View menu to change the presentation. I find that the chart presentation is the most helpful when I need to monitor system performance over a long interval. The alert presentation shown in Figure 3.11 comes in handy when I'm looking for a specific event to happen. You might want to reduce the network load on a particular machine, for example. You could use the alert presentation to display specific levels of machine overuse. The log presentation is the longest-term storage technique (see Figure 3.12). It helps me track trends in computer usage over a period of weeksósomething you'll need to do to track some types of network problems. Unlike the other presentation types, you must select an entire object to log instead of specific statistics. (I'll tell you later how to display the contents of a log file on-screen.) The final view, report, is handy when I need to present my statistics to someone else or need a quick update for myself. You can see an example of this presentation in Figure 3.13.
Figure 3.11. The alert view allows you to detect specific events.
Figure 3.12. You'll find the log view handy for tracking long-term usage trends.
Figure 3.13. The report view is important when you need to share information with other people or give yourself a quick update.
Performance Monitor uses a default monitoring period of five seconds. This might not be fast enough in certain situations. If you're troubleshooting a bad NIC or you want instant feedback on a configuration change, you'll want to change this setting to a lower value. Likewise, if you're performing long-term monitoring, you might want to set it to a high value. Use the Options button within any of the views to change this setting. Figure 3.14 shows the dialog box that changes the interval for the chart presentation.
Figure 3.14. Short intervals aid troubleshooting efforts; long intervals help you monitor your machine's performance more accurately.
There's something else you should notice about this dialog box. It allows you to change the method of presentation. Each of the views that I described previously allows you to do this. In the chart view shown, for example, you can add both a horizontal and a vertical grid. The log view displays a modified File Open dialog box, which allows you to create a new log. The same dialog box allows you to start and stop log entries.
The second set of three toolbar buttons allow you to change the items Performance Monitor displays. Use the Add Counter button to add new items to the list. Figure 3.15 shows a typical Add to Chart dialog box. The other views' Add To dialog boxes work in about the same way as this one. You select an object like the processor to monitor, and then you select an instance of that object. In the case of a processor, you may only have one instance, but disk drives usually provide several instances. After you select an instance of an object, you can select one of the counters (the items that Performance Monitor will track). There are a few bells and whistles here as well. You can select a specific color and line width for your counter, for example. You can use the Modify Selected Counter tool to change the way Performance Monitor displays a particular value. You might want to display something in green rather than blue, for example. You can also change the upper limit of some values to provide a consistent range of values for particular items. Finally, you can use the Delete Selected Counter tool to remove an item from the monitoring list. Remember that the more items you display on-screen, the less screen area each item receives. This, in turn, limits the accuracy of the readings you'll take. Make sure that you monitor only the essentials. For that matter, you might want to break the items into groups and monitor a single group at a time.
Figure 3.15. The Add to Chart dialog box allows you to add counters for Performance Monitor to track.
Tip: Every counter addition dialog box contains an Explain button like the one shown in Figure 3.15. Click this button if you don't understand what a particular statistic is all about.
What types of things will Performance Monitor track for you? You can track everything from the number of bytes the disk writes per second to the number of times someone tries to access your machine from the network. Performance Monitor tracks a lot more items than I have room to talk about here, and Microsoft keeps adding more items with every version of Windows NT. In addition, there's no limit to the ways in which you can arrange the items you want to track. It's also important to note that you can track each resource (called an instance of an object) individually. This means that you can display the same statistic for each disk drive on your machine.
Let's look at one other item in our whirlwind tour of this particular utility. I mentioned earlier that you can create log files of counters that you plan to monitor over a long period of time. In reality, you have to store entire objects (and all instances of that object). You add objects to your log just like you would any of the other views I've talked about so far. You also need to select a log file and start the log to record any data. Figure 3.16 shows a typical Add to Log dialog box, which you access by choosing the Options | Log command or by pressing Ctrl+O. This is where you'll select the objects you want to monitor. Figure 3.17 shows the Log Options dialog box. This is where you'll enter the name of a file in which to store the data and actually start the recording process.
Figure 3.16. You can use the Add to Log dialog box to define the objects you want to log.
Figure 3.17. You can use the Log Options dialog box to start the actual data-recording process.
There are two buttons on the toolbar that I haven't talked about so far in this discussion. The Update Counter Data tool allows you to break the normal recording interval. Suppose that you get an alert and want to record system conditions at a specific time instead of waiting for the normal recording interval. Clicking this button updates all the counter values immediately. You can use this button in any of the four views, but it's most useful here.
The other button, Commented Marker, is just as handy. You can use this tool to add a commented marker to your log. I normally click the Update Counter Data button first and then the Commented Marker button. You'll see a dialog box asking you for a comment. Type a comment and click OK to make the addition permanent. You can add as many comments as needed to get the job done. I usually make mine short but very specific. I'll show you how these comments actually look in the log in just a few moments.
OK, so you've recorded a log and want to view the results in chart form. How do you do it? The first step is to click the Chart view button on the toolbar. Use the Options | Data From command to display the Data From dialog box shown in Figure 3.18. Notice that you can choose to view the current activity or the contents of a particular log. I recorded a log for this example, so I entered the name, selected the Log File option, and clicked OK. The first thing you'll notice is that the chart display is static instead of constantly updated. You'll have to add your counters back in because Performance Monitor will erase them.
Figure 3.18. You can use the Data From dialog box to view data you recorded in a log earlier or to view the current activity.
Now that your recorded counters are displayed, let's look at another important feature of Performance Monitor. If you're recording data for days or even weeks, you won't want to look at all the data in one big lump. Wouldn't it be nice if you could look at just a small piece of it? Performance Monitor allows you to do just that. Choose the Edit | Timeframe command to display the Input Log File Timeframe dialog box shown in Figure 3.19.
Figure 3.19. You use the Input Log File Timeframe dialog box to select a subset of the data you've recorded for display.
This dialog box contains two main areas. The first area contains a timeline. You can see the start and end of the recording period, along with the start and end of the display period (the data you'll actually see on-screen). Notice that there are what appear to be buttons or bars at either end of the timeline. If you move these bars, you'll change the starting and ending time of the data that you'll actually view on-screen. Changing these bars also changes the position of two gray lines on the chart. The lines show you where the data display will begin and end.
Look at the area below the graphical time display. Performance Monitor always places one bookmark in the file for you. The bookmark tells you when the recording period started. Notice that there's a second bookmark listed in Figure 3.19. This bookmark is the one that I added earlier. Highlighting a bookmark and then clicking the Set as Start or Set as Stop button moves the buttons in the timeline display. You can use this as a method for finding specific areas of your log file.
On Your Own
Practice creating long file names that a DOS or Windows 3.x user can understand. Use Explorer to create a new file in a temporary folder and give it a long file name. Then open the DOS prompt and view that same file name. Does the name make sense in both contexts? If not, you'll need to spend a little more time working on this. Remember that you're effectively reduced to six characters for the file name because of the way that Windows NT differentiates between different files with similar long file names.
Spend some time learning to use the Event Viewer. What kinds of events does your system appear to monitor as a default? Do you see any events that require your immediate attention? How do the Event Viewer entries help you diagnose problems?
Learn to use the Performance Monitor as both a diagnostic aid and a tuning tool. What type of setup helps you most when it comes time to tune your system? Make sure that you try various setups to perform specific kinds of tuning. You'd want to monitor disk statistics when tuning your hard drive, for example, and network statistics when monitoring your connection efficiency. Likewise, what setup works best for various types of diagnostic situations?
© Copyright, Macmillan Computer Publishing. All rights reserved.
Table of Contents
Peter Norton's Complete Guide to Windows NT 4 Workstation
Table of Contents:
- Windows NT Workstation at a Glance
- Chapter 1 - A Decade Spent with Windows
- Chapter 2 - Exploring the Interface
- Chapter 3 - Performance Primer
- Chapter 4 - Setup Primer
- Chapter 5 - Startup Shortcuts
- Chapter 6 - An Architectural Overview
- Chapter 7 - Understanding the Windows NT Registry
- Chapter 8 - Memory Management
- Chapter 9 - A Tale of Three File Systems
- Chapter 10 - Graphics NT Style
- Chapter 11 - Printing NT Style
- Chapter 12 - DDE and OLE
- Chapter 13 - Exploiting Your Software
- Chapter 14 - Exploiting Your Hardware
- Chapter 15 - Fonts and Printing
- Chapter 16 - Multimedia Under Windows NT
- Chapter 17 - Windows NT Connections
- Chapter 18 - Talking to the Outside World
- Chapter 19 - Surfing the Net
- Chapter 20 - Building Your Own Internet Server
- Chapter 21 - Peer- to- Peer Networking
- Chapter 22 - Client/Server Networking
- Chapter 23 - Security Issues
- Chapter 24 - Software Problems
- Chapter 25 - Hardware Problems
- Chapter 26 - Windows NT Maintenance Programs
- Appendix A - On- Line Resources
- Appendix B - Internet Service Providers
- Appendix C - Glossary
© Copyright, Macmillan Computer Publishing. All rights