Something is blocking render from China

We’ve been running quite a few tests and are seeing the same pattern each time, a long pause while “things” happen and then we get DOM complete. This has been seen for both China instances, but not from Manchester UK.

I’m trying to dig into this as clearly something is blocking the render, but there is nothing obvious. We can see the cpu is having to do some work, but no bandwidth is being used.

We’ve also got access to a remote box in China and are seeing similar issues. Turning off javascript cures this (bit of a no brainer) so I’m now a bit stuck as to how to dig into this further to try and pinpoint the offending code.

Any suggestions welcomed.

99% liklihood it is a connection to a server for some JS code that is failing to connect because it is blocked by the firewall. I have a long-pending TODO to show at least the host name for any connections that were attempted but timed out to make it easier to debug (may not be able to include the full URL).

Right now the best way to track it down is to turn on tcpdump capture for the test in advanced settings, download the packet capture and look for the sequence of SYN requests with no SYN-ACK, go back to see what host name resolved to that IP and that should help identify it.

OR, you could look at a “good” example and the timed out examples and look through the js requests and see which one is missing. If you have any blocking calls to a social network (Facebook, Google, Twitter) then it’s a pretty safe bet that is it.

thanks for the quick reply.

We know we have two requests to for some analytics related stuff and all facebook and twitter urls are blocked from loading on the template side for china traffic.

I’ll have a dig around the tcpdump data and see what comes from that. We do have various third party scripts which could be doing all sorts behind the scenes so we’ll see what that uncovers.

Testing sites for China traffic is proving to be quite a tricky task.

If you need to evaluate them one at a time, you can use the “SPOF” feature on WebPageTest to blackhole individual domains. That will let you see which ones actually block rendering.

I re ran the tests with the tcpdump but it doesn’t look like that file is right as it doesn’t contain anything.

Am I doing something wrong? There is every chance I am :slight_smile: