الملفات
ghaymah-exam-Abdulrahman-Ab…/q2-postmortem/postmortem-report.md
2026-07-27 23:06:16 +03:00

2.4 KiB

Incident Postmortem: Application Frequent Crashes (OOMKilled)


1. Incident Overview & Summary

  • Incident Date: July 26, 2026
  • Impact: The application deployed on Ghaymah Cloud suffered from repeated crashes every 45 minutes, causing service downtime for users.
  • Root Cause: OOMKilled (Out Of Memory) error triggered because the container exceeded its allocated memory limit due to unoptimized resource configuration or a potential memory leak.

2. Timeline

  • 00:00 - Application deployed and running normally.
  • 00:30 - Memory consumption gradually increases as traffic and background tasks accumulate.
  • 00:45 - Memory usage reaches 100% of the container limit; the Linux kernel terminates the process (OOMKilled).
  • 00:46 - Container restarts automatically, and the cycle repeats precisely every 45 minutes.

3. Root Cause Analysis

  1. Resource Limits: The container was assigned insufficient RAM limits in its deployment configuration.
  2. Memory Leak / Garbage Collection: Long-running background jobs or unclosed database connections failed to release memory back to the system, leading to a steady upward trend until exhaustion.

4. Preventive Actions & Recommendations

  • Increase Container RAM: Scale up the memory limits in the deployment configuration on Ghaymah Cloud.
  • Code Optimization: Audit the application code to fix any memory leaks and ensure proper resource disposal.
  • Health & Memory Probes: Implement stricter liveness and readiness probes.

5. Auto-Scaling Policy Design

To prevent recurring downtime under high load, an auto-scaling policy should be configured on Ghaymah Cloud:

  • Trigger Metric: Memory Utilization or CPU Utilization.
  • Scale-Up Threshold: Automatically add a new container instance (replica) when memory usage exceeds 75% for 5 consecutive minutes.
  • Max Instances: Set a cap of 3 instances to handle traffic spikes safely without exhausting cluster resources.

6. Early Detection & Monitoring Setup

Using Ghaymah Cloud monitoring tools to detect the issue proactively before crashes occur:

  • Custom Alerts: Set up an alerting rule (via Webhook/Email) to notify the DevOps team when container memory usage crosses 70%.
  • Real-Time Dashboards: Monitor memory trends continuously using the metrics dashboard to spot gradual upward slopes before hitting the OOM threshold.