How can I accelerate Zeus' performance with Sun's Network Cache Accelerator?What is NCA?NCA is Sun's Network Cache Accelerator, sometimes referred to as SNCA. It is an in-kernel web accelerator, which sits in front of a compatible web server, e.g. Zeus. From a Sun press release: "Network Cache Accelerator (NCA) socket support has been added to automatically increase the performance of most socket-based web servers without requiring any modifications. The NCA socket support makes it easier to manage web services across heterogeneous web servers including a significant time savings for service providers by not having to port web services to multiple web servers. The result is up to five times increased performance of web servers for service providers." Why would I want to use it?NCA intercepts all HTTP requests to the system where it is running. If NCA is able to respond to a request from its cache, it will do so rather than forwarding the request to the web server. This has the effect of reducing the workload on Zeus, and generally improving web performance. If your site contains a large amount of static content, it is an ideal candidate for using NCA. If your site contains primarily dynamic content, is it less likely that using NCA will give you a performance boost. What is the minimal Solaris version I need to use it?For Zeus to take full advantage of NCA, you need to be running Solaris 8 (7/01), or above.
Older versions of Solaris are not supported. How can I tell if my zeus.web is NCA-capable?Any zeus.web that came from a package Zeus_*-NCA.tar.gz isNCA-capable. How do I enable it - or, What are the various config settings?First, you need to ensure it is enabled in the operating system. Look for the line "status=enabled" in /etc/nca/ncakmod.conf, also read the nca man page ("man nca"). If you need to change this line, you will need to reboot. Second, since NCA only listens on port 80, your web site MUST be running on port 80. Finally, you need to add the following line to $ZEUSHOME/web/global.cfg:
Restart Zeus for this tunable to take effect. If "tuning!use_nca" is not set, the web server behaves as normal, and may be run on a Solaris 8 or newer system with NCA disabled or uninstalled. How do I tell whether it is running?The simplest way to test this is to first request a static page with Zeus running, then stop Zeus and request the same page again. NCA should have cached the response, and will now be able to reply to the request without the aid of Zeus. For testing this, it is recommended you use httpclient, as some browsers can pass HTTP headers in the request which cause NCA to always pass the request to Zeus! Alternatively, you can look at the access logs to determine whether NCA is handling the requests. Note that any requests handled by Zeus will go to your regular access log, whereas any requests handled by NCA will go to a separate log. The file /etc/nca/ncalogd.conf controls whether NCA performs logging, and the location of the logfile. Read the NCA man page ("man nca") for more information; it is possible you will need to use the ncab2clf (bundled with Solaris) utility to read the NCA logfiles. Note that there is an easy way to tell if NCA is NOT running: if you set "tuning!use_nca yes" and have your server listening on port 80, you will see an error message on Zeus startup if the operating system doesn't have NCA support (i.e. if support is disabled, or simply missing). Once NCA has been enabled, it operates almost entirely independently from the Zeus Web Server: it handles its own caching and its own access control. It will only contact Zeus for requests, such as those for dynamic content, that are beyond its capability to handle. You may wish to adjust your Zeus caching tunables to take account of this, as static content will now normally be handled elsewhere.
Content Manager
[Administrator] 19 September 2005
|
Recently...
Other Resources
|

