Changes between Version 41 and Version 44 of Ticket #590


Ignore:
Timestamp:
10/11/13 12:40:20 (3 years ago)
Author:
jim
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #590

    • Property Add Hours to Ticket changed from 0.5 to 0.1
    • Property Total Hours changed from 15.75 to 16.1
  • Ticket #590 – Description

    v41 v44  
    66 
    77= Summary of actions and status = 
    8 === Ongoing === 
     8== TODO == 
     9'''O) Stop making so many URL aliases for non-relevant pages, clean up url_alias table''' -- 1/4-1/2 hour, medium reward, only risk is that some already broken links might break... Per chat with Ed, only these will be removed (plus releated tweaks to Pathauto settings): 
     10* 3,579 entries where src = node/%/feed 
     11* 1,856 entries where src = user/%/contact 
     12* = 5,435 or ~11% of entries in url_alias 
     13 
     14 
    915'''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 '''N) Replace Admin Menu 1.x with 3.x''' 5 mins, high reward, low risk -- done when #582 happens, could be the cause of some load spikes as it occasionally goes made and does 2000-5000 queries! 
    12  
    13 === New, and to run past Ed === 
    14 '''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 
    15  
    16 '''O) Stop making so many URL aliases for non-relevant pages, clean up url_alias table''' -- 1/2-1 hour, medium reward, only risk is that some links might break -- though given what is proposed that's unlikely. E.g. 
    17 * 1,772 entries for: people/[name]/feed 
    18 * 1,837 entries: user/[name]/contact 
    19 * What's the point of people/[name] AND user/[name] being aliased when we always link to /people/*..? Taking out all /users/* aliases = 17,358 entries saved! 
    20  
    21 === To do: depending on spare time (JK to monitor, EM to confirm) === 
    22 '''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. 
    23  
    24 '''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~~. 
    25  
    2616 
    2717=== Done === 
     
    4232'''M) Take control of Cron, and maximise time pages are cached for.''' ~~.25h, 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. Now need per minute resolution set to get the best, see comment 33 and 34 for more...~~ 
    4333 
     34'''N) Replace Admin Menu 1.x with 3.x''' -- will happen when #590 occurs, marking complete here -- ~~5 mins, high reward, low risk -- done when #582 happens, could be the cause of some load spikes as it occasionally goes made and does 2000-5000 queries!~~ 
    4435 
    45 === On hold for now === 
     36 
     37 
     38== Postponed to Pre D7 migration tasks (pending other ticket == 
     39'''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 
     40 
     41 
     42=== To do: depending on spare time (JK to monitor, EM to confirm) === 
     43'''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. 
     44 
     45'''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~~. 
     46 
    4647'''B.2) More Taxonomy cleanup''':  2 hours, Low risk, low reward -- try to merge terms with the same names. Ed to consider doing this when he's feeling anti-spammy. 
    4748