Skip to content

Commit 04386ce

Browse files
authored
Merge pull request #44240 from my-git9/memory-available-cgroupv2
[zh-cn] sync memory-available-cgroupv2.sh
2 parents 444c0f3 + db2cb64 commit 04386ce

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/bin/bash
2+
3+
# 此脚本重现了 kubelet 相对于 kubepods cgroup 计算 memory.available 的操作
4+
5+
# 当前内存使用情况
6+
memory_capacity_in_kb=$(cat /proc/meminfo | grep MemTotal | awk '{print $2}')
7+
memory_capacity_in_bytes=$((memory_capacity_in_kb * 1024))
8+
memory_usage_in_bytes=$(cat /sys/fs/cgroup/kubepods.slice/memory.current)
9+
memory_total_inactive_file=$(cat /sys/fs/cgroup/kubepods.slice/memory.stat | grep inactive_file | awk '{print $2}')
10+
11+
memory_working_set=${memory_usage_in_bytes}
12+
if [ "$memory_working_set" -lt "$memory_total_inactive_file" ];
13+
then
14+
memory_working_set=0
15+
else
16+
memory_working_set=$((memory_usage_in_bytes - memory_total_inactive_file))
17+
fi
18+
19+
memory_available_in_bytes=$((memory_capacity_in_bytes - memory_working_set))
20+
memory_available_in_kb=$((memory_available_in_bytes / 1024))
21+
memory_available_in_mb=$((memory_available_in_kb / 1024))
22+
23+
echo "memory.capacity_in_bytes $memory_capacity_in_bytes"
24+
echo "memory.usage_in_bytes $memory_usage_in_bytes"
25+
echo "memory.total_inactive_file $memory_total_inactive_file"
26+
echo "memory.working_set $memory_working_set"
27+
echo "memory.available_in_bytes $memory_available_in_bytes"
28+
echo "memory.available_in_kb $memory_available_in_kb"
29+
echo "memory.available_in_mb $memory_available_in_mb"

0 commit comments

Comments
 (0)