Moodle can be made to perform very well, at small usage levels or scaling up to many thousands of users. The factors involved in performance are basically the same as for any PHP-based database-driven system. When trying to optimize your server, try to focus on the factor which will make the most difference to the user. For example, if you have relatively more users browsing than accessing the database, look to improve the webserver performance.
SPX, which stands for Simple Profiling eXtension, is just another profiling extension for PHP.
It differentiates itself from other similar extensions as being:
- totally free and confined to your infrastructure (i.e. no data leaks to a SaaS).
- very simple to use: just set an environment variable (command line) or switch on a radio button (web page) to profile your script. Thus, you are free of:
- manually instrumenting your code (Ctrl-C a long running command line script is even supported).
- using a dedicated browser extension or command line launcher.
- multi metrics capable: 21 currently supported (various time metrics, memory, included files, objects in use, I/O…).
- able to collect data without losing context. For example Xhprof (and potentially its forks) aggregates data per caller / callee pairs, which implies the loss of the full call stack and forbids timeline or Flamegraph based analysis.
- shipped with its web UI which allows to:
- enable / configure profiling for the current browser session
- list profiled script reports
- select a report for in-depth analysis, featuring these interactive visualizations:
- timeline (scale to millions of function calls)
- flat profile
Collect Code-Level Performance Tracing
Retrace collects an amazing amount of details about what is happening at the code level within your application. It is a gold mine for developers who are trying to troubleshoot bugs and look for ways to optimize their code.
- Web request length and context details
- SQL queries
- Log statements and exceptions
- Interaction with dozens of dependencies like NoSQL, caching, etc
- External HTTP web service calls
Your mission control center for PHP application performance
Tideways saves you time by taking the guesswork out of your app’s backend performance. Gain detailed insights, spot performance bottlenecks, and get real-time error detection alerts.
The QAN is a special dashboard which enables database administrators and application developers to analyze database queries over periods of time and find performance problems. QAN helps you optimize database performance by making sure that queries are executed as expected and within the shortest time possible. In case of problems, you can see which queries may be the cause and get detailed metrics for them.
Source: PMM Query Analytics
A collection of views, functions and procedures to help MySQL administrators get insight in to MySQL Database usage.
Dynomite, inspired by Dynamo whitepaper, is a thin, distributed dynamo layer for different storage engines and protocols. Currently these include Redis and Memcached. Dynomite supports multi-datacenter replication and is designed for high availability.
The ultimate goal with Dynomite is to be able to implement high availability and cross-datacenter replication on storage engines that do not inherently provide that functionality. The implementation is efficient, not complex (few moving parts), and highly performant.
Also, checkout (alternatives?):
– architecture related issues (e.g. design pattern violations)
– weak types control and possible code construct simplifications
– performance issues
– non-optimal, duplicate and suspicious “if” conditions
– validation of magic methods usage
– regular expressions
– validation of exception handling workflow
– compatibility issues
– variety of time-consuming bugs
– PhpUnit API usage
– security issues
Netdata is a extremely optimized Linux utility that provides real-time (per second) performance monitoring for Linux systems, applications, SNMP devices, etc.