Dashboard
Fault Injection

Process Exhaustion Experiment

The Process Exhaustion experiment simulates running processes on a target to consume process IDs (PIDs).

Overview

Process Exhaustion works by creating new operating system processes, with the goal of consuming the number of process IDs (PIDs) available on the target. Operating systems have a limited number of PIDs that they can allocate. Once all PIDs are in use, the operating system can no longer start new processes and may crash.

Linux

Gremlin uses Linux cgroups to retrieve process information. This is the same method used to run container experiments.

Options

ParameterFlagRequiredDefaultAgent VersionDescription
Allocation strategy-s <absolute, total>FalseabsoluteDetermines how Gremlin interprets the --processes and --percent arguments. The value absolute tells Gremlin to consume the specified process allocation, regardless of how many processes are already running. The value total tells Gremlin to allocate only what is needed to bring the entire system up to the specified target allocation. When unspecified, Gremlin uses absolute.
Length-l intFalse60The length of the experiment in seconds.
Percent-p <1-100>False1The percentage of maximum processes to allocate.
Processes-n intFalseThe number of processes to allocate.
Note
If both percent and processes are defined, Gremlin will default to percent.

Troubleshooting

If you receive an error message while trying to run this experiment, check to see if it's listed below.

apply caps: operation not permitted: This error occurs when the Kubernetes agent doesn't have the Linux capability SYS_RESOURCE enabled. See our security page for details on which capabilities are required.

Resource temporarily unavailable (os error 11): This error indicates we've exceeded the process limit for the host. Try reducing the number of processes created.

Attack interrupted by the OOMKiller. Target state is exited, OOMKiller killed target.: This error occurs when we've exceeded the memory available to a Kubernetes target (e.g. a pod). If this error message appears, it's likely that Kubernetes will terminate the target container.

No items found.
Previous
Next
Previous
This is some text inside of a div block.
Compatibility
Installing the Gremlin Agent
Authenticating the Gremlin Agent
Configuring the Gremlin Agent
Managing the Gremlin Agent
User Management
Integrations
Health Checks
Notifications
Command Line Interface
Updating Gremlin
Quick Start Guide
Services and Dependencies
Detected Risks
Reliability Tests
Reliability Score
Targets
Experiments
Scenarios
GameDays
Overview
Deploying Failure Flags on AWS Lambda
Deploying Failure Flags on AWS ECS
Deploying Failure Flags on Kubernetes
Classes, methods, & attributes
API Keys
Examples
Container security
General
Linux
Windows
Chao
Helm
Glossary
Alfi
Additional Configuration for Helm
Amazon CloudWatch Health Check
AppDynamics Health Check
Application Level Fault Injection (ALFI)
Blackhole Experiment
CPU Experiment
Certificate Expiry
Custom Health Check
Custom Load Generator
DNS Experiment
Datadog Health Check
Disk Experiment
Dynatrace Health Check
Grafana Cloud Health Check
Grafana Cloud K6
IO Experiment
Install Gremlin on Kubernetes manually
Install Gremlin on OpenShift 4
Installing Gremlin on AWS - Configuring your VPC
Installing Gremlin on Kubernetes with Helm
Installing Gremlin on Windows
Installing Gremlin on a virtual machine
Installing the Failure Flags SDK
Jira
Latency Experiment
Memory Experiment
Network Tags
New Relic Health Check
Overview
Overview
Overview
Overview
Overview
Packet Loss Attack
PagerDuty Health Check
Preview: Gremlin in Kubernetes Restricted Networks
Private Network Integration Agent
Process Collection
Process Killer Experiment
Prometheus Health Check
Role Based Access Control
Running Failure Flags experiments
Scheduling Scenarios
Shared Scenarios
Shutdown Experiment
Slack
Teams
Time Travel Experiment
Troubleshooting Gremlin on OpenShift
User Authentication via SAML and Okta
Users
Webhooks
Integration Agent for Linux
Test Suites
Restricting Testing Times
Reports
Process Exhaustion Experiment
Enabling DNS collection