Jump to content

Speeding Up Loading Times


Recommended Posts

  • Replies 53
  • Created
  • Last Reply

As for APC, because of how it works I'm not sure it works at all on FastCGI. You can indeed use both memcached and APC, utilising memcached for it's key:value storage and APC for it's opcode caching (basically it caches the "compiled" PHP, so it doesn't have to be parsed on each request.





I installed APC tonight (took some doing as there were quite a lot of dependencies that needed updating on my server).

It worked okay with the FastCGI wrapper for PHP in place, but there was no increase in speed at all.

So, I decided to experiment and see what happened when I stopped pushing PHP through FastCGI.

It's working faster. :thumbsup:

Only by 2-3 milliseconds, however it brought down the load time to under a second for cached page loads, and crucially the reduction seemed to be in TTFB, leading to rendering on-screen starting earlier.

I has fast forums now!!! (w00t)

Thanks,
Shaun :D
Link to comment
Share on other sites


Are you using memcached+ APC? And have you stopped using FastCGI?





Yes, I'm now using memcached + APC (version 3.0.19 which is the latest [May 2008] stable release, but I'll probably update to a newer version sometime next week).

I would still suggest trying FastCGI if you don't have APC available as it did help and was almost as fast as APC, however APC seems to offer just that little bit better speed improvement so I'm going to stick with that for a while, and maybe have a look at the settings to see if I can tailor it a little bit better (for example, I increased the cache size from the default 30MB to 256MB).

I did find Googles mod_pagespeed but haven't really looked too hard at it just yet as I wanted to go through "know" and stable offerings first, before trying new stuff.

I'll make some time to have a look at the mod_pagespeed docs though and see if will offer anything more than I already have.

Cheers,
Shaun :D
Link to comment
Share on other sites


I did find Googles mod_pagespeed but haven't really looked too hard at it just yet as I wanted to go through "know" and stable offerings first, before trying new stuff.




Be careful with mod_pagespeed. IIRC, Dan somewhere posted it makes website more slow and increases load.

http://community.invisionpower.com/topic/324493-mod-pagespeed/page__p__2038867__hl__mod_pagespeed__fromsearch__1#entry2038867
Link to comment
Share on other sites

It's important to know that if you run a server which has multiple clients on it (like you provide shared webhosting), then most host providers recommend against DSO for security reasons.
They're rationale is beyond my technical understanding, but I have seen it said many times when researching.

Link to comment
Share on other sites

One test doesn't equal a result. I'd be interested to see the more tests running mod_pagespeed. Especially if run for a couple of days. I can't use it as it's an Apache module and I run Litespeed.

While it will likely raise the server load, I would expect noticeably faster load times, even on a forum.

Link to comment
Share on other sites


One test doesn't equal a result. I'd be interested to see the more tests running mod_pagespeed. Especially if run for a couple of days. I can't use it as it's an Apache module and I run Litespeed.



While it will likely raise the server load, I would expect noticeably faster load times, even on a forum.




We did some quite extensive testing of this, both on a WordPress and IP.Board site. Even after a couple of hours of accessing the same pages, some were taking up to five minutes to load. I realise it's not a clean benchmark, etc, etc, but it does raise some huge red flags for me.
Link to comment
Share on other sites

This is just the topic I've been dreaming of, thanks for the hints :D

I'd like to also use the optimise file but get this error...

Warning: array_key_exists() expects parameter 2 to be array, null given in public_html/optimise.php on line 4
Could not retrieve your MySQL access details.

Link to comment
Share on other sites

If your doing it from the command line then you should repair / check and optimize all at once which may make more sense.

mysqlcheck -u root -p --auto-repair --check --optimize --all-databases



Have your MySql password to hand as it requires once you enter the above command line :)
Link to comment
Share on other sites


Bibs, you are running that script from the command line right? You'll need to be shelled into your server and run it with php -f ./optimise.php



Then I get...

Deprecated: Directive 'magic_quotes_gpc' is deprecated in PHP 5.3 and greater in Unknown on line 0
Could not open input file: ./optimise.php

Perhaps I should stop before I break something :lol:
Link to comment
Share on other sites


Then I get...



Deprecated: Directive 'magic_quotes_gpc' is deprecated in PHP 5.3 and greater in Unknown on line 0


Could not open input file: ./optimise.php



Perhaps I should stop before I break something :lol:






The Deprecated warning is fine. You need to drop that PHP file in the root of your IPB install (I think) and then chdir into the folder it's in before running that.
Link to comment
Share on other sites




3. This script can help you find and optimize tables that need it:




I run that as root, it didnt ask should it optimize or not, it just did that for all tables :D

Is that one time deal or should i run that time to time?


Optimizing table: ipb_core.ipb_admin_permission_rows

--- Done!


Optimizing table: ipb_core.ipb_bulk_mail

--- Done!


Optimizing table: ipb_core.ipb_cache_store

--- Done!


Optimizing table: ipb_core.ipb_ccs_block_wizard

--- Done!                                                                                                                                                             


Optimizing table: ipb_core.ipb_ccs_blocks                                                                                                                             

--- Done!                                                                                                                                                             


Optimizing table: ipb_core.ipb_ccs_custom_database_8                                                                                                                  

--- Done!                                                                                                                                                             


Optimizing table: ipb_core.ipb_ccs_database_revisions                                                                                                                 

--- Done!


Optimizing table: ipb_core.ipb_ccs_folders

--- Done!


Optimizing table: ipb_core.ipb_ccs_page_wizard

--- Done!


Optimizing table: ipb_core.ipb_ccs_pages

--- Done!


Optimizing table: ipb_core.ipb_ccs_template_blocks

--- Done!


Optimizing table: ipb_core.ipb_ccs_template_cache

--- Done!


Optimizing table: ipb_core.ipb_chat_log_archive

--- Done!


Optimizing table: ipb_core.ipb_core_hooks

--- Done!


Optimizing table: ipb_core.ipb_core_hooks_files

--- Done!


Optimizing table: ipb_core.ipb_core_item_markers_storage

--- Done!


Optimizing table: ipb_core.ipb_core_soft_delete_log

--- Done!


Optimizing table: ipb_core.ipb_core_sys_conf_settings

--- Done!


Optimizing table: ipb_core.ipb_core_sys_cp_sessions

--- Done!


Optimizing table: ipb_core.ipb_core_sys_lang_words

--- Done!


Optimizing table: ipb_core.ipb_core_sys_login

--- Done!


Optimizing table: ipb_core.ipb_core_sys_settings_titles

--- Done!


Optimizing table: ipb_core.ipb_forums

--- Done!


Optimizing table: ipb_core.ipb_mail_queue

--- Done!


Optimizing table: ipb_core.ipb_member_status_actions

--- Done!


Optimizing table: ipb_core.ipb_member_status_replies

--- Done!


Optimizing table: ipb_core.ipb_member_status_updates

--- Done!


Optimizing table: ipb_core.ipb_rss_export

--- Done!


Optimizing table: ipb_core.ipb_search_sessions

--- Done!


Optimizing table: ipb_core.ipb_sessions

--- Done!


Optimizing table: ipb_core.ipb_skin_cache

--- Done!


Optimizing table: ipb_core.ipb_skin_css

--- Done!


Optimizing table: ipb_core.ipb_skin_templates

--- Done!


Optimizing table: ipb_core.ipb_task_manager

--- Done!


Optimizing table: ipb_core.ipb_upgrade_sessions

--- Done!


Optimizing table: ipb_core.ipb_validating

--- Done!


Link to comment
Share on other sites


[size="4"]<?php flush(); ?>[/size]



Credit: blair



This helps to speed up the visual perception of page loading. Try adding <?php flush(); ?> to your skin after </head>






</head>


<?php flush(); ?>


<body ........ >



blair had a problem using it once with some (non-standard) ad code, but no issues with Adsense.



Does this execute if it is in the template the way you posted? I thought php code within a template had to be wrapped within the < php >< /php > in order for it to execute.
Link to comment
Share on other sites


Does this execute if it is in the template the way you posted? I thought php code within a template had to be wrapped within the < php >< /php > in order for it to execute.





That's a very good question - and one, unfortunately, that I don't know the answer to.

If it helps, when I view source for my pages I see the php flush code as it's shown in my posting. Should this be present / visible in the code?

Is anyone else able to answer this?

Cheers,
Shaun :D
Link to comment
Share on other sites

  • 5 weeks later...

That's a very good question - and one, unfortunately, that I don't know the answer to.



If it helps, when I view source for my pages I see the php flush code as it's shown in my posting. Should this be present / visible in the code?



Is anyone else able to answer this?



Cheers,


Shaun :D




No it shouldn't be visible but if you type what CycleChat suggested it would be. The "flush" code never ran.. and if it did, you would probably get errors. This is because when you flush the page the server has to issue response headers.. and any attempts to modify or add on to those headers after the flush call would produce an error message since they were already sent.
Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...