Operating System:
Tuning of RAM
"Application Server" settings for server boxes
Disabling unnecessary services
Hard drive speed / configuration
Paging file configurations i.e. where, how big, how many
Locations (and configuration) of IIS logs and SQL Server Transaction Logs.
Network throughput and TCP packet size tuning for the Intranet.
COM+:
Server vs Library Applications (Performance)
Placing congruent COM+ business objects into the same application package
Resource Pooling vs. GetObjectContext() method for ASP and within COM+
VB objects
Application Component Grouping - the middle-tier components should be
divided into time-dependent and time-independent services (i.e. MSMQ,
"service" type components)
Look into different ways to have asynchronous (background) or
scheduled (services/ MSMQ) operation of long  running queries rather
than client having to wait for them to finish while trying to use the
application.
BaseAddress Allocation  All components should have a unique DLL Base
Address to avoid object creation contention at the server level
Correct Setting of VB Project Compile Settings to enable maximum COM+
scalability ("Unattended Execution" and "Retained in Memory")
Optimization at the code logic level (e.g., using the new built-in
"Split", "Join" and "Replace" functions vs. older slow "looping"
hand-coded functions)
Additional Compile-Time optimizations can speed up components (where
permissible):
Optimize for fast code
Assume no Aliasing
Remove array bounds checks
Remove Floating Point Error checks
Allow Unrounded floating point operations
Remove safe Pentium FDIV checks
Internet Information Services:
Use of Response.IsClientConnected to minimize overhead on long-running queries
COM objects are released earlier if they do not use the OnEndPage
method but use ObjectContext.SetComplete instead.
IIS Server Settings:
ASPQueueConnectionTestTime
ASPThreadGateEnabled
ASPProcessorThreadMax
ASPScriptEngineCacheMax
ASPScriptFileCacheSize
ASPRequestQueueMax
ObjectCacheTTL Registry Setting (not present by default)
Setting of aggressive Connection Timeouts to combat network latency
Use of Process Throttling for certain applications
Using HTTP KeepAlives
Optimize DHTML and other page  generating code to most efficiently
use the IE5.5 browser's capabilities in the DOM / DHTML object model.
Making sure Debugging is turned off (locks down to single thread)
Turn off ASP Session State for pages / Apps that don't use it or use a
SQL Server Session Management component instead
Store log files on separate disks and remove nonessential information
Use CPU Throttling for rogue out-of-process applications.
Pooling of web applications with ISM Application (isolation)
protection settings  (Low, Medium, High)
Synchronization of IWAM_
Use of Terminal Services to remotely administer servers.
Monitoring and testing of Server Performance with WCAT ("Homer"),
HTTPMonitor and Network Monitor.
Performance Counters and recorded results reports
Add <% @enablesessionstate=false %>at top of pages not using session vars.
SQL Server Performance Tuning:
Creation and tuning of proper indexes for all tables
Avoid storing of unnecessary logging information in production mode
Optimization of stored procedure queries for speed
Always use the adCmdStoredProc property in ASP stored proc execution
Use LookupTable object (Free Âthreaded) in Application Scope to cache
frequently-used data
If using COM+ components to access SQL Server, make sure that
SetComplete or SetAbort methods are called correctly to release server
resources. Make sure all connection objects are opened as late as
possible, and closed as early as possible, and set to "Nothing" to
release back to connection pool.
Recordsets should be opened explicitly and the correct "lowest
resource use" properties set for the particular situation. Recordsets
should be closed and extinguished to free resources as soon as
possible.
NT Windows Fibers
Max Async IO
Default Network Packet Size for SQL Server
MinMemoryPerQuery Setting
PriorityBoost / TimeSlice / MaxWorkerThreads service settings for SQL
Server on dedicated machine
Obviously, this is not a complete list by any means. But if you are
charged with performance tuning of a web - based application running
on Windows 2000 and using SQL Server as the data store, this should be
a good start!
No comments:
Post a Comment