Odd Thing at IceAgeNow.info with CPU Usage

Just a quick note about life on a tiny CPU.

Using the Raspberry Pi, with IceApe (FireFox derivative) browser, I have sometimes felt it was just too slow.

Especially when editing postings. WordPress is painfully ‘chatty’ when entering a posting. Constantly spell checking the doc, and the longer it gets the slower things go. It periodically flushes a copy back to the mothership, and for a long posting, that can end up taking almost the time before the next flush shows up… Now, add in some extra demands and the fact that IceApe will only use one of the 4 cores, it can bog down fairly quickly.

For example, at the moment, while typing, I’m at about 19% to 30% total CPU usage. Stop typing, it drifts back down to between 1% and about 11% as it does a servicing of the other minor tasks of keeping the machine running and checking that I didn’t type anything into the open ‘terminal’ window. I have 4 pages open. One, on “comments” so I can check the arrival of anything in SPAM or Moderation. One is this new article. One is the “Non-PC Sundae” page as a sample low load web page, and one is a git repository (so not much happening).

I expect the CPU to cycle like this. And, for most articles, this is a very acceptable experience, if just a touch of type-ahead at times.

But…

From time to time, the experience has been very different. One core just maxed out, even when I stop typing. A 25% machine utilization minimum (shows in the upper corner of the screen) and when “top” is running in a terminal window, it shows a nearly constant 100% (93%ish on up) usage by IceApe of one core. Keeping it maxed.

I’ve finally figured out what’s the difference. IF I have a window open at http://iceagenow.info/ it happens. Close that window, I have some CPU left over.

I think this is the animated ads that do it (I’ve not tested the R.Pi with ads blocked… but will ‘soon’ as this is a PITA). So I did a test at WUWT. CPU was between 5% and 12% while reading but not typing nor moving the mouse. No video popped up, but that may be because I don’t have FLASH (the bug haven and ‘hack me hotel’) installed. Or maybe I didn’t wait long enough. I may need to get a wider sample to figure out just what, exactly, is pegging things. (Yet it does play Youtube videos, if a bit jerky, so supports HTML5? Yet more loose ends… but “Help:About Plugins” says none installed.)

What is very clear is that something at iceagenow.info is pegging the CPU; other sites don’t do this, and it shows up in a big way on the Raspberry Pi, but either doesn’t happen or isn’t as noticed on other platforms. (More testing to continue later as the “box of the day” is booted and I try other browsers while monitoring process CPU use.

Who’s Fault?

Hard to say.

First off, the Chromium browser on the R.PiM2 doesn’t do this. Only IceApe. That implies an issue with the browser. Yet lots of other sites don’t do it, which implies an issue with that site generating HTML ‘with issues’.

Setting “block images from this website” didn’t stop it, but also didn’t stop the images that were advertizing. Yet another test for later. As the rest of the site is just text, I think that strongly points to one of the advertisers making HTML that flaky or trying to suck up more than 1 core worth of CPU (on the assumption everyone is on a 4 core 64 bit 4 GB memory Intel UnobTainium 4-GHz box like their developer uses?)

I set this box up to be it’s own DNS server (as it will be the PXE Boot server too) but not yet pruned the list back to add blocking DNS sources (“first make it work normally”…) So that’s now a ‘thing to try’ to see if it is an advert.

Also, the IceApe Browser isn’t smart enough to use more than one core. While “best” would be to not go into CPU runaway process, if it spit out a thread that sucked up one core for some bogus HTML Advert but used a second core for all the rest, I’d likely not have noticed at all as I usually have one or two idle cores at any one time. Even when Chromium is using a couple, just one tends to cover the background stuff leaving one idle.

So I suspect this is an “any of the above can fix it” problem. IceApe by doing whatever Chromium does. IceApe by using more than one core. The (suspected) advertiser by not spitting out bogus HTML and/or Java. The web site provider by checking and blocking it. Or even me, by using a different browser, box, or changing settings. Heck, maybe even Debian or Raspbian in the porting process could fix it.

Once I figure out what to do, I’ll post a comment on what was found.

For Now

What this means for now, though, is that if you do try IceApe on the Raspberry Pi (Model 2 for me) and it is always running CPU pegged; try closing open windows one at a time while watching “top” and see if one window in particular makes all the difference in the world…

Anyone wishing to try that web site with other browsers (or the same browser on other platforms) and report any findings, please do. The time you save might be my own ;-)

UPDATE: (Yeah, I know… all of a minute after posting… Think first, then hit post…)

I just tested the Epiphany browser and it has no problems. With two browsers having “no problem” and one “with issues” it’s looking a bit more like a browser issue or at most a “both the website / advert HTML and browser interacting”.

Subscribe to feed

About E.M.Smith

A technical managerial sort interested in things from Stonehenge to computer science. My present "hot buttons' are the mythology of Climate Change and ancient metrology; but things change...
This entry was posted in Tech Bits and tagged , , , , , , . Bookmark the permalink.

8 Responses to Odd Thing at IceAgeNow.info with CPU Usage

  1. Another Ian says:

    E.M.

    Some more Windows 10 stuff

    http://www.smalldeadanimals.com/2015/08/and-people-call.html

    and link

  2. sabretoothed says:

    What are your thoughts on this? http://zorin-os.com/

  3. Eric Fithian says:

    Lovely!
    For me, it is always Veddy Interesting — in the mode of “What a Lovely Highway Crash Scene” — to read of Browser Difficulties…
    I miss almost all of the Online Multimedia Experience, and (likewise) Almost All of the Online Crap, by doing most of my internet reading with Links2. With all the add-ons Not Added On, all it does is Text and Still Pix….
    Pages load in 2 seconds. And I never even *know* of the Movin’ Pitchers or the Automatic Spiels or the Drive-By Malware…!
    If I want to look at video of a tornado in Taiwan (or whatever), I have to use Opera or FireFox or some other “full-featured” browser, wait 5 minutes for all the Bumf to load, and try for my desired content….

    Rather like spending one’s life reading Dead-Tree books, and forgetting there is such a thing as Television…..!

    Gotta try out the R.Pi some day, though!

  4. E.M.Smith says:

    Looks to me like someone shoving “pixels” at me is “the problem”. I generally did a “turn on local DNS” and watched when it was saying what was being connected. At the point where it was apparently ‘doing nothing’ but “transferring data from pixel.quantserve.com” was constantly in the bottom of the screen, I suspected that might be it…. So this line was added to dnsmasq.conf to “ground” that domain name by mapping it to ‘localhost’.

    pi@RaPiM2 /etc $ grep pixel dnsmasq.conf
    address=/pixel.quantserve.com/127.0.0.1

    I now have 6 tabs open, and a “top” running in a terminal server window. Two of the tabs are active wordpress edit type tabs (so chatty) and one is the IceAgeNow.info site. IceApe CPU usage without IceAgeNow was running about 40% just with the other tabs. Now with IceAgeNow it is bouncing between 40% and 60% but definitely NOT pegging the CPU.

    So my conclusion is that it is the advertizing, and in particular that pixel.quantserve.com shoving some crap at the browser that it doesn’t handle well.

    I’m now a reasonably happy camper and I’m proceeding with shutting down ads on THIS box as it is the inner network DNS / DHCP / PXE Boot server now. (While I was in dnsmasq.conf I went ahead and turned on all those services I was going to do when I ‘got a round to it’… so this is all for the better, I guess.) Basically what I described here:
    https://chiefio.wordpress.com/2015/06/19/well-things-faster-without-ads-dns/

    There will be a bit more tuning (matching the config to the one in the R.Pi B+ that is DNS server for the middle network space and other machines doing ad blocking) since what I did just now was more of a ‘rapid hack and test’; but I’m pretty sure this is more or less done and right.

    Once again, time for morning coffee, but this time with a smile ;-)

  5. p.g.sharrow says:

    @EMSmith, The ability to block video ads would be a real saver of resources. At least now you know where to look for that hog that has been eating up bit management…pg

  6. E.M.Smith says:

    @P.G.Sharrow:

    You don’t know the half of it…

    I nailed that one big offender. Then added the ad blocking DNS and things got a little better, but, still some ads got through and some stuff seemed to be happening in ‘idle’ windows… So I turned on logging from dnsmasq as a local cacheing DNS server. Watching it roll by was an eye opener.

    A LOT of crap going on behind the sceens. Not just ads. Various trackers and taggers. Things shoving cookies and so much more. Some sites much worse than others, and the list keep growing as I’m visting ‘variety’ places to find the other vendors of such ‘services’…

    At the moment, I have 2 browsers open ( Epiphany and IceApe) with 6 tabs in IceApe. Two on my site, one on telegraph.co.uk, one on WUWT, a Tails git repository and IceAgeNow.info. My total CPU is running about 8 to 15% when I’m not typing and up to 26% when I do.. IceApe runs down to 50-60% of one core when not typing (spell check is ON) and up to about 90% sometimes. Not pegged, and clearly faster.

    And I’ve not even gotten all the things shut down, just the most major ones.

    It makes a huge difference in usability on this small box. I’m going to put up a ‘configuring your dnsmasq’ posting in a day or two. Even if not used for serving others, it makes the box itself go a lot faster. (Just having a few dozen cache hits on DNS lookups on one page makes it go faster and taking that traffic of the WAN will be a Very Big Deal on slow links).
    Here’s what I’ve got so far in /etc/dnsmasq.conf:

    root@RaPiM2:/etc# grep address= dnsmasq.conf 
    address=/double-click.net/127.0.0.1
    address=/.chartbeat.com/127.0.0.1
    address=/packages-seo.com/127.0.0.1
    address=/.doubleclick.net/127.0.0.1
    address=/doubleclick.ads.com/127.0.0.1
    address=/.pixel.quantserve.com/127.0.0.1
    address=/.bluekai.com/127.0.0.1
    address=/.ubertags.com/127.0.0.1
    address=/.google-analytics.com/127.0.0.1
    address=/.googlesyndication.com/127.0.0.1
    address=/googleusercontent.com/127.0.0.1
    address=/l.google.com/127.0.0.1
    address=/.l.google.com/127.0.0.1
    address=/.ads.google.com/127.0.0.1
    address=/.googleapis.com/127.0.0.1
    address=/.googletagservices.com/127.0.0.1
    address=/.facebook.com/127.0.0.1
    address=/.twitter.com/127.0.0.1
    address=/amazonaws.com/127.0.0.1
    address=/.amazonaws.com/127.0.0.1
    address=/.moatads/127.0.0.1
    address=/.microsoft.com/127.0.0.1
    address=/.bing.com/127.0.0.1
    address=/.medianetadvertizing.com/127.0.0.1
    address=/.doubleverify.com/127.0.0.1
    address=/.akadnds.net/127.0.0.1
    address=/.gravatar.com/127.0.0.1
    address=/.adnxs.com/127.0.0.1
    address=/.advertizing.com/127.0.0.1
    address=/.godaddy.com/127.0.0.1
    address=/.adadvisor.net/127.0.0.1
    address=/.adtechus.com/127.0.0.1
    address=/.simpli.fi/127.0.0.1
    address=/.amazon-adsystem.com/127.0.0.1
    address=/.criteo.com/127.0.0.1
    address=/.mathtag.com/127.0.0.1
    address=/.adform.net/127.0.0.1
    address=/.asdrvr.org/127.0.0.1
    address=/.adsymptotic.com/127.0.0.1
    address=/.chango.com/127.0.0.1
    address=/.rfihub.com/127.0.0.1
    address=/.sitescout.com/127.0.0.1
    address=/.akadns.net/127.0.0.1
    

    Dirty and ugly and not at all pretty printed or grouped by function, with some redundancies and a couple of experimentals… the “dot”name.com makes it a wild card so .ubertags.com nukes anything from them no matter how they mutate the high order name.

    Just that group (at least for the mix of sites I’ve visited so far) turns the R.PiM2 from “a bit doggy” into “hey, not bad”. Color me happy ;-)

    (And yes, I know, a lot of folks call this “DNS Hijack” and talk dirt about it. I call it DNS Jail for abusers of my bandwidth and machine… it IS my machine, after all… )

    On the “todo list” is look for a preexisting list of sites so I don’t have to discover them on my own. The adblock DNS servers on the internet are “nice”, but not sufficient… One needs to add the redirectors and the taggers and the beacon shovers and the…

    At any rate, I’m now quite comfortable with this set up. We’ll see what happens as more sites are visited and more tabs left open.

  7. beng135 says:

    EM, my hosts file comes from:
    http://winhelp2002.mvps.org/hosts.htm
    Unfortunately, wildcard entries won’t work (ex, *google*, *microsoft*) — it has to be the full name.
    A whole LOT of entries — +13000.

    Mint Linux does an interesting thing — if you unlock & edit the network manager, it rewrites that host file — removes all the carriage returns on the 127.0.0.1 entries into a single, ridiculously long string with one, single 127.0.0.1 at the start. The intent of that, I figure, is to vastly reduce the number of host-aliases in the network manager. On my tower, from +13000 to a mere 6.

  8. beng135 says:

    Oops, I see you ARE using wildcards successfully. I’ll have to study that…..

    Mint Linux took some fiddling to get the hosts file and dnsmasq cooperating. Found that out when I pasted a bunch of “forbidden” entries into my browser — it was bringing up sites! Should be “unable to connect”, as in Puppy Linux & Win7. Finally tried this entry in /etc/resolvconf/resolv.conf.d/head (initially no entries):

    # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
    # DO NOT EDIT THIS FILE BY HAND — YOUR CHANGES WILL BE OVERWRITTEN
    nameserver 127.0.0.1

    and it worked properly — get “unable to connect” when pasting forbidden entries in a browser.

Comments are closed.