Actual containers CPU and memory consumption

Актуальное потребление контейнером CPU можно посмотреть так:

kubectl exec -it podname -- cat /sys/fs/cgroup/cpu/cpuacct.usage

Актуальное потребление контейнером памяти можно посмотреть так:

kubectl exec -it podname -- cat /sys/fs/cgroup/memory/memory.usage_in_bytes
kubectl exec -it podname -- cat /sys/fs/cgroup/memory.peak

Удалить все подики, которые не Running

k get po -A | grep -v Running | grep -v NAME | awk '{print " -n "$1 " " $2}' | while IFS= read -r line; do kubectl delete po $line ; done

JVM Memory Tuning in k8s

  • Чтобы JVM корректно определяла объем памяти, заданный с помощью k8s mem limit добавляем в опции:
    -XX:+UseContainerSupport

  • Чтобы не возиться с Xmx, а позволить JVM самостоятельно определить сколько надо - добавляем:

    -XX:InitialRAMPercentage=50.0
    -XX:MaxRAMPercentage=70.0

    Максимальная цифра 70 - установлена и подтверждена экспериментально. https://stackoverflow.com/a/54076834 и https://stackoverflow.com/questions/65114573/java-memory-settings-in-a-docker-container

  • В итоге Xmx вычислится сам по формуле

    MaxHeapSize = MaxRAM * MaxRAMPercentage / 100% (default MaxRAMPercentage=25)

  • Важно учитывать, что если задана Xmx, то MaxRAMPercentage не используется.

Enter your comment. Wiki syntax is allowed:
 
  • devops/k8s_hints.txt
  • Last modified: 2026/04/08 19:06
  • by admin