Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
© 2015 Actcat, Inc. 1
毎日2000個のコンテナをstartする
鯖が突然死して僕が驚愕した話
© 2015 Actcat, Inc.
@sumyapp
n Koichiro	Sumi	
n コードレビューの
ためのCIサービス、
SideCI	を運営	
	
n 1歳の息子	
カワ(・ ・)イイ!!	
2
© 2015 Actcat, Inc.
DockerのSideCIでの使い方
n ユーザからのGitHub	Push(pull_request)毎に
解析ツールの数分のコンテナを起動	
n 起動したコンテナ内でコードをclone,	解析	
n ...
© 2015 Actcat, Inc.
これが1日数百件 * 解析種毎で計2000回弱
n GitHub	
⇒ SideCI	API	
⇒ SideCI	DockerHost	
⇒ Docker	Container	
⇒ git	clone;	...
© 2015 Actcat, Inc.
アジェンダ:
鯖突然死で驚愕パターン
n 「さぁ帰ろうっと」と思った頃に飛んで来
る「No	disk	space	left」	
l やばい!	
n たまにやってくる「Docker	disk	out	of	...
© 2015 Actcat, Inc. 6
「さぁ帰ろうっと」と思った頃に飛んで来る
「NO DISK SPACE LEFT」
© 2015 Actcat, Inc.
「さぁ帰ろうっと」と思った頃に飛んで来
る「No disk space left」
n アプリケーションで`docker	start`と`docker	
kill;	dockr	rm;`かをたくさんしてい...
© 2015 Actcat, Inc.
定期クリーンアップも追加
n 稀に処理中にアプリケーションプロセス
が落ちたりするとやっぱコンテナ残る	
n 数時間以上起動しっぱなしのコンテナと
かは全部定期的にcronで吹っ飛ばすことに
した	
n ...
© 2015 Actcat, Inc. 9
たまにやってくる「DOCKER DISK OUT OF
SPACE」
© 2015 Actcat, Inc.
たまにやってくる
「Docker disk out of space」
n Devicemapper使ってたらたまに起こった	
ディスクの空き容量自体はあった(気がする)	
l コンテナ残ってるとかじゃな...
© 2015 Actcat, Inc. 11
突然のカーネルパニックが数十分おきにサーバ
各台に発生して冗長化とか無駄状態
© 2015 Actcat, Inc.
突然のカーネルパニックが数十分おきに
サーバ各台に発生して冗長化とか無駄状態
n IVS	CTO	Night&Day	っていう宮崎県のシー
ガイアっていうところのイベントに3日間
参加中に起きた	
n A...
© 2015 Actcat, Inc.
とりあえずしたこと
n 携帯でGoogle	Compute	EngineのConsoleか
ら死んだやつをリブートを定期的に	
n その間にパネルディスカッションとか聞き
ながらデバッグ	
n マジ無理
...
© 2015 Actcat, Inc.
デバッグでしたこと
n 発生ケースを特定	
l CPUのロードアベレージが8になった瞬間当
たりでカーネルパニックする(8コア)	
l ロードアベレージが1とか2とかだとまった
く起きない	
l (なので...
© 2015 Actcat, Inc.
発生原因と対策
n Docker	HostをAWSからGCPに移行した時に発
生した。AWSのホストの時は問題なく動いて
いた。(GCPをめっちゃ疑った)。	
n ソフトウェアレベルの差異はなし。Dock...
© 2015 Actcat, Inc.
Kernel Versionがちょっと新しい!
AWS	host
Storage	Driver:	aufs	
	Root	Dir:	/mnt/docker/aufs	
	Backing	Filesyste...
© 2015 Actcat, Inc.
対策
n Kennelを3.16から3.13にダウングレード	
n カーネルパニック起きなくなった!	
全てノーマルな状態に	
n 以降怖くてカーネルのアップデート出来な
い…(誰かおしえて…	
17
© 2015 Actcat, Inc. 18
まとめ
© 2015 Actcat, Inc.
まとめというか僕の内心
n Docker触るの怖い	
n 少しでもupdateしたら動かなくなるんじゃ
ないか…	
l そしてそれは長期負荷試験やらないかぎ
り事前検知出来ないんじゃないか…	
n みんな...
Upcoming SlideShare
Loading in …5
×

毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話

5,297 views

Published on

#dockerlt での発表資料です。
http://connpass.com/event/20561/

Published in: Technology
  • Be the first to comment

毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話

  1. 1. © 2015 Actcat, Inc. 1 毎日2000個のコンテナをstartする 鯖が突然死して僕が驚愕した話
  2. 2. © 2015 Actcat, Inc. @sumyapp n Koichiro Sumi n コードレビューの ためのCIサービス、 SideCI を運営 n 1歳の息子 カワ(・ ・)イイ!! 2
  3. 3. © 2015 Actcat, Inc. DockerのSideCIでの使い方 n ユーザからのGitHub Push(pull_request)毎に 解析ツールの数分のコンテナを起動 n 起動したコンテナ内でコードをclone, 解析 n 解析結果をSideCIの画面とGitHubに送信 3
  4. 4. © 2015 Actcat, Inc. これが1日数百件 * 解析種毎で計2000回弱 n GitHub ⇒ SideCI API ⇒ SideCI DockerHost ⇒ Docker Container ⇒ git clone; analyze…; send; 4
  5. 5. © 2015 Actcat, Inc. アジェンダ: 鯖突然死で驚愕パターン n 「さぁ帰ろうっと」と思った頃に飛んで来 る「No disk space left」 l やばい! n たまにやってくる「Docker disk out of space」 n 突然のカーネルパニックが数十分おきに サーバ各台に発生して冗長化とか無駄状態 5
  6. 6. © 2015 Actcat, Inc. 6 「さぁ帰ろうっと」と思った頃に飛んで来る 「NO DISK SPACE LEFT」
  7. 7. © 2015 Actcat, Inc. 「さぁ帰ろうっと」と思った頃に飛んで来 る「No disk space left」 n アプリケーションで`docker start`と`docker kill; dockr rm;`かをたくさんしている n アプリケーションにバグ(rmされないパ ターン)があったのでそれが累積して、 ディスクがゼロに n バグ直したらほぼ軽減した 7
  8. 8. © 2015 Actcat, Inc. 定期クリーンアップも追加 n 稀に処理中にアプリケーションプロセス が落ちたりするとやっぱコンテナ残る n 数時間以上起動しっぱなしのコンテナと かは全部定期的にcronで吹っ飛ばすことに した n docker psをgrepしてxargsしてrmする感じ 8
  9. 9. © 2015 Actcat, Inc. 9 たまにやってくる「DOCKER DISK OUT OF SPACE」
  10. 10. © 2015 Actcat, Inc. たまにやってくる 「Docker disk out of space」 n Devicemapper使ってたらたまに起こった ディスクの空き容量自体はあった(気がする) l コンテナ残ってるとかじゃない l ローカルじゃほぼ再現しない。 毎日コンテナ立てまくり消しまくりで起きる n `docker rm; docker rmi;`じゃ直らない。 `/mnt/docker/devicemapper`を全削除で直る n わりとすぐ再発するのでaufsに変更。起きなく なった l でもaufsって古くない?誰か教えて!(ΦωΦ) 10
  11. 11. © 2015 Actcat, Inc. 11 突然のカーネルパニックが数十分おきにサーバ 各台に発生して冗長化とか無駄状態
  12. 12. © 2015 Actcat, Inc. 突然のカーネルパニックが数十分おきに サーバ各台に発生して冗長化とか無駄状態 n IVS CTO Night&Day っていう宮崎県のシー ガイアっていうところのイベントに3日間 参加中に起きた n Au電波なくて(3G1本)、会場のwifi死んでて、 という状態でサーバが次々にカーネルパ ニック n => サービスダウン 12
  13. 13. © 2015 Actcat, Inc. とりあえずしたこと n 携帯でGoogle Compute EngineのConsoleか ら死んだやつをリブートを定期的に n その間にパネルディスカッションとか聞き ながらデバッグ n マジ無理 13
  14. 14. © 2015 Actcat, Inc. デバッグでしたこと n 発生ケースを特定 l CPUのロードアベレージが8になった瞬間当 たりでカーネルパニックする(8コア) l ロードアベレージが1とか2とかだとまった く起きない l (なのでデプロイ前気づかなかった…) n 一旦1台当たりの処理量を制限してロードア ベレージが8までいかないように変更… n でも瞬発的にいくことはあるので 必死デバッグ 14
  15. 15. © 2015 Actcat, Inc. 発生原因と対策 n Docker HostをAWSからGCPに移行した時に発 生した。AWSのホストの時は問題なく動いて いた。(GCPをめっちゃ疑った)。 n ソフトウェアレベルの差異はなし。Dockerの バージョンやファイルシステム(aufs)とかも差 異なし n あらゆる差異を探した結果、Linux Kernelの バージョンが新ホストの方が新しかった 15
  16. 16. © 2015 Actcat, Inc. Kernel Versionがちょっと新しい! AWS host Storage Driver: aufs Root Dir: /mnt/docker/aufs Backing Filesystem: extfs Execution Driver: native-0.2 Kernel Version: 3.13.0-48- generic Operating System: Ubuntu 14.04.2 LTS Docker version 1.6.2, build 7c8fca2 GCP Host Storage Driver: aufs Root Dir: /mnt/docker/aufs Backing Filesystem: extfs Dirperm1 Supported: true Execution Driver: native-0.2 Kernel Version: 3.16.0-38- generic Operating System: Ubuntu 14.04.2 LTS Docker version 1.6.2, build 7c8fca2 16
  17. 17. © 2015 Actcat, Inc. 対策 n Kennelを3.16から3.13にダウングレード n カーネルパニック起きなくなった! 全てノーマルな状態に n 以降怖くてカーネルのアップデート出来な い…(誰かおしえて… 17
  18. 18. © 2015 Actcat, Inc. 18 まとめ
  19. 19. © 2015 Actcat, Inc. まとめというか僕の内心 n Docker触るの怖い n 少しでもupdateしたら動かなくなるんじゃ ないか… l そしてそれは長期負荷試験やらないかぎ り事前検知出来ないんじゃないか… n みんなどうしてるの?(ΦωΦ) もうぼくdocker.freezeしておきたいです… 19

×