Submit Search
コンテナにおけるパフォーマンス調査でハマった話
1 like
•
4,181 views
Y
Yuta Shimada
CloudNative Days Spring 2021 ONLINE の登壇スライドになります 2021/3/12 17:55~18:15 Track-A
Technology
Related topics:
Cloud Computing Insights
Read more
1 of 25
Download now
Downloaded 16 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Most read
18
19
Most read
20
Most read
21
22
23
24
25
More Related Content
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
PDF
Dockerからcontainerdへの移行
Kohei Tokunaga
PDF
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
PDF
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks
PPTX
本当は恐ろしい分散システムの話
Kumazaki Hiroki
PDF
Linux女子部 systemd徹底入門
Etsuji Nakai
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
Dockerからcontainerdへの移行
Kohei Tokunaga
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks
本当は恐ろしい分散システムの話
Kumazaki Hiroki
Linux女子部 systemd徹底入門
Etsuji Nakai
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
What's hot
(20)
PDF
20分でわかるgVisor入門
Shuji Yamada
PDF
PostgreSQL: XID周回問題に潜む別の問題
NTT DATA OSS Professional Services
PDF
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
PDF
目grep入門 +解説
murachue
PDF
BuildKitの概要と最近の機能
Kohei Tokunaga
PDF
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
PDF
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
PDF
Google Cloud で実践する SRE
Google Cloud Platform - Japan
PDF
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
PPTX
Docker Tokyo
cyberblack28 Ichikawa
PDF
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
NTT DATA Technology & Innovation
PDF
Mavenの真実とウソ
Yoshitaka Kawashima
PDF
HTTP/2 入門
Yahoo!デベロッパーネットワーク
PPTX
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
NTT DATA Technology & Innovation
PDF
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
PDF
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
PDF
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
Ito Takayuki
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
20分でわかるgVisor入門
Shuji Yamada
PostgreSQL: XID周回問題に潜む別の問題
NTT DATA OSS Professional Services
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
目grep入門 +解説
murachue
BuildKitの概要と最近の機能
Kohei Tokunaga
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
Google Cloud で実践する SRE
Google Cloud Platform - Japan
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
Docker Tokyo
cyberblack28 Ichikawa
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
NTT DATA Technology & Innovation
Mavenの真実とウソ
Yoshitaka Kawashima
HTTP/2 入門
Yahoo!デベロッパーネットワーク
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
NTT DATA Technology & Innovation
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
Ito Takayuki
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
Ad
Similar to コンテナにおけるパフォーマンス調査でハマった話
(20)
PDF
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
Hadoop / Spark Conference Japan
PDF
NGINX & OpenShift webinar for Energy Sector
NGINX, Inc.
PDF
コンテナ導入概要資料2018
Masahito Zembutsu
PDF
Scalable and Cost Effective Systems Architecture on AWS
Eiji Shinohara
PDF
コンテナ時代にインフラエンジニアは何をするのか
gree_tech
PDF
Using docker infrastructure
Junya Niwa
PDF
Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Japan
PDF
とある社内ビックデータ基盤にバッチ用コンテナ基盤を構築してみた
Hiroshi Toda
PPTX
KubeCon EU報告(ランタイム関連,イメージ関連)
Akihiro Suda
PDF
『じゃらん』『ホットペッパーグルメ』を支えるクラウド・データ基盤
Recruit Lifestyle Co., Ltd.
PPTX
作られては消えていく泡のように儚いクラスタの運用話
Tsuyoshi Torii
PDF
負荷試験入門公開資料 201611
樽八 仲川
PDF
cassandra 100 node cluster admin operation
oranie Narut
PPTX
[CWT2017]Infrastructure as Codeを活用したF.O.Xのクラウドビッグデータ環境の変化
Takahiro Moteki
PDF
【HinemosWorld2014】A1-5_01_大企業のシステム基盤として利用されるAWSの運用監視の重要性を考える
Hinemos
PDF
Acm2.1 short public
Yuhki Hanada
PDF
ゲームのインフラをAwsで実戦tips全て見せます
infinite_loop
PDF
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
Developers Summit
PDF
Distributed data stores in Hadoop ecosystem
NTT DATA OSS Professional Services
PDF
運用に自動化を求めるのは間違っているだろうか
Masahito Zembutsu
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
Hadoop / Spark Conference Japan
NGINX & OpenShift webinar for Energy Sector
NGINX, Inc.
コンテナ導入概要資料2018
Masahito Zembutsu
Scalable and Cost Effective Systems Architecture on AWS
Eiji Shinohara
コンテナ時代にインフラエンジニアは何をするのか
gree_tech
Using docker infrastructure
Junya Niwa
Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Japan
とある社内ビックデータ基盤にバッチ用コンテナ基盤を構築してみた
Hiroshi Toda
KubeCon EU報告(ランタイム関連,イメージ関連)
Akihiro Suda
『じゃらん』『ホットペッパーグルメ』を支えるクラウド・データ基盤
Recruit Lifestyle Co., Ltd.
作られては消えていく泡のように儚いクラスタの運用話
Tsuyoshi Torii
負荷試験入門公開資料 201611
樽八 仲川
cassandra 100 node cluster admin operation
oranie Narut
[CWT2017]Infrastructure as Codeを活用したF.O.Xのクラウドビッグデータ環境の変化
Takahiro Moteki
【HinemosWorld2014】A1-5_01_大企業のシステム基盤として利用されるAWSの運用監視の重要性を考える
Hinemos
Acm2.1 short public
Yuhki Hanada
ゲームのインフラをAwsで実戦tips全て見せます
infinite_loop
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
Developers Summit
Distributed data stores in Hadoop ecosystem
NTT DATA OSS Professional Services
運用に自動化を求めるのは間違っているだろうか
Masahito Zembutsu
Ad
Recently uploaded
(9)
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
20250729_Devin-for-Enterprise
Masaki Yamakawa
コンテナにおけるパフォーマンス調査でハマった話
1.
コンテナにおけるパフォーマンス調 査でハマった話 TDCソフト株式会社 島田雄太 - Container’s monitoring
is hard way -
2.
発表者について 名前: 島田 雄太 (@yuta1979) 所属:TDCソフト株式会社 ITアーキテクト 最近の業務経歴:AWS構築支援、顧客業務システムのCI/CD環境構築・運用 資格:PMP、AWSソリューションアーキテクト
アソシエイト 好きなAWSサービス:Route53・CLI 最近の楽しみ:子供と過ごす時間 2
3.
本日の発表について - コンテナのメトリクス収集に苦労した話 以下は触れません - Saas型のモニタリングサービスについて(ex
Datadog,Mackerel) - デプロイ周りの話 - コンテナ入門について(特徴のみ説明) 3
4.
コンテナの特徴 - コンテナはホストOS上の独立したアプリケーションの実行環 境 - コンテナランタイムによって作成された、ホスト OSのリソース を隔離・制限したプロセス -
コンテナをイメージ化することで、開発、ステージ、本番環境 での差異を解消(設定値は環境変数で割当可能 ) 4
5.
コンテナを導入している現場で 実際にあった話 5
6.
背景:STG環境で負荷試験を実施 コンテナ上でリソースの見え方ってそもそもどうなっているんだっけ?? - 複数のコンテナ(実際にはk8sのpod)にアプリケーションをデプロイ - リリース前に負荷試験を行ったら、メモリの張り付きが発生した 6
7.
Step1:とりあえず調べてみた 7
8.
簡単に調べるなら? オンプレ時代から使っているLinuxのコマンドを利用 - メモリ: free
コマンドで使用量を確認 - CPU:psコマンドでプロセスで利用しているCPU利用率を確認 <環境について> AWS: t2.medium (2vCPU / 4GiB Memory) OS: Amazon Linux 2 →左図のような構成を用意 コンテナA コンテナB EC2インスタンス CentOS 7-1 CentOS 7-2 8
9.
2台のコンテナを起動 コンテナの起動コマンド (docker run
--name “コンテナ名” -it -d イメージ名) 2台のコンテナが起動していることを確認 (docker ps -a) 9
10.
メモリ調査(free) ホスト コンテナ ホストと同じ値 ここの値は正確か? 10
11.
メモリ調査(free) コンテナ上でfreeコマンドを使った考察 - freeコマンドは、ホストの/proc/meminfoの値を見ている可能性が高い - ホストのメモリと同値のため、実際にコンテナで利用可能な値を示していない可 能性が高い ホストの割り当てメモリ 11
12.
CPU調査(ps) stressコマンドを使って1つのコンテナで負荷をかけた後、psコマンドで確認 CPUの値が上昇 別のコンテナに影響なし # stress -c
1 -q & 12
13.
CPU調査(ps) コンテナ上でpsコマンドを使った考察 コンテナはそれぞれ名前空間(PID)を分けて起動していることから、psコマンド を利用することでコンテナ毎のCPU使用率を取得することが出来た 名前空間:実行中のプロセスに対する隔離を提供し、システムリソースに対する アクセスを制限する 13
14.
Step2:コンテナのメトリクスについて 深掘りする 14
15.
コンテナのメトリクスについて コンテナはアクセス可能なシステムのリソース(CPUやメモリなど)を厳密に制限 するために、Linuxカーネルの機能であるcgroupを利用する cgroup:タスクをグループ化したり、グループ内のタスクに様々なリソース制御 を行う仕組み。先程の名前空間はホスト名やPIDなどのリソースを制御する。 cgroupはCPUやメモリなどの物理的なリソースを制御する。 15
16.
リソースの制御について 実際に起動するコンテナのメモリ上限値を100Mしてみる cgroupの“memory.limits_in_bytes”で100MBと表示される ホストからdocker statsコマンドでもLIMITの設定が有効であることを確認 kaka 16
17.
負荷をかけてみる 再度stressコマンドで64MBの負荷をかけ、psコマンドで確認する RSS(物理メモリ)合計値:2,784+3,020+856+66,176+3,460=76,296KB≒74.5MB ホストからdocker stats コマンドのMEM
USAGEを確認する 66.72MiB メモリに関する値が上昇 # stress -m 1 --vm-bytes 64M --vm-hang 0 & 17
18.
負荷をかけてみる 厳密にイコールにならないと推測するが、差分がそれなりにある?? cgroupの”memory.usage_in_bytes”の値も確認する memory.usage_in_bytesの値:77,041,664byte≒73.47MB 18
19.
公式ドキュメントを確認する Linuxでは、Docker CLIは合計メモリ使用量からページキャッシュ使用量を差し引いてメモリ使用量を報告します。 APIはこのような 計算を実行せず、クライアントが必要に応じてデータを使用できるように、合計メモリ使用量とページキャッシュからの量を提供しま す。 https://docs.docker.com/engine/reference/commandline/stats/ Linuxでは、Docker CLIは合計メモリ使用量からページキャッシュ使用量を差し引いてメモリ使用量を 報告します。APIはこのような計算を実行せず、クライアントが必要に応じてデータを使用できるように、 合計メモリ使用量とページキャッシュからの量を提供します。 https://docs.docker.com/engine/reference/commandline/stats/ →docker
statsコマンドではページキャッシュが含まれていない usage_in_bytes:他のカーネルコンポーネントと同様に、メモリcgroupは、最適化を使用して不 要なキャッシュラインの誤った共有を回避します。 usage_in_bytesはメソッドの影響を受け、メモ リ(およびスワップ)使用の「正確な」値を表示しません。効率的なアクセスのためのファズ値です。 (もちろん、必要な場合は同期されます。)より正確なメモリ使用量を知りたい場合は、 memory.statのRSS + CACHE(+ SWAP)値を使用する必要があります(5.2を参照)。 https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt →memory.statはRSS+ページキャッシュの合計値を利用する 19
20.
参考: memory.statの値 rss+cache=74,907,648≒71.43MB 20
21.
考察 - CPUはpsやdocker statsコマンドで使用率をみることができた (cpu 測定時のdocker
statsコマンドについては割愛) - メモリは用途に応じてpsやdocker stats / cgroup を使い分ける (freeでは求める結果は得られない) - リソースの値は絶えず変化するため、横串でみるのは少し難しい(測定 するときは軸を決めましょう) docker stats: 実メモリの利用率を確認 cgroup.memory.stat:キャッシュを含めたメモリ利用量を確認 21
22.
Appendix 補足事項 - 本番環境ではSaas型のモニタリングサービスの利用がオススメ (GUIを提供/ドキュメントやライブラリが充実) - 次はk8sのリソース制御についても同様にまとめて発表したい! 22
23.
Appendix 謝辞 今回のコンテンツを作成するにあたり、案件で参画しているチームの方とディスカッ ションをさせていただいたことで整理することが出来ました。 本当にありがとうございました!! 23
24.
Appendix 参考にさせていただいたサイト Docker公式: - https://docs.docker.com/engine/reference/commandline/stats/ - https://docs.docker.com/config/containers/runmetrics/#metrics-from-cgroups-memory-cpu-block-io -
http://docs.docker.jp/engine/articles/runmetrics.html メモリについて: - https://qiita.com/kunihirotanaka/items/70d43d48757aea79de2d cgroup について: - https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt - https://www.itbook.info/network/docker06.html - https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/resource_management_guide/ch01 24
25.
ご清聴ありがとうございました! 25
Download