For 2021 - online Python 3 training - see ((here)).
Our plans were to retire in summer 2020 and see the world, but Coronavirus has lead us into a lot of lockdown programming in Python 3 and PHP 7.
We can now offer tailored online training - small groups, real tutors - works really well for groups of 4 to 14 delegates. Anywhere in the world; course language English.
Please ask about private 'maintenance' training for Python 2, Tcl, Perl, PHP, Lua, etc.
Be careful of misreading server statistics
Here's a mystery for you.
Over the past weekend, I was "fighting" server outages on another computer where - about once an hour - the httpd daemon appeared to be running away in some sort of hole or denial of service attack. Tricky one to find, as the temporary fix I had in place was in the form of a "heartbeat" script that killed all existing connections and freshened up the server. And when the server was busy, it was so much "treacle" that I couldn't run any Linux commands from a shell to see what was going on.
I was aware from my heartbeat log of a total of around 20 seconds per hour during which the server was not accepting requests - that's about 0.5% of the time. Yet I had a user who was telling me that in his experience, downtime was around 10%. Wow - that's some scary figure, isn't it?
Turns out to be a case of how you gather your statistics!
My heartbeat script clicks in at the start of every minute and if there's a problem it tidies up - 5 seconds. Having clicked in once, it then does a further precautionary clean the following "top" of minute, and perhaps if it's not sure that load levels are dropping as they should, the following minute. So in a bad hour, 4 outages of 5 seconds = 20 seconds.
It turns out that my user was running an automated script to check our server, again at the top of the minute. So he had syncronised his tests to our server in such a way that he always saw it during that brief clean up. Looking at his log activity later, I noticed that if he got a failure he had programmed in a second hit straight away to confirm it - so he was seeing 4/60 or 8/64 failures - that's 6.5% or 12.5% to report.
Lies, damned lies and statistics
This is a "object lesson" in being careful with statistics - at best, they're helpful and at worst they can give a totally incorrect picture. But I have to say that this example really took the biscuit!
Footnote - server issue solved. Availability now over 99.8% and the remaining outages in the last couple of days relate to me testing. (written 2008-05-28)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articlesA606 - Web Application Deployment - Apache httpd - log files and log tools 
What brings people to my web site? - (2005-07-13) 
What proportion of our web traffic is robots? - (2007-06-19) 
Web page (http) error status 405 - (2008-01-12) 
Every link has two ends - fixing 404s at the recipient - (2008-04-02) 
Logging Cookies with the Apache httpd web server - (2008-08-20) 
Server overloading - turns out to be feof in PHP - (2008-09-01) 
libwww-perl and Indy Library in your server logs? - (2008-09-13) 
Logging the performance of the Apache httpd web server - (2010-10-25) 
Apache httpd Server Status - monitoring your server - (2010-10-28) 
Server logs - drawing a graph of gathered data - (2010-11-03) 
Making the most of critical emails - reading behind the scene - (2010-12-16) 
Getting more log information from the Apache http web server - (2011-09-16) 
Needle in a haystack - finding the web server overload - (2011-09-18) 
Who is knocking at your web site door? Are you well set up to deal with allcomers? - (2011-10-21) 
Learning more about our web site - and learning how to learn about yours - (2011-12-17) 
Reading Google Analytics results, based on the relative populations of countries - (2012-03-24) 
TV show appearance - how does it effect your web site? - (2013-01-13) 
20 minutes in to our 15 minutes of fame - (2013-01-20) 
Identifying and clearing denial of service attacks on your Apache server - (2014-09-27) 
Which (virtual) host was visited? Tuning Apache log files, and Python analysis - (2015-01-23) 
Web Server Admin - some of those things that happen, and solutions - (2015-05-10)
Some other Articles
Korn shell - some nuggetsString, Integer, Array, Associative Array - ksh variablesSome useful variables and settings in the Korn ShellFarewell, Newcastle to Stavanger, Haugsund and BergenBe careful of misreading server statisticsA date for your diary - 16th July 2008The old sayings are the best (FSB)How do Google Ads work?Old Sarum airfield brings back fond memoriesls command - favourite options
4759 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page
This is a page archived from The Horse's Mouth at
the diary and writings of Graham Ellis.
Every attempt was made to provide current information at the time the
page was written, but things do move forward in our business - new software
releases, price changes, new techniques. Please check back via
our main site for current courses,
prices, versions, etc - any mention of a price in "The Horse's Mouth"
cannot be taken as an offer to supply at that price.
Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).