Leveraging Laravel Octane with RoadRunner for Sub-Millisecond PHP API Endpoints on AWS Lambda
Understanding the Performance Bottleneck in Traditional Lambda PHP
Deploying PHP applications on AWS Lambda traditionally involves a cold start penalty. Each invocation requires initializing the PHP runtime, loading the framework (like Laravel), and bootstrapping the application. This overhead, even with optimizations, can push response times into the tens or hundreds of milliseconds, which is unacceptable for high-throughput, low-latency API endpoints. The standard Lambda execution model is inherently stateless and ephemeral, making it a poor fit for long-running processes or persistent application states that could amortize initialization costs.
While techniques like provisioned concurrency can mitigate cold starts, they come with significant cost implications and don’t fundamentally alter the execution model. For sub-millisecond latency, we need a paradigm shift: keeping the PHP application process alive between requests and minimizing the overhead of the Lambda execution environment itself.
Introducing Laravel Octane and RoadRunner
Laravel Octane is a game-changer for PHP performance. It keeps your application’s processes running in the background, serving requests via a high-performance application server. This eliminates the need to bootstrap Laravel on every single request. RoadRunner, a high-performance PHP application server, job queue, and process manager, is an ideal candidate for Octane’s server layer. It’s built in Go and designed for concurrency, making it exceptionally well-suited for managing long-lived PHP worker processes.
Architecting for AWS Lambda with Octane and RoadRunner
The challenge is integrating Octane/RoadRunner into the AWS Lambda environment. Lambda expects a specific handler interface: a function that receives an event and returns a response. RoadRunner, on the other hand, typically runs as a long-lived server. To bridge this gap, we can leverage the AWS Lambda Runtime Interface Client (RIC). The RIC allows custom runtimes to interact with the Lambda service. We’ll build a custom Lambda runtime that starts RoadRunner, and then uses RoadRunner’s worker pool to process incoming Lambda events.
Setting up the Project Structure
Our project will require a few key components:
- A standard Laravel application.
- Laravel Octane installed and configured.
- RoadRunner binary.
- A custom Lambda runtime entrypoint script.
- A `server.php` file for Octane/RoadRunner.
- A `Dockerfile` for building the custom Lambda layer or container image.
Laravel Application Setup
Start with a fresh Laravel project or adapt an existing one. Ensure you have Composer installed.
composer create-project laravel/laravel my-octane-api cd my-octane-api
Installing Laravel Octane
Install Octane via Composer:
composer require laravel/octane
Publish Octane’s configuration:
php artisan octane:install
This creates `config/octane.php`. We’ll need to adjust this later.
Integrating RoadRunner
RoadRunner is typically installed as a binary. For Lambda, we’ll bake it into our Docker image. First, let’s create the `server.php` file that Octane uses to bootstrap RoadRunner.
<?php
/**
* Laravel Octane bootstrap for RoadRunner.
*/
require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
$config = new \Laravel\Octane\RoadRunner\Config(
// You can override RoadRunner config here if needed.
// For example, to set the listen address and port:
// 'listen' => 'tcp://127.0.0.1:9001',
);
return tap(new \Laravel\Octane\RoadRunner\Server($app, $config), function ($server) {
//
})->serve();
Next, we need a RoadRunner configuration file, typically named `rr.yaml`.
version: "2.0"
rpc:
listen: "tcp://127.0.0.1:6001" # RoadRunner RPC port
server:
command: "php ./server.php"
relay: "pipes"
context: ""
temp_dir: "/tmp"
user: "www-data" # Or appropriate user for Lambda environment
group: "www-data"
environment:
APP_ENV: "production"
APP_DEBUG: "false"
APP_KEY: "base64:YOUR_APP_KEY_HERE=" # Ensure this is set in Lambda environment variables
OCTANE_DATABASE_RETRY_SLEEP: "100"
OCTANE_DATABASE_RETRY_COUNT: "5"
OCTANE_SWAP_MEMORY_LIMIT: "256MB"
OCTANE_SWAP_MEMORY_LIMIT_PER_REQUEST: "128MB"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER: "512MB"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_REQUEST: "256MB"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS: "1000"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "500"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "100"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "50"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS: "10"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD: "5"
OCTANE_SWAP_MEMORY_LIMIT_PER_WORKER_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS_GRACE_PERIOD_MAX_REQUESTS