Your SlideShare is downloading. ×
Linux container update
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Linux container update

5,033
views

Published on


0 Comments
26 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,033
On Slideshare
0
From Embeds
0
Number of Embeds
16
Actions
Shares
0
Downloads
28
Comments
0
Likes
26
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Linux Container Update KOSAKI Motohiro
  • 2. Who am I • Linux メモリ管理コア開発者 • MM Summit(上位20人のコア開発者会議)5 年連続招待 • Ruby core committer • コミット率TOP10コミッタのうちの一人 • ボストン在住、Red Hat常駐 • Herokuは使ったことがありません
  • 3. LSF/MM 2014 photo
  • 4. What is Container • むつかしい言い方をすると Operating system– level virtualization • FreeBSD jail が嚆矢 • Containerという用語を最初に使い始めたの はSolaris • リソース(CPU, memory, IO, etc)の分離 + 名前 空間(pid, IP adress, chroot)の分離 + (SELinux) • ここ二年ぐらいで急速に注目度アップ
  • 5. Linux v2.6.32 • 2009年12月リリース • Ubuntu 10.04やRHEL6で採用。広く使われている • Linuxは年4回リリース • 20バージョン近く古く、さすがにつらい • 2014年はUbuntu 14.04やRHEL7といった次世代 ロングサポート製品が出る年 • 最近(ここ5年ぐらい)のLinuxでのコンテナアップ デートを語るチャンス
  • 6. Containers new features • 2.6.35: oom notifier • 3.0 remove the ns_cgroup • 3.3 per cgroup tcp buffer limit • 3.6 hugetlb cgroup • 3.10 memory pressure notification • 3.14 proper userns • 3.16? memory cgroup low-limit • 3.16? memory cgroup Kernel memory limit
  • 7. OOM Notifier • OOM(out of memory) が起きた時に、いきなり 即死させるのではなく通知してくれる。 • ユーザー空間でOOM Managerを作るための 仕組み • OOMが起きた時に予測不可能な事態になる のを防ぐ
  • 8. remove the ns_cgroup • 誰も使ってなかった機能だからどうでもいい • 名前空間はclone(2), unshare(2) syscallを使う べきということになった
  • 9. per cgroup tcp buffer limit • TCPバッファサイズはWebアプリチューニング の最重要パラメタの1つ • 大きくするとスループット上がる • 小さくするとレイテンシ上がる • ちゃんと設定しないとbufferbloat問題 • いままではPaaSではチューニング不可能だっ た
  • 10. hugetlb cgroup • 大きなサイズのページ(2M, 1G)のサイズを cgroupから扱うことが出来る • ほとんどのデータベースでHugetlbを使うと性 能が上がる • いままで、per cgroupの制限が出来ず、 disableにせざる得なかった
  • 11. memory pressure notification • メモリが足りなくなってきた時に、アプリケー ションに通知がされる仕組み • アプリケーションの対応が必要 • たまに誤爆する
  • 12. userns • UID, GIDのnamespace(ns) • 2.6.23から入っているがつい最近(3.14)まで壊 れていた • カーネルの中に名前空間を意識せずUID処 理をしてる箇所多数 • これが動かないとセキュリティの担保が大変
  • 13. memory cgroup low-limit • いわゆるメモリ最低保証 • 自分以外のプロセスが暴れたときに、プロセ スがスワップアウトしまくると悲しい(;_;)
  • 14. memory cgroup: Kernel memory limit • 現状のmemory cgroupはプロセスメモリーの みを管理 • 垢BAN覚悟なら、pipeなど使ってlimitを大きく 超えたメモリ量を確保して、サーバーをクラッ シュさせることも可能 • 重要サービスにPaaSは使えないというFUD • Coming soon
  • 15. LXC • コンテナを操作するためのツール群 • 2014/2/20 LXC 1.0.0 released • 非特権コンテナをサポート • Python, Ruby, GoのAPI binding • 象徴的な意味合いが強い • 1.0になったんだからアイコン作ってくれれば いいのに
  • 16. Checkpoint & restore • プロセスをディスクに保存し、あとで再開する • 再開先は別のマシンでもOK • KernelのNamespaceを使って再開先でpidや ネットワーク設定が変わらないよう差し替える • ライブマイグレーションの基盤技術 • linux-cr is dead. Long live CRIU! • 2013年soft-dirty実装 • ここ最近で一番の進化?
  • 17. Docker • 去年から大流行 • PaaSに新たな地平を開いた • 手元の環境とPaaSの環境の 違いによって、バグが出るの 大変つらい • → 依存コンポーネントを 環境ごとdeploy • 使い勝手が大幅UP • OpenShift(Red Hatの運営 するHerokuもどき)はいち早く 採用を決めた
  • 18. Thanks