Chapter 6: Creating Scalable and Highly Available Web Sites
137
Avoiding common bottlenecks
In addition to application design and construction considerations, you must also plan
accordingly to avoid common bottlenecks that can negatively affect a Web
application’s performance.
Following are typical bottlenecks that can affect your application’s ability to perform
and scale well:
•
Poorly written application logic
— Inefficient programming is probably the
most common reason applications perform poorly. Instituting industry best
practices, such as coding standards, design reviews, and code walkthroughs,
can significantly help to alleviate this problem.
•
Processor capacity
— Even a well architected and programmed Web
application can perform poorly if the Web server’s CPU is unable to provide
sufficient processing power. Make sure that heavy load, mission-critical
applications reside on hardware that can effectively do the job.
•
Memory
— Insufficient Random Access Memory (RAM) limits the amount of
application data that can be cached. Ensure that the amount of memory
installed on the application server machine is commensurate with the needs of
the Web application.
•
Server congestion
— Server congestion refers to all type of servers, not just the
Web server. Your application, proxy, search and index, and backoffice servers
can periodically experience high volume that indirectly degrades the
performance of your Web application. Therefore, when planning the physical
design of the system, be sure to investigate carefully the network topology that
will be implemented to ensure that existing servers are up to the task. If they are
not, you may need to add new servers to the topology to ensure uninterrupted
service and performance expectations.
•
Firewalls
— Some dynamic applications that must restrict anonymous access
because they present or share confidential information must pass through a
corporate firewall, which can slow down requests and responses. Make sure
that the correct ports are open on the firewall to ensure valid security
authentication and to enable appropriate client/server communications. (You
may be able to open additional secure ports to accommodate increased traffic.)
•
Network connectivity and bandwidth
— Consider the type of network your
application will run on (LAN/WAN/Internet) and how much traffic it typically
receives. If traffic is consistently heavy, you may need to add additional nodes,
routers, switches, or hubs to the network to handle the increased traffic.
•
Databases
— Database access, while vitally important to your application’s
capabilities and feature set, can be costly in terms of performance and
scalability if it is not engineered efficiently. When creating data sources for
accessing your database, use a native database driver rather than an ODBC
driver if possible because it will provide faster access. Similarly, try to reduce the
number of individual SQL queries that must be repetitiously constructed and
submitted by placing common database queries in stored procedures that
Summary of Contents for COLDFUSION 4.5-ADMINISTRING COLDFUSION...
Page 1: ...Allaire Corporation Administering ColdFusion Server ColdFusion 4 5...
Page 10: ...x Administering ColdFusion Server...
Page 22: ...xxii AdministeringColdFusionServer...
Page 48: ...26 Administering ColdFusion Server...
Page 58: ...36 Administering ColdFusion Server...
Page 60: ...38 Administering ColdFusion Server Using ColdFusion in a Distributed Configuration 68...
Page 98: ...76 Administering ColdFusion Server...
Page 150: ...128 Administering ColdFusion Server...
Page 198: ...176 Administering ColdFusion Server...
Page 205: ...Chapter 6 Creating Scalable and Highly Available Web Sites 183 3 Click the DNS tab...