---
id: pod-memory-hog
title: Pod Memory Hog Details
sidebar_label: Pod Memory Hog
original_id: pod-memory-hog
---
---
## Experiment Metadata
| Variables |
Description |
Type |
Notes |
| TARGET_CONTAINER |
Name of the container subjected to Memory stress |
Mandatory |
|
| MEMORY_CONSUMPTION |
The amount of memory used of hogging a Kubernetes pod (megabytes) |
Optional |
Defaults to 500MB (Up to 2000MB) |
| TOTAL_CHAOS_DURATION |
The time duration for chaos insertion (seconds) |
Optional |
Defaults to 60s |
| LIB |
The chaos lib used to inject the chaos. Available libs are litmus and pumba |
Optional |
Defaults to litmus |
| LIB_IMAGE |
Image used to run the stress command. Only used in LIB pumba |
Optional |
Defaults to gaiaadm/pumba |
| TARGET_PODS |
Comma separated list of application pod name subjected to pod memory hog chaos |
Optional |
If not provided, it will select target pods randomly based on provided appLabels |
| CHAOS_KILL_COMMAND |
The command to kill the chaos process |
Optional |
Default to kill $(find /proc -name exe -lname '*/dd' 2>&1 | grep -v 'Permission denied' | awk -F/ '{'{'}print $(NF-1){'}'}' | head -n 1 |
| PODS_AFFECTED_PERC |
The Percentage of total pods to target |
Optional |
Defaults to 0 (corresponds to 1 replica), provide numeric value only |
| RAMP_TIME |
Period to wait before and after injection of chaos in sec |
Optional |
|
| SEQUENCE |
It defines sequence of chaos execution for multiple target pods |
Optional |
Default value: parallel. Supported: serial, parallel |
| INSTANCE_ID |
A user-defined string that holds metadata/info about current run/instance of chaos. Ex: 04-05-2020-9-00. This string is appended as suffix in the chaosresult CR name. |
Optional |
Ensure that the overall length of the chaosresult CR is still < 64 characters |
#### Sample ChaosEngine Manifest
[embedmd]: # "https://raw.githubusercontent.com/litmuschaos/chaos-charts/v1.11.x/charts/generic/pod-memory-hog/engine.yaml yaml"
```yaml
apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
metadata:
name: nginx-chaos
namespace: default
spec:
# It can be true/false
annotationCheck: "true"
# It can be active/stop
engineState: "active"
appinfo:
appns: "default"
applabel: "app=nginx"
appkind: "deployment"
chaosServiceAccount: pod-memory-hog-sa
monitoring: false
# It can be delete/retain
jobCleanUpPolicy: "delete"
experiments:
- name: pod-memory-hog
spec:
components:
env:
# Provide name of target container
# where chaos has to be injected
- name: TARGET_CONTAINER
value: "nginx"
# Enter the amount of memory in megabytes to be consumed by the application pod
- name: MEMORY_CONSUMPTION
value: "500"
- name: TOTAL_CHAOS_DURATION
value: "60" # in seconds
- name: CHAOS_KILL_COMMAND
value: "kill -9 $(ps afx | grep \"[dd] if /dev/zero\" | awk '{print $1}' | tr '\n' ' ')"
```
### Create the ChaosEngine Resource
- Create the ChaosEngine manifest prepared in the previous step to trigger the Chaos.
`kubectl apply -f chaosengine.yml`
- If the chaos experiment is not executed, refer to the [troubleshooting](https://docs.litmuschaos.io/docs/faq-troubleshooting/)
section to identify the root cause and fix the issues.
### Watch Chaos progress
- Set up a watch on the applications interacting/dependent on the affected pods and verify whether they are running
`watch kubectl get pods -n