Optimization

This page lists extra optional software you can install to improve Pootle’s performance. Some configuration tips are given too.

Optional Software

By installing optional software you can gain performance and extra features.

Database Backends

You should really switch to a real database backend in production environments. Adjust the DATABASES setting accordingly.

MySQL-python
MySQL adapter for Python.
Psycopg2
PostgreSQL adapter for Python.

Web Servers

You should really run Pootle behind a real web server, at least to serve static content. For generating the dynamic content, you can also use alternative WSGI servers that might better suit your environment.

Apache
Apache web server.
Nginx
Ngninx web server.
gunicorn
Python WSGI HTTP server.

Speed-ups and Extras

iso-codes
Enables translated language and country names.
raven
Enables logging server exceptions to a Sentry server. If installed and configured, Pootle will automatically use the raven client.

Tips

With a few extra steps, you can support more users and more data. Here are some tips for performance tuning on your Pootle installation.

  • Ensure that Pootle runs under a proper web server.
  • Be sure to use a proper database server like MySQL instead of the default SQLite. You can migrate an existing installation if you already have data you don’t want to lose.
  • Install the latest recommended version of all dependencies. Django and the Translate Toolkit might affect performance. Later versions of Pootle should also give better performance. You can upgrade to newer versions of Pootle easily.
  • Ensure DEBUG mode is disabled.
  • Increase the cache timeout for users who are not logged in.
  • Increase your PARSE_POOL_SIZE if you have enough memory available.
  • Enable 'django.contrib.sessions.backends.cached_db'.
  • Disable swap on the server. Things should be configured so that physical memory of the server is never exceeded. Swapping is bound to seriously degrade the user experience.
  • Ensure gzip compression is enabled on your web server. For Apache, mod_deflate handles this. Also see nginx wiki.

Apache

For Apache, review your server settings so that you don’t support too many or too few clients. Supporting too many clients increases memory usage, and can actually reduce performance.

No specific settings can be recommended, since this depends heavily on your users, your files, and your hardware. However the default value for the MaxClient directive (usually 256) is almost always too high. Experiment with values between 10 and 80.

MySQL

Using MySQL with InnoDB backend is well tested. MyISAM is no longer supported. You can migrate your current database if you already have data you don’t want to lose.