This forum: horribly slow?

ahh its not just me then.

basically for me the forum is extremely slow in firefox, I am talking about 15-30 seconds to load a page. I disabled adblock plus and it made no difference.

yet in internet explorer it is fine.

something made the site anti firefox? varnish I see :)

i will try the https trick.
 
I've held off on posting to this thread, because I wanted to make sure it wasn't an issue on my end.

If I use https in Chrome and don't log in, the site is plenty fast. If I am logged into the forums in FF without https, browsing the forums is slow. It takes 5 seconds to load the page (according to Firebug) and then another 5 to load some javascript files. The onload() is triggered in over 12 seconds. Using https makes things much better but still not great.

These problems are specific to FreeBSD forums, near as I can tell. If I login to my university's LMS, which is hardly lightweight in terms of functionality, my browser is not slow.
 
My 2 cents

Code:
firefox3 -version
Mozilla Firefox 3.5.9, Copyright (c) 1998 - 2010 mozilla.org

Code:
uname -a
FreeBSD 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May  1 08:49:13 UTC 2009     root@walker.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386

With javascript disabled http://forums.freebsd.org/ loads in 2-3 seconds. Seems to load http://forums.freebsd.org/ about as fast as Dillo does.

With javascript enabled in native firefox 3.5.9 it's 5-8 seconds but not just here. Every page that uses a javascript is slow. Some are much slower than that.

Just loaded http://forums.freebsd.org/ with firefox 3.5.10 running in wine. Took 5 seconds.
Little Dillo took about 2 seconds

Refreshed web page while doing
Code:
sudo tcpdump -n -i dc0
...................149.20.54.209.80
Code:
ping 149.20.54.209
PING 149.20.54.209 (149.20.54.209): 56 data bytes
64 bytes from 149.20.54.209: icmp_seq=0 ttl=57 time=98.355 ms
64 bytes from 149.20.54.209: icmp_seq=1 ttl=57 time=98.062 ms
64 bytes from 149.20.54.209: icmp_seq=2 ttl=57 time=96.775 ms

That's from central illinois, U.S.A
 
I agree with the report of slowness. I just booted into Penguin and running a copy of FF that is fresh from the Mozilla mint. I thought it was high traffic humping the server :\
 
It takes over 30 seconds to load a page in Opera. I switched to Firefox and got a noticeable improvement. Now I just tried the https trick and the difference in both browsers is amazing! Dillo, of course, is in the 1 second range regardless.
 
I noticed it running slow with konqueror-4.5.x/FreeBSD8-STABLE, Opera-10.63/FreeBSD8-STABLE and IExplorer8/Win6.1

Just like the others, the "speed" increases significally on all Browsers if HTTPS is used.
 
@brd - the problem partially lies with where you put the javascript links on this page. Images don't get loaded while the js is being downloaded and executed. All that is taking at least 1.4 seconds by itself. Try moving all that, if you can, to the bottom of the page and see what speed improvements there are.

However, I see there are long delays with fetching the forum software.
 
I think somebody is working on the forum, this evening it was faster again, even with Firefox (I'm still using https).
 
this should be a temporary workaround tho, I cant believe the admins have yet to fix the problem.

if I google some problems I often follow a link to this site from google and of course it will use http in the situation.
 
I have moved varnishd out of the way until the problem will be identified & fixed.
Sorry for the inconvenience.
 
Don't forget to switch back from https to http, guys. This time http is faster ;)
 
Killasmurf I found that all of these can make a difference with Firefox.

Code:
1. Type about:config in the address bar and then press Enter.

2. In the filter search bar type network.http.pipelining. Be sure the value field is set true,if not double-click to set true.

HTTP is the application-layer protocol that most web pages are transferred with. In HTTP 1.1, multiple requests can be sent before 
any responses are received. This is known as pipelining. Pipelining reduces page loading times, but not all servers support it.

3. Go back to the filter search bar and type network.http.pipelining.maxrequests. Double-click this option and set its value to 8.

4. In the filter search bar and type network.http.proxy.pipelining. Once opened double-click on it and set it to true.


5. In IPv6-capable DNS servers, an IPv4 address may be returned when an IPv6 address is requested. It is possible for Mozilla to 
recover from this misinformation, but a significant delay is introduced.
Type network.dns.disableIPv6 in the filter search bar and set this option to true by double clicking on it.

6. CONTENT INTERRUPT PARSING
This preference controls if the application will interrupt parsing a page to respond to UI events. It does not exist by default.
Right-click (Apple users ctrl-click) anywhere in the about:config window, select New and then Boolean from the pop-up menu. Then:

A. Enter content.interrupt.parsing in the New boolean value pop-up window and click OK

B. When prompted to choose the value for the new boolean, select true and click OK.

7. Rather than wait until a page has completely downloaded to display it to the user, Mozilla applications will regularly render 
what has been received to that point. This option controls the maximum amount of time the application will be unresponsive while 
rendering pages.

Right-click (Apple users ctrl-click) anywhere in the about:config window, select New and then Integer from the pop-up menu.

A. Enter content.max.tokenizing.time in the New integer value pop-up window and click OK

B. You will be prompted to enter a value. Enter 2250000 and click OK.

8. CONTENT NOTIFY INTERVAL

This option sets the minimum amount of time to wait between reflows. Right-click (Apple users ctrl-click) anywhere in the 
about:config window, select New and then Integer from the pop-up menu.

A. Type content.notify.interval in the New integer value pop-up window and click OK.

B. You will be prompted to enter a value. Enter 750000 and click OK.

9. CONTENT NOTIFY ONTIMER

A. This option sets if to reflow pages at an interval any higher than that specified by content.notify.interval. 
Right-click (Apple users ctrl-click) anywhere in the about:config window and select New and then Boolean from the pop-up menu.

B. Type content.notify.ontimer in the New boolean value pop-up window and click OK.

C. You will be prompted to choose the value for the new boolean. Select true and click OK.

10. Notify Backoffcount
This option controls the maximum number of times the content will do timer-based reflows. After this number has been reached, 
the page will only reflow once it is finished downloading. Right-click (Apple users ctrl-click) anywhere in the about:config window and 
select New and then Integer from the pop-up menu.

A. Enter content.notify.backoffcount in the New integer value pop-up window and click OK.

B. You will be prompted to enter a value. Enter 5 and click OK.

11. CONTENT SWITCH THRESHOLD
You can interact with a loading page when content.interrupt.parsing is set to true. When a page is loading, the application has 
two modes: a high frequency interrupt mode and a low frequency interrupt mode. The first one interrupts the parser more frequently 
to allow for greater UI responsiveness during page load.

The low frequency interrupt mode interrupts the parser less frequently to allow for quicker page load. The application enters high 
frequency interrupt mode when you move the mouse or type on the keyboard and switch back to low frequency mode when you had no 
activity for a certain amount of time. This preference controls that amount of time. Right-click (Apple users ctrl-click) anywhere 
in the about:config window and select New and then Integer from the pop-up menu.

A. Enter content.switch.threshold in the New integer value pop-up window and click OK.

B. You will be prompted to enter a value. Enter 750000 and click OK.


12. NGLAYOUT INITIALPAINT DELAY
Mozilla applications render web pages incrementally, they display what’s been received of a page before the entire page has been 
downloaded. Since the start of a web page normally doesn’t have much useful information to display, Mozilla applications will 
wait a short interval before first rendering a page. This preference controls that interval. Right-click (Apple users ctrl-click) 
anywhere in the about:config window and select New and then Integer from the pop-up menu.

A. Enter nglayout.initialpaint.delay in the New integer value pop-up window and click OK.

B. You will be prompted to enter a value. Enter 0 and click OK.
 
Firefox tweaks have been around for ages. Just Google for that, though it looks like teckk may have posted the most common list. I haven't looked at it.
 
I think I have fixed the problem now, most of the requests are being cached, although viewing the forums through varnish seems to be a very little bit slower than directly through apache (I guess we don't have as high no. of req/s that varnish could help here). So I am not sure to enable it again.
You can check yourself viewing the forum through http://forums.freebsd.org:8080/
 
Hi All,

I read that you have a performance issue with your web server(Apache) and if you allow me to propose several optimizations.

1) You can use mod_gzip, mod_deflate, or gzip. Compression works through any server-side language, like PHP. They compressed only text data like HTML, CSS, JavaScript etc. They will not compressed images, because they already compressed. Mod_deflate comes built into Apache, but is not enabled by default.You can enable it when add mod_deflate.so in your http.conf.
Code:
LoadModule deflate_module libexec/apache22/mod_deflate.so

Next step is to create configuration file for it.

Code:
# ee /usr/local/etc/apache22/Include/mod_deflate.conf

Inside the file add the following:
Code:
AddOutputFilterByType DEFLATE text/html text/plain
#Highest 9 - Lowest 1
DeflateCompressionLevel 7

#Optional
#Skip browsers with known problems
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

#Optional
#Logging
DeflateFilterNote ratio
LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate
CustomLog /usr/local/www/logs/deflate_log deflate
When you create this config file restart Apache.
Code:
# apachectl graceful

2) The other useful modules for me are PHP Memcache Extensions (databases/pecl-memcache) and PHP APC Extensions (www/pecl-APC). After installation you can add extensions.ini.

Code:
#cat /usr/local/etc/php/extensions.ini
extension=apc.so
extension=memcache.so
...

Next is restart your webserver.
You can check whether they are loaded correctly in your php extensions.

Code:
<? phpinfo(); ?>

Regards,
Nik
 
Back
Top