ページの先頭行へ戻る
Enterprise Service Development Platform V1.0.0 チューニングガイド
FUJITSU Software

2.1.2 Pod(Application)

アプリケーションが動作するコンテナが含まれるPodの性能問題(CPU・メモリ)の分析方法と解決方法について説明します。

●CPU・メモリ

■分析方法

1. Ansibleサーバにログインし、以下のコマンドで分析対象のPod(Application)が動作するKubernetes nodeサーバのIPアドレスとコンテナIDを確認します。

kubectl describe pods <Pod名>

コマンド出力例を以下に示します。

Kubernetes nodeサーバのIPアドレスは、「Node」の値の「/」以降のIPアドレスを、 コンテナIDは、「Container ID」の「docker://」以降の値を確認してください。

以下の出力例の場合、「nginx-deployment-75675f5897-vp7m5」という名前のPodが、「172.16.2.10」のIPアドレスのKubernetes nodeサーバで動作して、コンテナIDは「27654c309cab1c9ea45e910a3e482d4c40537fe749848811675a5450beea6a3a」になります。

Name:           nginx-deployment-75675f5897-vp7m5
Namespace:      default
Node:           az2-sghpf-service-server-k8s-node-00.novalocal/172.16.2.10
Start Time:     Wed, 05 Sep 2018 05:05:48 +0000
Labels:         app=nginx
                pod-template-hash=3123191453
Annotations:    <none>
Status:         Running
IP:             10.244.2.139
Controlled By:  ReplicaSet/nginx-deployment-75675f5897
Containers:
  nginx:
    Container ID:   docker://27654c309cab1c9ea45e910a3e482d4c40537fe749848811675a5450beea6a3a
    Image:          nginx:1.7.9
    Image ID:       docker-pullable://nginx@sha256:e3456c851a152494c3e4ff5fcc26f240206abac0c9d794affb40e0714846c451
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Wed, 05 Sep 2018 05:05:51 +0000
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-dh9nk (ro)
Conditions:
  Type           Status
  Initialized    True
  Ready          True
  PodScheduled   True
Volumes:
  default-token-dh9nk:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-dh9nk
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:          <none>

2. 1.で確認したKubernetes nodeサーバにログインし、以下のコマンドでコンテナIDを指定して、CPU使用率とメモリ使用量を表示します。

docker statsコマンドに関する詳細は、docker stats | Docker Documentationを参照してください。

sudo docker stats <コンテナID>

コマンド出力例を以下に示します。

CPU使用率は「CPU %」の値を、メモリ使用量は「MEM USAGE / LIMIT」および「MEM %」の値を確認してください。

CONTAINER ID        NAME                                                                                         CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
27654c309cab        k8s_nginx_nginx-deployment-75675f5897-vp7m5_default_5a795b67-b0c9-11e8-a18d-fa163ebf2293_0   0.00%               4.094MiB / 31.26GiB   0.01%               0B / 0B             6.09MB / 0B         2

■解決方法

以下の場合、CPUやメモリのリソース不足により問題が発生している可能性があります。

  • Pod(Application)に関して性能問題が発生して、かつ
  • CPUやメモリが高負荷である

以下のいずれかを実施することを検討してください。