Thread Management Boosts App Performance
Ever faster CPU and bus speeds mask and often delay the need for better application performance. But sooner or later, optimization becomes necessary. Compaq Computer Corp. is gearing up to help improve optimization with its new Application Optimizer for Windows NT product.
Application Optimizer functions as an installed service that assists the system administrator in deriving optimum performance from multithreaded applications running under Windows NT. Compaq says these applications range from multithreaded Visual C++ or Visual Basic applications to system-resident systems such as SQL Server, Microsoft Transaction Server (MTS) and Internet Information Server (IIS).
Compaq has drawn on its existing technology, in this case, the Digital DB Web Connector, an engine that was designed for optimizing multithreaded Web servers such as Microsoft’s IIS. Bob Slone, product marketing manager for commercial software products with Compaq, says, "As the number of concurrent users increases, performance decreases because of locking, contention, paging, etc. Application Optimizer can bring order to this chaos and give users the option of improving performance without additional hardware investments."
Application Optimizer works by throttling the amount of threads that are allocated to a given operating system function. By definition, Windows NT processes are multithreaded, and Application Optimizer leverages this model by providing performance tuning beyond that available within Windows NT. In a transaction processing application, three basic functions are performed: display interaction, workflow processing and database access. By separating the processes and setting the amount of threads available on each process, the system performance can be tweaked to an optimum level.
"During internal tests we found that Application Optimizer for Windows NT could increase transaction throughput on Windows NT by [as] much as 20 percent," says Art Zina, enhancements for MTS program manager at Compaq. "Using fewer database connect threads -- 25 vs. 79 -- the transaction rate increased from 210 transactions per second [tps] to 257 tps while memory usage was reduced from 263 MB to 175 MB."
In this environment, MTS inherently controls the number of database connections with its Resource Dispenser and reserves between 80 and 100 threads in the connection pool at any given time. The Application Optimizer establishes a fixed number of requests for the database, which reduces the amount of overhead on the database due to locking conflicts and concurrent thread connection, and boosts the maximum tps that can be achieved.
Compaq believes IIS will benefit, too. Within the process environment of IIS, each connecting Web client is allocated a separate thread of execution. If the Web application is data-driven, there also will be one database connection per Web connection. This can cause performance degradation in the supporting RDBMS. Application Optimizer can control the number of database access threads in proportion to the number of presentation and workflow threads, reducing database contention.
Because the product is so new, administration in version 1 requires Interface Definition Language script generation to gain access to the underlying methods and properties to control the spawning of threads in the target process. In version 2, slated for November, Application Optimizer will have a DLL with all the required methods and properties to enable easier development of performance management applications.