Changes between Version 32 and Version 33 of Ticket #590


Ignore:
Timestamp:
09/09/13 17:56:56 (3 years ago)
Author:
jim
Comment:

OK though I said I was done, further investigation shows that Redis (Drupal page cache) is most likely being cleared by cron runs -- there's a consistent hourly spike in the memory usage chart around 1/2 past the hour...

This link backs this theory up: http://www.metaltoad.com/blog/how-drupals-cron-killing-you-your-sleep-simple-cache-warmer

And this module might be the solution... https://drupal.org/project/elysia_cron -- we can clear the page cache every 3 to 6 hours, and run other things when we want and the site is quieter.

Which makes up Proposal M. Summary updated, adding research time.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #590

    • Property Add Hours to Ticket changed from 0.25 to 1.0
    • Property Total Hours changed from 12.7 to 13.7
  • Ticket #590 – Description

    v32 v33  
    77= Summary of actions and status = 
    88=== Ongoing === 
    9 L) '''Review slow query log, explain queries, tweak as necessary/flag poorly behaving modules.''' 2-4 hours, high reward, low risk... Keep looking at the slow query log and adjust Drupal or find patches as necessary. ALSO related [http://2bits.com/articles/reduce-your-servers-resource-usage-moving-mysql-temporary-directory-ram-disk.html Reduce your server's resource usage by moving MySQL temporary directory to tmpfs]... Have opened ticket for this: #591 for Chris. 
     9'''L) Review slow query log, explain queries, tweak as necessary/flag poorly behaving modules.''' 2-4 hours, high reward, low risk... Keep looking at the slow query log and adjust Drupal or find patches as necessary. ALSO related [http://2bits.com/articles/reduce-your-servers-resource-usage-moving-mysql-temporary-directory-ram-disk.html Reduce your server's resource usage by moving MySQL temporary directory to tmpfs]... Have opened ticket for this: #591 for Chris. 
     10 
     11'''M) Take control of Cron, and maximise time pages are cached for.''' 1 hour, high reward, low risk -- Cron is wiping the page cache, so we need to install https://drupal.org/project/elysia_cron so we can clear the page less often, and run other things when we want and the site is quieter. See comment 33 for more background. 
    1012 
    1113 
    12 === To do: depeding on spare time (JK to monitor, EM to confirm) === 
     14=== New, and to run past Ed === 
     15 
     16'''J) Convert inline PHP into module code and features''' -- various parts (1-2 hours for block code; 4-6 hours to make Features be used across site), high reward, low risk -- {{{Eval()}}}uated code is much slower than PHP in files, especially since it can't be accelerated by APC or Zend Opcode cache... We have a few blocks and many views that are loaded from the database and evaluated. Ideally the blocks would be moved to the 'Transition Extras' module, and the views would be pushed into features. This work is good to do for maintainability and D7 upgrades, too. See: http://2bits.com/api/abuse-drupal-best-practices-your-own-peril-poor-performance.html and http://2bits.com/articles/free-your-content-php-moving-php-code-out-blocks-views-and-nodes.html 
     17 
     18 
     19=== To do: depending on spare time (JK to monitor, EM to confirm) === 
    1320'''C) Find Variable table writes and kill them''' -- 3-8 hours, medium reward, low risk -- Per item 9 below,  I see plenty of SELECT * FROM variable calls, which imply a cache clear due to a variable being set. In normal use variables shouldn't be set (admin screens tend to do this), so I'd like to try to see what module it causing this and patch/remove it. Will need to run {{{grep -R "variable_set() * > ~/static/variable_set-calls.txt" in the {{{sites/all}}} directory to generate a list, then trawl though it to find candidates/bad modules practice. 
    1421 
    1522'''G) Enable ESI (Edge Side Includes) integration module, ensure Drupal renders only what it needs to ''' 3-8 hours, high reward, medium risk -- BOA packages the [https://drupal.org/project/esi ESI (Edge Side Includes integration) module], which makes NginX cache the whole page (as it does now), but also for user-logged in pages (which it does for 5 seconds since the page data changes). This means Drupal renders the ESI component (blocks, panels panes) that are have user-specific data in. Potential boost quickly, but will need time to tweak settings to get best from this across whole site. See [https://tech.transitionnetwork.org/trac/ticket/590#comment:4 comments in 4 & 5 below for discussion]~~, should be done after proposal F, above~~. 
    16  
    17  
    18 === New, to run past Ed === 
    19 '''J) Convert inline PHP into module code and features''' -- various parts (1-2 hours for block code; 4-6 hours to make Features be used across site), high reward, low risk -- {{{Eval()}}}uated code is much slower than PHP in files, especially since it can't be accelerated by APC or Zend Opcode cache... We have a few blocks and many views that are loaded from the database and evaluated. Ideally the blocks would be moved to the 'Transition Extras' module, and the views would be pushed into features. This work is good to do for maintainability and D7 upgrades, too. See: http://2bits.com/api/abuse-drupal-best-practices-your-own-peril-poor-performance.html and http://2bits.com/articles/free-your-content-php-moving-php-code-out-blocks-views-and-nodes.html 
    2023 
    2124