SlideShare ist ein Scribd-Unternehmen logo
1 von 38
ほんとうはこわいAnsible
@3社共同企画 Ansible 夏祭り
あんた誰?
- name: せっかくなのでAnsibleっぽく
profile:
name: t_nakayama0714
birth: 1988/07/14 (29)
address: Tokyo
company: SIer
interest:
- SONY
- Camera (α99Ⅱ)
book:
- DevOps導入指南 (共著)
今日は何の話を?
• Ansibleを使っていて嬉しかった話
• Ansibleを使っていて苦しかった話
今日は何の話を?
• Ansibleを使っていて嬉しかった話
• Ansibleを使っていて苦しかった話
昔々あるところに...
昔々あるところに...
(意訳) とてもべんりだよ
どこに入れようかな
どこに入れようかな
たいしたことない負荷だし
いいだろう
あそこのサーバに
入れさせて下さい
てなわけで使い始めてみた
アップデートも順調
1.9.4
↘
2.0.0
↙
2.1.0
↘
2.2.0
↙
_人人人人_
> 2.3.0 <
 ̄^Y^Y^Y^ ̄
ところが...(お約束)
鳴り響くZabbixのアラート
CPUがやばい
CPUがやばい
メモリもやばい
CPUがやばい
他のアプリにまで
影響が...
メモリもやばい
蘇る記憶
蘇る記憶
たいしたことない負荷
つらい
あれは何だったのか
事象のポイント
• とあるPlaybookを実行していた
– include を2階層の with_items でまわす
– まわされる item はそこそこでかい
• Ansibleプロセスがリソースを大きく消費
– CPUは1コアまるまる
– メモリは1プロセスで10GBにも達する(白目)
ググってみる
怪しいIssueが2つ
• Extreme Resource Usage During
include_role w/ with_items #24891
怪しいIssueが2つ
• Extreme Resource Usage During
include_role w/ with_items #24891
Extreme Resource Usage
怪しいIssueが2つ
• Nested includes cause "exponential"
growth of consumed memory #27024
怪しいIssueが2つ
• Nested includes cause "exponential"
growth of consumed memory #27024
"exponential" growth
エビデンスをたのむ
やってみる
検証環境
• 1サーバ + 3ノード
– 2vCPU, 16GB
– 1vCPU, 512MB
• Ansibleバージョンを切り替えながら
Issueに書いてあったPoCコードをまわす
– 対象バージョンはv2以降
• https://github.com/t-nakayama0714/ansible_problem_poc
– 実行状況をDatadogでモニタリング
2.0.0.0
...
2.3.2.0
結果
メモリ使用量(サーバ)
結果
メモリ使用量(サーバ)
何もなければ
1GBちょい
2.3.0.0が一番ひどい
7GB超
バージョン切替ごとに
sleepさせている
ここから2.2.0.0
結果
• nested includeは確かにまずいらしい
• 他のIssueと合わせて考えると
– include
– include_role
– with_*
の組み合わせ(の一部)がまずそう
• ご利用は計画的に...!
_人人人人人人人人_
> Ansibleこわい <
 ̄Y^Y^Y^Y^Y^Y^Y^ ̄
おまけ
メモリ使用量(サーバ)
CPU使用率(サーバ)
おまけ
メモリ使用量(サーバ)
CPU使用率(サーバ)
2.2以前はむしろ
CPUやばくね...?
約10分
うっ...目が...!
ありがとうございました

Weitere ähnliche Inhalte

Was ist angesagt?

超絶技巧プログラミングと Ruby 3.0 (大江戸 Ruby 会議 05 コミッタ LT)
超絶技巧プログラミングと Ruby 3.0 (大江戸 Ruby 会議 05 コミッタ LT)超絶技巧プログラミングと Ruby 3.0 (大江戸 Ruby 会議 05 コミッタ LT)
超絶技巧プログラミングと Ruby 3.0 (大江戸 Ruby 会議 05 コミッタ LT)mametter
 
AWS初心者が自作CGIをサーバレス実装の設計をしてみる
AWS初心者が自作CGIをサーバレス実装の設計をしてみるAWS初心者が自作CGIをサーバレス実装の設計をしてみる
AWS初心者が自作CGIをサーバレス実装の設計をしてみる祐樹 夏目
 
Html5勉強会資料 2012821
Html5勉強会資料 2012821Html5勉強会資料 2012821
Html5勉強会資料 2012821Cohei Aoki
 
簡単に楽しくはじめよう!Raspberry Pi入門
簡単に楽しくはじめよう!Raspberry Pi入門簡単に楽しくはじめよう!Raspberry Pi入門
簡単に楽しくはじめよう!Raspberry Pi入門Akira Ouchi
 
Raspberry Piの最新利用事例を拾い見たりたりしてみましょう(☝ ՞ਊ ՞)☝
Raspberry Piの最新利用事例を拾い見たりたりしてみましょう(☝ ՞ਊ ՞)☝Raspberry Piの最新利用事例を拾い見たりたりしてみましょう(☝ ՞ਊ ՞)☝
Raspberry Piの最新利用事例を拾い見たりたりしてみましょう(☝ ՞ਊ ՞)☝Akira Ouchi
 
Hashicorpツールズ
HashicorpツールズHashicorpツールズ
HashicorpツールズUchio Kondo
 
V6 Interpreter (Nagoya Geek Bar 2011-05-02)
V6 Interpreter (Nagoya Geek Bar 2011-05-02)V6 Interpreter (Nagoya Geek Bar 2011-05-02)
V6 Interpreter (Nagoya Geek Bar 2011-05-02)7shi
 
GUI何処行ったんDocker
GUI何処行ったんDockerGUI何処行ったんDocker
GUI何処行ったんDockerKazuhito Miura
 
Fabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFesFabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFesSho Shimauchi
 
マルチタスクって奥が深い #mishimapm
マルチタスクって奥が深い #mishimapmマルチタスクって奥が深い #mishimapm
マルチタスクって奥が深い #mishimapm鉄次 尾形
 
Shiva 〜Nextremerをscale upする機械学習環境〜
Shiva 〜Nextremerをscale upする機械学習環境〜Shiva 〜Nextremerをscale upする機械学習環境〜
Shiva 〜Nextremerをscale upする機械学習環境〜Kazuki Morozumi
 
Raspberry Piの便利なインストーラーNOOBSを活用してみよう!
Raspberry Piの便利なインストーラーNOOBSを活用してみよう!Raspberry Piの便利なインストーラーNOOBSを活用してみよう!
Raspberry Piの便利なインストーラーNOOBSを活用してみよう!Akira Ouchi
 
楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜
楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜
楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜Akira Ouchi
 
グラフ解析で社長の脳内さらす!
グラフ解析で社長の脳内さらす!グラフ解析で社長の脳内さらす!
グラフ解析で社長の脳内さらす!Kazuki Morozumi
 
第九回渋谷Java RaspberryPi+Javaを試してみる
第九回渋谷Java RaspberryPi+Javaを試してみる第九回渋谷Java RaspberryPi+Javaを試してみる
第九回渋谷Java RaspberryPi+Javaを試してみるchonaso
 
GRでシリアルサーボ
GRでシリアルサーボGRでシリアルサーボ
GRでシリアルサーボBizan Nishimura
 
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書くRuby で高速なプログラムを書く
Ruby で高速なプログラムを書くmametter
 
Dockerizeして
大変だった話、幸せになった話
Dockerizeして
大変だった話、幸せになった話Dockerizeして
大変だった話、幸せになった話
Dockerizeして
大変だった話、幸せになった話Akira Miki
 
ねるねるねるねを練ったわけ
ねるねるねるねを練ったわけねるねるねるねを練ったわけ
ねるねるねるねを練ったわけrerofumi
 
Wakayama.rbボードの使い方
Wakayama.rbボードの使い方Wakayama.rbボードの使い方
Wakayama.rbボードの使い方三七男 山本
 

Was ist angesagt? (20)

超絶技巧プログラミングと Ruby 3.0 (大江戸 Ruby 会議 05 コミッタ LT)
超絶技巧プログラミングと Ruby 3.0 (大江戸 Ruby 会議 05 コミッタ LT)超絶技巧プログラミングと Ruby 3.0 (大江戸 Ruby 会議 05 コミッタ LT)
超絶技巧プログラミングと Ruby 3.0 (大江戸 Ruby 会議 05 コミッタ LT)
 
AWS初心者が自作CGIをサーバレス実装の設計をしてみる
AWS初心者が自作CGIをサーバレス実装の設計をしてみるAWS初心者が自作CGIをサーバレス実装の設計をしてみる
AWS初心者が自作CGIをサーバレス実装の設計をしてみる
 
Html5勉強会資料 2012821
Html5勉強会資料 2012821Html5勉強会資料 2012821
Html5勉強会資料 2012821
 
簡単に楽しくはじめよう!Raspberry Pi入門
簡単に楽しくはじめよう!Raspberry Pi入門簡単に楽しくはじめよう!Raspberry Pi入門
簡単に楽しくはじめよう!Raspberry Pi入門
 
Raspberry Piの最新利用事例を拾い見たりたりしてみましょう(☝ ՞ਊ ՞)☝
Raspberry Piの最新利用事例を拾い見たりたりしてみましょう(☝ ՞ਊ ՞)☝Raspberry Piの最新利用事例を拾い見たりたりしてみましょう(☝ ՞ਊ ՞)☝
Raspberry Piの最新利用事例を拾い見たりたりしてみましょう(☝ ՞ਊ ՞)☝
 
Hashicorpツールズ
HashicorpツールズHashicorpツールズ
Hashicorpツールズ
 
V6 Interpreter (Nagoya Geek Bar 2011-05-02)
V6 Interpreter (Nagoya Geek Bar 2011-05-02)V6 Interpreter (Nagoya Geek Bar 2011-05-02)
V6 Interpreter (Nagoya Geek Bar 2011-05-02)
 
GUI何処行ったんDocker
GUI何処行ったんDockerGUI何処行ったんDocker
GUI何処行ったんDocker
 
Fabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFesFabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFes
 
マルチタスクって奥が深い #mishimapm
マルチタスクって奥が深い #mishimapmマルチタスクって奥が深い #mishimapm
マルチタスクって奥が深い #mishimapm
 
Shiva 〜Nextremerをscale upする機械学習環境〜
Shiva 〜Nextremerをscale upする機械学習環境〜Shiva 〜Nextremerをscale upする機械学習環境〜
Shiva 〜Nextremerをscale upする機械学習環境〜
 
Raspberry Piの便利なインストーラーNOOBSを活用してみよう!
Raspberry Piの便利なインストーラーNOOBSを活用してみよう!Raspberry Piの便利なインストーラーNOOBSを活用してみよう!
Raspberry Piの便利なインストーラーNOOBSを活用してみよう!
 
楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜
楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜
楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜
 
グラフ解析で社長の脳内さらす!
グラフ解析で社長の脳内さらす!グラフ解析で社長の脳内さらす!
グラフ解析で社長の脳内さらす!
 
第九回渋谷Java RaspberryPi+Javaを試してみる
第九回渋谷Java RaspberryPi+Javaを試してみる第九回渋谷Java RaspberryPi+Javaを試してみる
第九回渋谷Java RaspberryPi+Javaを試してみる
 
GRでシリアルサーボ
GRでシリアルサーボGRでシリアルサーボ
GRでシリアルサーボ
 
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書くRuby で高速なプログラムを書く
Ruby で高速なプログラムを書く
 
Dockerizeして
大変だった話、幸せになった話
Dockerizeして
大変だった話、幸せになった話Dockerizeして
大変だった話、幸せになった話
Dockerizeして
大変だった話、幸せになった話
 
ねるねるねるねを練ったわけ
ねるねるねるねを練ったわけねるねるねるねを練ったわけ
ねるねるねるねを練ったわけ
 
Wakayama.rbボードの使い方
Wakayama.rbボードの使い方Wakayama.rbボードの使い方
Wakayama.rbボードの使い方
 

Andere mochten auch

Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)NTT DATA OSS Professional Services
 
AnsibleによるHWプロビジョニング -OneViewの連携-
AnsibleによるHWプロビジョニング  -OneViewの連携-AnsibleによるHWプロビジョニング  -OneViewの連携-
AnsibleによるHWプロビジョニング -OneViewの連携-Takahiro Kida
 
運用のためのPlaybook (Playbook for Operation)
運用のためのPlaybook (Playbook for Operation)運用のためのPlaybook (Playbook for Operation)
運用のためのPlaybook (Playbook for Operation)Shingo Kitayama
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Taro Hirose
 
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネット株式会社
 
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!hiyohiyo
 
OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾外道 父
 
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu AsanoInsight Technology, Inc.
 
リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話Shohei Koyama
 
Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法Kishin Yagami
 
Ansible はじめてみました
Ansible はじめてみましたAnsible はじめてみました
Ansible はじめてみましたTakeshi Kuramochi
 
はじめての UWP アプリ開発
はじめての UWP アプリ開発はじめての UWP アプリ開発
はじめての UWP アプリ開発hiyohiyo
 
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。hiyohiyo
 
NVMe でハァハァしようよ #sapporocpp
NVMe でハァハァしようよ #sapporocpp NVMe でハァハァしようよ #sapporocpp
NVMe でハァハァしようよ #sapporocpp hiyohiyo
 
2人でOpenStackを開発環境に導入した話
2人でOpenStackを開発環境に導入した話2人でOpenStackを開発環境に導入した話
2人でOpenStackを開発環境に導入した話Shohei Koyama
 
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Sho A
 
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストール
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストールAnsibleを使ってサーバ100台にBaculaクライアントを簡単インストール
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストールKen Sawada
 
サーバーの動くメモをAnsibleでとろう
サーバーの動くメモをAnsibleでとろうサーバーの動くメモをAnsibleでとろう
サーバーの動くメモをAnsibleでとろうTakayuki Hayashi
 

Andere mochten auch (20)

Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
 
AnsibleによるHWプロビジョニング -OneViewの連携-
AnsibleによるHWプロビジョニング  -OneViewの連携-AnsibleによるHWプロビジョニング  -OneViewの連携-
AnsibleによるHWプロビジョニング -OneViewの連携-
 
運用のためのPlaybook (Playbook for Operation)
運用のためのPlaybook (Playbook for Operation)運用のためのPlaybook (Playbook for Operation)
運用のためのPlaybook (Playbook for Operation)
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
 
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
 
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
 
What is an Ansible?
What is an Ansible?What is an Ansible?
What is an Ansible?
 
OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾
 
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
 
リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話
 
Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法
 
Ansible はじめてみました
Ansible はじめてみましたAnsible はじめてみました
Ansible はじめてみました
 
はじめての UWP アプリ開発
はじめての UWP アプリ開発はじめての UWP アプリ開発
はじめての UWP アプリ開発
 
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
 
NVMe でハァハァしようよ #sapporocpp
NVMe でハァハァしようよ #sapporocpp NVMe でハァハァしようよ #sapporocpp
NVMe でハァハァしようよ #sapporocpp
 
2人でOpenStackを開発環境に導入した話
2人でOpenStackを開発環境に導入した話2人でOpenStackを開発環境に導入した話
2人でOpenStackを開発環境に導入した話
 
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
 
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストール
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストールAnsibleを使ってサーバ100台にBaculaクライアントを簡単インストール
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストール
 
Ansible+Docker
Ansible+DockerAnsible+Docker
Ansible+Docker
 
サーバーの動くメモをAnsibleでとろう
サーバーの動くメモをAnsibleでとろうサーバーの動くメモをAnsibleでとろう
サーバーの動くメモをAnsibleでとろう
 

ほんとうはこわいAnsible