AWStats logfile analyzer 5.4 Documentation

 


Benchmarks


AWStats update process must be ran frequently, so it's important to know what is AWStats speed to choose an optimum delay between each update process according to AWStats speed and the refresh rate you need to have.
AWStats speed depends on AWStats version and options/setup you use in configuration file.


This is benchmark results with AWStats version 5.3 and a common configuration:

HARDWARE: Athlon 1 GHz / 128Mb
SOFTWARE: Windows 2000 / Perl 5.8 (Standard Perl)
CONFIG OPTIONS: Default values were used: LogFormat=1, DNSLookup=0, URLWithQuery=0, URLReferrerWithQuery=0, URLWithAnchor=0, No plugins
AVERAGE SPEED: 4500 lines by seconds
Other times for different kind of web sites sizes are shown later in this page...


This is other important information to know:

- A log file size is about 150 (NCSA common/CLF log files) to 320 times (NCSA extended/XLF/ELF log files) its number of lines,
- 1,000 visits = 8,000 pages (with 8 pages/visits) = 64,000 lines (with 8 hits/page) = 20 MB file => 15 seconds (Athlon 1GHz, Standard Perl 5.8)
- History files (resuming the log analysis) has the following size (one file a month) : 15000+90*x+100*y bytes (where x is number of unique visitors a month and y is number of different pages on web sites)
WARNING ! All those data are average values for a common public site with default configuration. Calculation rule can be seriously changed according to web server or AWStats configuration and web site content.

Don't forget that benchmarks of log analyzers are made without reverse DNS lookup because DNS lookup is so slow (depending on Internet network and your system), that if enabled in AWStats configuration file, it would take more than 99% of the time of a log analysis ! Take a look at the following chart to:
- Get more real ideas on benchmarks results
- Get more information and advice on a good setup for your site.


This is examples of frequency/parameters you should use to have a good use of AWStats:

Your Web site trafficRecommended values for parametersRecommended update frequency
(Rotate log delay)
Memory required**Duration***
DNSLookup*URLWithQueryURLReferrerWithQuery
0 - 1,000 visits/month10 or 10 or 1Once a day
Log files are 0-1 MB
2000 lines to process
4 MB2mn
0 (or 2)0 or 10 or 1Once a day
Log files are 0-1 MB
2000 lines to process
4 MB1s
1,000 - 10,000 visits/month10 or 10 or 1Once a day
Log files are 1-10 MB
2000-20000 lines
4-8 MB2-10mn
0 (or 2)0 or 10 or 1Once a day
Log files are 1-10 MB
2000-20000 lines
4-8 MB1-10s
10,000 - 100,000 visits/month10 or 10 or 1Every 12 hours
Log files are 5-50 MB
10000-100000 lines
8-16 MB5-50mn
0 (or 2)0 or 10 or 1Every 12 hours
Log Files are 5-50 MB
10000-100000 lines
8-16 MB5-50s
100,000 - 500,000 visits/month100 or 1Every hour
Log Files are 4-16 MB
10000-50000 lines
16-64 MB5-25mn
0 (or 2)00 or 1Every hour
Log Files are 4-16 MB
10000-50000 lines
16-64 MB5-25s
500,000 - 2,000,000 visits/month0 (or 2)00Every hour
Log Files are 16-64 MB
50000-200000 lines
64-256 MB25-120s
2,000,000 - 4,000,000 visits/month0 (or 2)00Every hour
Log Files are 64-128 MB
200000-400000 lines
256-512 MB120-240s
+4,000,000 visits/monthAWStats is not a good choice for such web sites. Try a tool with less features but faster like "row counter log analyzers" like Analog (Can try also Webalizer)
* You should set DNSLookup parameter to 0 (or 2) if
      - reverse DNS lookup is already done in your log file,
      - or if your web site has more than 250,000 visits a month.
Note: Country report can works without reverse DNS lookup if plugin 'geoip' is enabled (faster and more accurate than reverse DNS lookup).
** Free memory required for update process (in MB), not hardware memory installed.
Warning: If you use the URLWithQuery or URLReferrerWithQuery option, or forget to complete correctly URLQuerySeparators for some sites, this value can be dramatically increased.
*** Duration is with Athlon 1GHz/128Mb, Standard Perl 5.8 and LogFormat=1.


SOME IMPORTANT ADVICES FOR A GOOD USE OF AWSTATS:

- Check that DNSLookup is disabled in AWStats (DNSLookup must be set to 0, or 2 to only use a DNS file resolver). Note that you still can have a 'Country' report without DNS lookup enabled. For this you must enable the 'geoip' plugin. Without this plugin, 'Country' report will works only if hosts addresses in your log file are already resolved (need to setup your web server to do so, your web server will be slowed). With DNSLookup enabled, log analyze speed is decreased by 40 to 100 times.
- Use carefully parameters URLWithQuery, URLReferrerWithQuery and URLWithAnchor (Let them set to 0 if you don't know what they means) and check your web site URLs' syntax to know if you don't need to complete the parameter URLQuerySeparators. If you really need to use URLWithQuery=1, check that URLWithQueryWithoutFollowingParameters is set properly.
- Be sure that your HostAliases parameter list is complete.
- Rotate your log (See FAQ-SET500) and launch AWStats more often (from crontab or a scheduler, See FAQ-SET550). The more often you launch AWStats, the less AWStats has new lines in log to process. This solve also the ActiveState memory problem (see next advice).
- Use last Perl version (For example 5.8 is 5% faster than 5.6) and, more important, use standard Perl distribution instead of ActiveState (For example Standard Perl 5.8 Win32 binary is 25% faster than ActiveState. And ActiveState 5.006, and may be other versions, have important memory problems making speed of analysis slower and slower when analysing more and more lines).
- Use last AWStats version.
- If you use Apache and don't rotate your logs (not the best way of working), set PurgeLogFile to 1 (By default, to avoid bad surprise, PurgeLogFile is 0 in configure file, but you can set it to 1 to ask AWStats to purge the log file after processing it, this increase speed for next run).