Performance Issues with Laravel Application on Koyeb - Slow Page Load Times

We are experiencing significant performance issues with our Laravel application deployed on Koyeb. Looking to see if others in the community have faced similar issues or found solutions.

Environment Details:

  • Koyeb Web Service (Instance: CPU Standard Medium)
  • Koyeb Database (Instance: Medium)
  • Deployment: Using Buildpack
  • Laravel Version: 10.x
  • PHP Version: 8.2
  • UI Enhancement Library: [backpack]

Current Issues:

  • Initial page loads and page transitions take 5-10 seconds
  • Disk I/O appears to be unusually slow
  • These issues persist despite running on Linux + Docker environment

What We’ve Investigated:

  1. Tested using Koyeb persistent volume for /var/www/html/vendor with a simpler Laravel application
  • Performance improvements were observed
  • However, operational challenges exist (inability to unmount volumes, additional steps required for cache clearing)
  1. Aware of common vendor directory mounting issues with Docker + Laravel
  • These should not have significant impact in Linux environments

Questions:

  1. Are there any Koyeb-specific configurations available to improve I/O performance?
  • Specifically regarding disk I/O configuration options
  • Possibilities for filesystem performance tuning
  1. Regarding the use of persistent volumes for vendor directory:
  • While performance improvements were confirmed, we face these operational challenges:
    • Unable to unmount volumes
    • Need for cache clearing with fixed volumes
    • Increased operational costs
  • Are there any alternative solutions to these challenges?
  1. Regarding AWS backbone usage:
  • When selecting AWS as the backbone for Koyeb web service, does it effectively become an Amazon Linux 2 + Docker configuration?
  • Could this configuration change potentially resolve our current performance issues?

Additional Question:
4. Community Experience:

  • Has anyone else in the Koyeb community experienced similar performance issues with Laravel applications?
  • If so, what solutions or workarounds have you found effective?
  • Are there any known issues or discussions about Laravel performance on Koyeb’s platform?

Thank you for your support.

Thanks for the detailled report!

On which region have you been running your tests?

All our servers are backed by high-performance NVMe drives, so disk I/O shouldn’t be an issue.
Deploying on the AWS region will not give you better performance, something sounds abnormal.

Do you have an easy way for us to reproduce your issue?

Thank you for your response.

I tested mounting the /var/www/html/vendor directory as a fixed volume in a container running on Koyeb with PHP + Laravel + Backpack, and I observed a noticeable improvement in response speed.

For lightweight applications, the performance is inherently good, making it harder to confirm improvements. However, I believe testing is necessary for applications with relatively heavy implementations, such as the Laravel application for Backpack that I am using, where the libraries under /var/www/html/vendor play a significant role.

I apologize for the inconvenience, but I would greatly appreciate it if you could confirm this behavior.

For reference:

  • On a local Linux (Ubuntu) environment with Docker running a Laravel application, this issue does not occur. It seems Docker’s disk access does not introduce overhead in this setup.
  • On a Windows environment with Docker running a Laravel application, the issue does occur. Mounting the /var/www/html/vendor directory as a separate fixed Docker volume significantly improved performance.

Note: The issue of improving performance for the /var/www/html/vendor directory in Laravel + Docker setups is widely discussed online and may be worth researching.

Since this is a critical performance issue related to the operating environment, we are in great need of a resolution. Your cooperation in addressing this would be highly appreciated.


Let me know if you’d like further revisions!

Additionally:

  • The region being used is Tokyo.
  • The instance size is CPU Standard Medium.
  • According to the metrics, CPU usage remains at 0% with no visible CPU load on the graph.
  • As for memory, the total available is 2GB, and only about 250MB is being utilized.

Hi @terukazu_itou,

Is there any chance you could share access to your repo with us?

We would need to reproduce the issue to investigate.