According to your configuration, some features can slow down the usage of Kanboard. By default, all operations are synchronous and performed in the same thread as the HTTP request. This is a PHP limitation. However, it’s possible to improve that.
Depending on the plugins you install, communicating to external services can take hundred of milliseconds or even seconds. To avoid blocking the main thread, it’s possible to delegate these operations to a pool of background workers. This setup require that you install additional software in your infrastructure.
How to detect the bottleneck?¶
- Enable the debug mode
- Monitor the log file
- Do something in Kanboard (drag and drop a task for example)
- All operations are logged with the execution time (HTTP requests, Email notifications, SQL requests)
Improve Email notifications speed¶
Using the SMTP method with an external server can be very slow.
- Use the background workers if you still want to use SMTP
- Use a local email relay with Postfix and use the “mail” transport
- Use an email provider that use an HTTP API to send emails (Sendgrid, Mailgun or Postmark)
Improve Sqlite performances¶
- Do not use Sqlite when you have a lot of concurrency (several users), choose Postgres or Mysql instead
- Do not use Sqlite on a shared NFS mount
- Do not use Sqlite on a disk with poor IOPS, it’s always preferable to use local SSD drives