Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


"Reduce initial server response time" issue with IPv6
New on LowEndTalk? Please Register and read our Community Rules.

"Reduce initial server response time" issue with IPv6

pkrpkr Member
edited October 23 in Help

I have using the "GCV 9999 MO EPYC" machine to host a website. Sever is really super fast. I am using Apache+Nginx (reverse proxy)+MariaDB+PHP7.4 on Debian11.5.

I found a weird issue. Whenever I enable IPv6 on Nginx, I get "Reduce initial server response time" on the Google pagespeed test (~2.5s). If I disable IPv6, I do not get any error.

BunnyDNS is my DNS hosting provider.

Any idea what could be the problem?

«1

Comments

  • jarjar Member, Patron Provider
    edited October 23

    Probably just different routing over v6. Not much you can do about it. I mean if it only adds a little latency when using v6 I can't think of a config adjustment you're going to make to reduce it.

  • MumblyMumbly Member
    edited October 23

    @pkr said: I found a weird issue. Whenever I enable IPv6 on Nginx, I get "Reduce initial server response time" on the Google pagespeed test (~2.5s). If I disable IPv6, I do not get any error.

    I notice something else which may be connected to your issue or may not.
    Sometimes when I run "curl ipv6.google.com" with GCV (on a several locations) on the first attempt it does not work, but then, afterwards it does. Just tryed - example:

    [email protected]:~$ curl ipv6.google.com
    curl: (7) Failed to connect to ipv6.google.com port 80: No route to host
    [email protected]:~$ curl ipv6.google.com
    <!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-AU"><head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="/logos/doodles/2022/celebrating-slim-dusty-6753651837109439.3-l.png" itemprop="image"><meta content="Celebrating Slim Dusty" property="twitter:title"><meta content="Celebrating Slim Dusty #GoogleDoodle" property="twitter:description"><meta content="Celebrating Slim Dusty #GoogleDoodle" property="og:description"><meta content="summary_large_image" property="twitter:...
    

    So IPv6 work but it seems like it needs to be "woken up" or something. I don't know what cause this or how to explain it. I use Debian 11 if this helps.

    Thanked by 1pkr
  • @Mumbly said: So IPv6 work but it seems like it needs to be "woken up" or something. I don't know what cause this or how to explain it. I use Debian 11 if this helps.

    If this happens using their default debian 11 image, then it's the host's problem. If you installed your own os then it might be your problem.

    Thanked by 1xms
  • MumblyMumbly Member
    edited October 23

    Their. In some cases new install require also:

    nano /etc/sysctl.conf

    net.ipv6.conf.all.autoconf = 0
    net.ipv6.conf.all.accept_ra = 0
    net.ipv6.conf.eth0.autoconf = 0
    net.ipv6.conf.eth0.accept_ra = 0
    

    sysctl -p

    nano /etc/sysctl.conf

    net.ipv6.conf.all.autoconf = 0
    net.ipv6.conf.all.accept_ra = 0
    net.ipv6.conf.ens3.autoconf = 0
    net.ipv6.conf.ens3.accept_ra = 0
    

    sysctl -p

    (but that's not issue of course, I just share it in case someone is trying to figure out why IPv6 with Debian 11 doesn't work out of the box)

    Thanked by 2gzz dev077
  • Greencloud always had fucked up IPV6 configuration on their network.

    I would like to sing peans of Hosthatch’s IPv6, though they don’t get much love from around these parts.

  • pkrpkr Member

    @Mumbly said:
    Their. In some cases new install require also:

    nano /etc/sysctl.conf

    net.ipv6.conf.all.autoconf = 0
    net.ipv6.conf.all.accept_ra = 0
    net.ipv6.conf.eth0.autoconf = 0
    net.ipv6.conf.eth0.accept_ra = 0

    sysctl -p

    nano /etc/sysctl.conf

    net.ipv6.conf.all.autoconf = 0
    net.ipv6.conf.all.accept_ra = 0
    net.ipv6.conf.ens3.autoconf = 0
    net.ipv6.conf.ens3.accept_ra = 0
    

    sysctl -p

    (but that's not issue of course, I just share it in case someone is trying to figure out why IPv6 with Debian 11 doesn't work out of the box)

    Changing DNS from BunnyDNS to HE.net and using your solution have fixed the issue for now. So, it seems that the issue may be with BunnyDNS.

    Thanked by 2Mumbly xms
  • yoursunnyyoursunny Member, IPv6 Advocate

    I've witnessed problems with Neighbor Solicitation of the router address from my host not responded quickly.
    The workaround is adding a static NDP entry with ip neigh add command that "permanently" binds the router's IP address with its MAC address.

    Thanked by 1xms
  • HxxxHxxx Member
    edited October 23

    2.5 seconds. Not worth your time. Your time is worth much much much much more. Forget the page speeds, don't get obsessed. In the end user speed will vary a lot, as long as it is reasonable I wouldn't deal with that.

    That's an easy 8 hours lost in the loop trying to solve 2 seconds.

    Thanked by 1yoursunny
  • jtkjtk Member

    @pkr said:
    Any idea what could be the problem?

    Hard to say without more details, but this sounds like the sort of problem one runs into when either IPv6 transport isn't available and/or AAAA RRs are unavailable/unreachable. Without knowing more, this sort of problem can be investigated by examining your local resolver config (e.g., probably what is in /etc/resolv.conf file), verifying you have a working v6 path between the the front end and reverse proxy, that there isn't a problem with a lame delegation, etc.

  • rm_rm_ Member
    edited October 23

    @Hxxx said: That's an easy 8 hours lost in the loop trying to solve 2 seconds.

    It is 2 seconds multiplied by every page load and multiplied by every visitor. With a site popular enough, over time that would actually accumulate to something comparable to a human lifetime, and then keep counting further. Would you not spend 8 hours to save a life? :)

    Secondly, I doubt if a website with 2.5s+ page loads would ever get that popular to begin with. Can you imagine if there was an almost 3-second pause after every click even here on LET? That would quickly get annoying for everyone and reduce the site attractiveness a lot.

    @pkr said: Changing DNS from BunnyDNS to HE.net and using your solution have fixed the issue for now. So, it seems that the issue may be with BunnyDNS.

    It is unlikely the DNS, unless your site does DNS queries while serving pages, which would be very weird. More like some kind of broken IPv6 setup, for which the suggested settings may seem to provide a workaround.

    Thanked by 3Mumbly xms RapToN
  • HxxxHxxx Member
    edited October 23

    @rm_ is 3 seconds you will not notice. It happens all the time or do you count seconds every time you click?

    Enable preload in your browser, problem solved.

  • rm_rm_ Member

    @Hxxx said: is 3 seconds you will not notice

    • "A 2-second delay in load time resulted in abandonment rates of up to 87%." I believe it's not that 87% of people will go away though, just 87% more than would have with a lesser delay.
    • 40 percent of consumers will wait no more than three seconds for a web page to render before abandoning the site.

    https://www.hobo-web.co.uk/your-website-design-should-load-in-4-seconds/

    • "53% of mobile users abandon sites that take over 3 seconds to load" - if you have a static 2.5 second delay baked in due to broken setup you'd not taken time to investigate, that leaves much less time for the actual page generation, before it is "over 3".

    https://www.marketingdive.com/news/google-53-of-mobile-users-abandon-sites-that-take-over-3-seconds-to-load/426070/

    Thanked by 3xms cadddr RapToN
  • HxxxHxxx Member

    @rm_ Don't try that hard Sir. I work in that market, seen that everyday. Don't believe the hype. Nowadays the only way to get a site to load under 1 second it to just have plain text on it.

    Also you can have like the best optimized A+ rated website and if the user has a shitty internet with latency and packet drop it will still take 1 or two seconds to load, probably more. User will blame the website regardless.

    Plus IPv6, disable it if is an issue. Put CF on top, boom call it a day, go to sleep or have a good time with your life partner.

    Unless this is a production site, where a few sec load will cause you lose money, then ignore. Imagine trying to fix an IPV6 issue for a personal blog while paying 2 dollars a month on a shitty VPS. nanana life is too short.

  • pkrpkr Member
    edited October 23

    @Hxxx said:
    @rm_ Don't try that hard Sir. I work in that market, seen that everyday. Don't believe the hype. Nowadays the only way to get a site to load under 1 second it to just have plain text on it.

    Also you can have like the best optimized A+ rated website and if the user has a shitty internet with latency and packet drop it will still take 1 or two seconds to load, probably more. User will blame the website regardless.

    Plus IPv6, disable it if is an issue. Put CF on top, boom call it a day, go to sleep or have a good time with your life partner.

    Unless this is a production site, where a few sec load will cause you lose money, then ignore. Imagine trying to fix an IPV6 issue for a personal blog while paying 2 dollars a month on a shitty VPS. nanana life is too short.

    I agree with you. I am not going to waste too much time. Just disable IPv6 and focus on other things. I am not an IPv6 comrade.

  • NeoonNeoon Member, Community Contributor
    edited October 23

    @pkr said:

    @Hxxx said:
    @rm_ Don't try that hard Sir. I work in that market, seen that everyday. Don't believe the hype. Nowadays the only way to get a site to load under 1 second it to just have plain text on it.

    Also you can have like the best optimized A+ rated website and if the user has a shitty internet with latency and packet drop it will still take 1 or two seconds to load, probably more. User will blame the website regardless.

    Plus IPv6, disable it if is an issue. Put CF on top, boom call it a day, go to sleep or have a good time with your life partner.

    Unless this is a production site, where a few sec load will cause you lose money, then ignore. Imagine trying to fix an IPV6 issue for a personal blog while paying 2 dollars a month on a shitty VPS. nanana life is too short.

    I agree with you. I am not going to waste too much time. Just disable IPv6 and focus on other things. I am not an IPv6 comrade.

    Disabling IPv6 is a war crime comrade.

    Thanked by 2xms Shot2
  • NeoonNeoon Member, Community Contributor

    @yoursunny said:
    I've witnessed problems with Neighbor Solicitation of the router address from my host not responded quickly.
    The workaround is adding a static NDP entry with ip neigh add command that "permanently" binds the router's IP address with its MAC address.

    Yea, however I see the issue only in the Netherlands for me at least.
    IPv6 died entirely here, premium experimental stuff.

    Lets see how long it will be stable this time.

  • NeoonNeoon Member, Community Contributor

    Well, the 2ish seconds you mention it takes, looks like lost packages to me.
    At least what my smokeping tells me, so TCP is doing its job.

    By default, the IPv6 setup is fucked.

    After applying the fixes, it returns to normal.

    Thanked by 1xms
  • pkrpkr Member

    @Neoon said:
    Well, the 2ish seconds you mention it takes, looks like lost packages to me.
    At least what my smokeping tells me, so TCP is doing its job.

    By default, the IPv6 setup is fucked.

    After applying the fixes, it returns to normal.

    What fixes did you apply?

  • NeoonNeoon Member, Community Contributor

    @pkr said:

    @Neoon said:
    Well, the 2ish seconds you mention it takes, looks like lost packages to me.
    At least what my smokeping tells me, so TCP is doing its job.

    By default, the IPv6 setup is fucked.

    After applying the fixes, it returns to normal.

    What fixes did you apply?

    @yoursunny suggested setting the neigh entry static/permanent.

    ip -6 neigh replace <ipv6> lladdr <mac> dev eth0 nud permanent

    However this alone, didn't fix issues, it did caused more, which is wired.
    IPv6 outbound died after applying the fix, server was still pingable via IPv6 but I could not ping outbound.

    Applying the additional fixes suggested by @Mumbly then it worked fine.

    Thanked by 1RapToN
  • yoursunnyyoursunny Member, IPv6 Advocate

    @Neoon said:

    @pkr said:

    @Neoon said:
    Well, the 2ish seconds you mention it takes, looks like lost packages to me.
    At least what my smokeping tells me, so TCP is doing its job.

    By default, the IPv6 setup is fucked.

    After applying the fixes, it returns to normal.

    What fixes did you apply?

    @yoursunny suggested setting the neigh entry static/permanent.

    ip -6 neigh replace <ipv6> lladdr <mac> dev eth0 nud permanent

    However this alone, didn't fix issues, it did caused more, which is wired.
    IPv6 outbound died after applying the fix, server was still pingable via IPv6 but I could not ping outbound.

    Applying the additional fixes suggested by @Mumbly then it worked fine.

    I have accept-ra: false and link-local: [] in my Netplan YAML, as part of my standard config in non-residential network.
    Thus, I don't think to mention it.

    If accepting Router Advertisement is causing issues, it implies these packets contain incorrect router information.

    A drawback of ip neigh add is that, if the router is replaced and has a different MAC address, the static binding would cause an outage.
    The better solution is writing a program to periodically query for router's MAC address via NDP, and inserting as (semi-)permanent entry upon each successful query.

  • NeoonNeoon Member, Community Contributor

    @yoursunny said:

    @Neoon said:

    @pkr said:

    @Neoon said:
    Well, the 2ish seconds you mention it takes, looks like lost packages to me.
    At least what my smokeping tells me, so TCP is doing its job.

    By default, the IPv6 setup is fucked.

    After applying the fixes, it returns to normal.

    What fixes did you apply?

    @yoursunny suggested setting the neigh entry static/permanent.

    ip -6 neigh replace <ipv6> lladdr <mac> dev eth0 nud permanent

    However this alone, didn't fix issues, it did caused more, which is wired.
    IPv6 outbound died after applying the fix, server was still pingable via IPv6 but I could not ping outbound.

    Applying the additional fixes suggested by @Mumbly then it worked fine.

    I have accept-ra: false and link-local: [] in my Netplan YAML, as part of my standard config in non-residential network.
    Thus, I don't think to mention it.

    If accepting Router Advertisement is causing issues, it implies these packets contain incorrect router information.

    Would be my guess, something is sending around fucked packages.
    Time to tcpdump.

    Thanked by 1xms
  • @pkr said:
    I have using the "GCV 9999 MO EPYC" machine to host a website. Sever is really super fast. I am using Apache+Nginx (reverse proxy)+MariaDB+PHP7.4 on Debian11.5.

    I found a weird issue. Whenever I enable IPv6 on Nginx, I get "Reduce initial server response time" on the Google pagespeed test (~2.5s). If I disable IPv6, I do not get any error.

    BunnyDNS is my DNS hosting provider.

    Any idea what could be the problem?

    How do you config IPv6 on GCV? I can not use IPv6 on my vps, it shows error when i ping outside "Destination unreachable: Address unreachable"

  • @dev077 said: How do you config IPv6 on GCV? I can not use IPv6 on my vps, it shows error when i ping outside "Destination unreachable: Address unreachable"

    We don't know what you did so far. Is your IPv6 added to the interface?

    Thanked by 1dev077
  • @Mumbly said:

    @dev077 said: How do you config IPv6 on GCV? I can not use IPv6 on my vps, it shows error when i ping outside "Destination unreachable: Address unreachable"

    We don't know what you did so far. Is your IPv6 added to the interface?

    I don't do anything after install Ubuntu. At first, I thought my vps not support IPv6. But when I saw this topic, it made me wonder why IPv6 not work. Because I have same vps as thread owner.

  • pkrpkr Member

    @dev077 said:

    @Mumbly said:

    @dev077 said: How do you config IPv6 on GCV? I can not use IPv6 on my vps, it shows error when i ping outside "Destination unreachable: Address unreachable"

    We don't know what you did so far. Is your IPv6 added to the interface?

    I don't do anything after install Ubuntu. At first, I thought my vps not support IPv6. But when I saw this topic, it made me wonder why IPv6 not work. Because I have same vps as thread owner.

    I was able to ping6 my website. Now I have disabled IPv6. It's too time-consuming to learn and set up everything when the problem may be at the root node. I also do not expect GCV will fix it soon.

    Thanked by 1dev077
  • NeoonNeoon Member, Community Contributor
    edited October 26

    The fixes work fine, just apply them.

    Thanked by 1rm_
  • @Neoon said: The fixes work fine, just apply them.

    The described fixes only work on their NL boxes, not on MO, where the OP has a VPS (and I can confirm as I've tried disabling RAs on their MO network).

  • MumblyMumbly Member
    edited October 26

    @dev077 said:

    @Mumbly said:

    @dev077 said: How do you config IPv6 on GCV? I can not use IPv6 on my vps, it shows error when i ping outside "Destination unreachable: Address unreachable"

    We don't know what you did so far. Is your IPv6 added to the interface?

    I don't do anything after install Ubuntu. At first, I thought my vps not support IPv6. But when I saw this topic, it made me wonder why IPv6 not work. Because I have same vps as thread owner.

    I haven't gotten IPv6 by default on every location and I needed to request it via support ticket. And then of course set it up manually and via control panel.

    I don't use Ubuntu, but I can share my Debian setup.

    I installed Debian 11 from the Image, clicked "Reconfigure Networking" (it's easier than type everything) in SolusVM and then changed interface from eth0 to ens3 via VNC console.

    It looks something like:

    nano /etc/network/interfaces

    # Generated by SolusVM
    
     auto lo
      iface lo inet loopback
    
     auto ens3
      iface ens3 inet static
       address 64.xx.xxx.xx
       gateway 64.xx.xxx.xx
       netmask 255.255.255.0
       dns-nameservers 8.8.8.8 8.8.4.4
       up ip addr add 2602:ffc8:x:x::xx:xx/112 dev ens3
       up ip addr add 2602:ffc8:x:x::xx:xx/112 dev ens3
       up ip addr add 2602:ffc8:x:x::xx:xx/112 dev ens3
       up ip -6 route add 2602:ffc8:xxxx:xxxx:0000:0000:0000:0001 dev ens3
       up ip -6 route add default via 2602:ffc8:xxxx:xxxx:0000:0000:0000:0001
    

    And then, to keep IPv6 alive, I needed to do also:

    nano /etc/sysctl.conf

    net.ipv6.conf.all.autoconf = 0
    net.ipv6.conf.all.accept_ra = 0
    net.ipv6.conf.ens3.autoconf = 0
    net.ipv6.conf.ens3.accept_ra = 0
    

    sysctl -p

    (ens3 can be replaced with eth0 or whatever interface you use)

  • MumblyMumbly Member
    edited October 26

    @stevewatson301 said: The described fixes only work on their NL boxes, not on MO, where the OP has a VPS

    It worked also on my Florida and UK VPSes.

    edit.
    I checked again, it didn't require this setup on my UK vps, just NL and Florida for IPv6 to work.

    @stevewatson301 do you use template or Image installation? I can't say for sure but I have somewhere in my memory that those fixes were required at least with Image installations in my case. (I may be wrong tho)

  • @Mumbly said:
    Their. In some cases new install require also:

    nano /etc/sysctl.conf

    net.ipv6.conf.all.autoconf = 0
    net.ipv6.conf.all.accept_ra = 0
    net.ipv6.conf.eth0.autoconf = 0
    net.ipv6.conf.eth0.accept_ra = 0
    

    sysctl -p

    My IPv6 worked, thanks for your comment o:) . I edited the file /etc/sysctl.conf and then click "Reconfigure Networking" in SolusVM.

    Thanked by 1Mumbly
Sign In or Register to comment.