UPDATE: apparently the inconsiderate bastard claiming ownership of my ADSL pipe is, in fact, quite entitled to do so - it's my ISP, Tiscali. Their bandwidth throttling is apparently a bit over-zealous. The Reg has more details on it - it's unusual of me to not follow their RSS feed but work has kept me busy lately. Suffice to say I won't be with Tiscali much longer.

Previous article follows...

It's become apparent that some inconsiderate bastard* in my neighbourhood has decided that the entire ADSL pipe for our area belongs to him. Every evening after about 5 or 6pm, our network grinds to a halt. At first it's just slow to load pages, but later it starts to take several minutes to access anything. Then, suddenly, late in the evening, everything returns to normal.

The ISP support guy (Tiscali, was Pipex) told me today that the second line support is in India, and they have no hesitation in passing the slightest ambiguity back to the UK. He wouldn't even believe me that it couldn't be a DNS issue with their old servers because I don't use their DNS servers (I use OpenDNS).

As part of the diagnostics, I was left collecting speed checks. Unfortunately, these turn out fine, as it's establishing the connection that is affected. So I wrote a Ruby script to load Google every 5 minutes for 24 hours.

* Now I've said that it will probably turn out to be an intermittent technical fault

Code follows, for anyone that may find it useful...

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

require 'open-uri'

def time
  start = Time.now

  begin
    yield
  rescue Timeout::Error => e
    return -(Time.now - start)
  end
  
  Time.now - start
end

start_time = load_time = nil

File.open("connection_test.out", "w") do |f|
  f.sync = true
  
  (12*31).times do
    start_time = Time.now
    time_result = time do
      open("http://www.google.co.uk/")
    end

    load_time, timeout =
      if time_result < 0
        [-time_result, true]
      else
        [time_result, false]
      end

    output = "#{start_time}:" +
                  "#{timeout ? "Timeout in" : "Loaded in"} " +
                  "#{load_time}"
    puts output
    f.puts output
    
    sleep 5*60 - load_time
  end
end

It's running now, and it due to finish about 6am Thursday morning...

1 Response to “Tiscali is shit (oh, and monitor your web page load times with Ruby)”

  1. Matthew Davis Says:

    Hi Ashley...

    I've sent you an e-mail regarding this problem, along with details of what exactly is happening.

    Thanks...

    Matt

Leave a Reply