
私はLinux 4.20で導入されたPSIの背景知識を読みました。 PSIは、CPU、メモリ、IOなどのリソースに対する競争を表します。これは、パフォーマンスの問題の根本的な原因を見つけるのに非常に便利な指標になる可能性があります。したがって、私の仮説は、特定のリソース(CPUなど)のPSIが高いほど、/proc/pressure/cpu
そのノードに対する競合が多いことです。この挙動を研究するために、Kubernetesクラスタで簡単な実験を行った。次のポッド構成を使用しました。ポッドがデプロイされたノードには88のコアがあります。
apiVersion: v1
kind: Pod
metadata:
name: stress-ng
labels:
app: stress-ng
spec:
containers:
- name: stress-ng
image: alexeiled/stress-ng:latest
imagePullPolicy: Always
command: [ '/stress-ng' ]
args:
- --matrix
- '5000'
- -t
- '5m'
resources:
requests:
memory: "5000Mi"
cpu: "5000m"
limits:
memory: "5000Mi"
cpu: "5000m"
nodeName: stressed-node1
このポッドはコア5個だけを使用しましたが、以下のようにPSIが30秒以内にほぼ90%まで上昇しました。
ノードの平均CPU使用率は非常に低い(<5%)。
私が理解したのは、システム全体に競合がないことです。この場合、高いPSIは単にこの明らかなワークロード構成によるものであり、計算ではグローバルシステムの状態を考慮すると想定しています。
だから私の質問は次のようになります
- PSIは実際にどのように計算されますか?
- この場合、PSIが誤解を招くのか、それとも私が何かを見逃していますか?
どんなアドバイスにも感謝します。