Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Linux Container Update
KOSAKI Motohiro
Who am I
• Linux メモリ管理コア開発者
• MM Summit(上位20人のコア開発者会議)5
年連続招待
• Ruby core committer
• コミット率TOP10コミッタのうちの一人
• ボストン在住、Red Ha...
LSF/MM 2014 photo
What is Container
• むつかしい言い方をすると Operating system–
level virtualization
• FreeBSD jail が嚆矢
• Containerという用語を最初に使い始めたの
はSol...
Linux v2.6.32
• 2009年12月リリース
• Ubuntu 10.04やRHEL6で採用。広く使われている
• Linuxは年4回リリース
• 20バージョン近く古く、さすがにつらい
• 2014年はUbuntu 14.04やR...
Containers new features
• 2.6.35: oom notifier
• 3.0 remove the ns_cgroup
• 3.3 per cgroup tcp buffer limit
• 3.6 hugetlb ...
OOM Notifier
• OOM(out of memory) が起きた時に、いきなり
即死させるのではなく通知してくれる。
• ユーザー空間でOOM Managerを作るための
仕組み
• OOMが起きた時に予測不可能な事態になる
のを防ぐ
remove the ns_cgroup
• 誰も使ってなかった機能だからどうでもいい
• 名前空間はclone(2), unshare(2) syscallを使う
べきということになった
per cgroup tcp buffer limit
• TCPバッファサイズはWebアプリチューニング
の最重要パラメタの1つ
• 大きくするとスループット上がる
• 小さくするとレイテンシ上がる
• ちゃんと設定しないとbufferblo...
hugetlb cgroup
• 大きなサイズのページ(2M, 1G)のサイズを
cgroupから扱うことが出来る
• ほとんどのデータベースでHugetlbを使うと性
能が上がる
• いままで、per cgroupの制限が出来ず、
disab...
memory pressure notification
• メモリが足りなくなってきた時に、アプリケー
ションに通知がされる仕組み
• アプリケーションの対応が必要
• たまに誤爆する
userns
• UID, GIDのnamespace(ns)
• 2.6.23から入っているがつい最近(3.14)まで壊
れていた
• カーネルの中に名前空間を意識せずUID処
理をしてる箇所多数
• これが動かないとセキュリティの担保が大変
memory cgroup low-limit
• いわゆるメモリ最低保証
• 自分以外のプロセスが暴れたときに、プロセ
スがスワップアウトしまくると悲しい(;_;)
memory cgroup: Kernel memory limit
• 現状のmemory cgroupはプロセスメモリーの
みを管理
• 垢BAN覚悟なら、pipeなど使ってlimitを大きく
超えたメモリ量を確保して、サーバーをクラッ
シ...
LXC
• コンテナを操作するためのツール群
• 2014/2/20 LXC 1.0.0 released
• 非特権コンテナをサポート
• Python, Ruby, GoのAPI binding
• 象徴的な意味合いが強い
• 1.0になっ...
Checkpoint & restore
• プロセスをディスクに保存し、あとで再開する
• 再開先は別のマシンでもOK
• KernelのNamespaceを使って再開先でpidや
ネットワーク設定が変わらないよう差し替える
• ライブマイグ...
Docker
• 去年から大流行
• PaaSに新たな地平を開いた
• 手元の環境とPaaSの環境の
違いによって、バグが出るの
大変つらい
• → 依存コンポーネントを
環境ごとdeploy
• 使い勝手が大幅UP
• OpenShift(R...
Thanks
Prochain SlideShare
Chargement dans…5
×

Linux container update

7 925 vues

Publié le

  • Soyez le premier à commenter

Linux container update

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

×