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. |
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) === |
13 | 20 | '''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. |
14 | 21 | |
15 | 22 | '''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~~. |