大規模商用linuxの適用拡大に向けた取り組み ~コ …...トラブル事例紹介...
TRANSCRIPT
Copyright©2014 NTT Corp. All Rights Reserved.
大規模商用Linuxの適用拡大に向けた取り組み ~コミュニティにおけるノウハウ共有の必要性~
吉川 拓哉
NTT OSSセンタ
2014年11月12日
EUM 2014
1 Copyright©2014 NTT Corp. All Rights Reserved.
目次
• 自己紹介
• Linuxサーバの現状把握
• トラブル事例紹介
• ノウハウ共有とその課題
2 Copyright©2014 NTT Corp. All Rights Reserved.
自己紹介
• NTT OSSセンタでOSS関連業務に従事
• OS(Linux)に関するサポート業務
• コミュニティ活動
事業会社
SI会社
問合せ対応、 導入支援、
プロダクト保守等
技術検証、検証済OSSの導
入推進
プロダクト/ ツール類の拡充
技術者育成、人材交流
各種 OSS コミュニティ
社内システムの 設計・開発・運用
NTTグループ各社
サポート ベンダ、
NTT 研究所等
お客様
サポート 連携
開発 連携
①OSSトータルサポート
NTT OSSセンタ
②OSS適用推進
③技術開発 (DBMS,高可用ミドル等)
④ソフトウェア 基盤技術力向上
年間2,000件近い 問い合わせに対応
3 Copyright©2014 NTT Corp. All Rights Reserved.
Linuxサーバの利用形態と活用目的
ハイエンドユーザ (性能指向が高いユーザ)
一般的な企業ユーザ
個人レベルのユーザ
4 Copyright©2014 NTT Corp. All Rights Reserved.
Linuxサーバの利用形態と活用目的
ハイエンドユーザ (性能指向が高いユーザ)
一般的な企業ユーザ
個人レベルのユーザ
サービス規模の追求がメイン、そのためにかけるコストも大きく、開発コミュニティの注目も受けやすい
• 世界規模のインターネットサービス • 莫大な数のサーバ群 • 巨額の開発費
• サービスをスケールさせて回収 • 数%の性能向上が大きな利益 • 大量のエンジニアを囲い込み
5 Copyright©2014 NTT Corp. All Rights Reserved.
Linuxサーバの利用形態と活用目的
ハイエンドユーザ (性能指向が高いユーザ)
一般的な企業ユーザ
個人レベルのユーザ 決まった性能要件を満たしつつ、ベンダロックイン回避やTCO削減を達成したい。一般的だが話題になりにくい
• サービス範囲が限定的 • システム構築費用を抑えたい • 性能要件を満たせればよい • エンジニアは限定的
6 Copyright©2014 NTT Corp. All Rights Reserved.
Linuxサーバの利用形態と活用目的
ハイエンドユーザ (性能指向が高いユーザ)
一般的な企業ユーザ
個人レベルのユーザ
用途は多様。企業ユーザと異なり、制約がない分、バグ報告や機能開発などでの貢献が自由という特徴あり
• 開発用やデスクトップ環境など
7 Copyright©2014 NTT Corp. All Rights Reserved.
Linuxサーバの利用形態と活用目的
裾野の広いユーザ程、増加するノウハウへの対応、習熟、蓄積は困難に
ハイエンドユーザ (性能指向が高いユーザ)
一般的な企業ユーザ
個人レベルのユーザ
新しいハードウェアを活用するユーザの裾野を広げるためにはノウハウが共有される必要がある
8 Copyright©2014 NTT Corp. All Rights Reserved.
最近の商用Linuxサーバの傾向
• 増加するサーバリソース対応 • NUMAなどの構成をアプリに意識させずに最適化を目指す機能なども開発
カーネル
サーバ
• コア数の増加、大容量メモリ搭載、NUMA • 10G/40G対応(HW支援機能搭載)
NUMAマシンでは数10コアや数10GBメモリは普通、100GBを超すメモリの場合も
9 Copyright©2014 NTT Corp. All Rights Reserved.
最近の商用Linuxサーバの傾向
• 増加するサーバリソース対応 • NUMAなどの構成をアプリに意識させずに最適化を目指す機能なども開発
カーネル
サーバ
NUMAマシンでは数10コアや数10GBメモリは普通、100GBを超すメモリの場合も
• コア数の増加、大容量メモリ搭載、NUMA • 10G/40G対応(HW支援機能搭載)
Linuxサーバ上のアプリに搭載されたリソースを活用させてシステムの性能要件を満たしたい
10 Copyright©2014 NTT Corp. All Rights Reserved.
トラブル事例紹介
Linux(RHEL 6)
サーバ(x86 NUMA)
いろいろなノウハウがある一方、システム構築に苦しんでいる現状がある
DB(PostgreSQL 9)
事例として、一般的企業がLinuxを使いDBサーバを
構築した場合のトラブルと、それにどう対処したかを紹介します
11 Copyright©2014 NTT Corp. All Rights Reserved.
事例1:THP との相性の問題
ページ
ページ
通常のページ
ヒュージページ
メモリ
ページ数が多く管理オーバーヘッド大
...
≥ 64GB
大容量メモリに対応するため、APに意識させない形で、カーネルがヒュージページ機能を利用している
...
12 Copyright©2014 NTT Corp. All Rights Reserved.
ページ数が多く管理オーバーヘッド大 ...
事例1:THP との相性の問題
ページ
ページ
通常のページ
ヒュージページ
初期のRHEL 6では、THP機能が不安定で、DBサーバとの相性も良くなかった
メモリ
...
≥ 64GB
大容量メモリに対応するため、APに意識させない形で、カーネルがヒュージページ機能を利用している
THPを無効化し、性能要件を満たしつつ安定動作するようチューニングを実施
13 Copyright©2014 NTT Corp. All Rights Reserved.
事例2:NUMA対応の問題
数10GBのメモリを搭載するx86サーバは一般的にNUMAマシン
タスクをどこに配置するかが性能に影響する
遠い(遅い)
近い(速い)
14 Copyright©2014 NTT Corp. All Rights Reserved.
遠い(遅い)
近い(速い)
事例2:NUMA対応の問題
数10GBのメモリを搭載するx86サーバは一般的にNUMAマシン
タスクをどこに配置するかが性能に影響する
片方のノードに収まらないメモリを使用する場合に、偏りが生じ、動作が不安定に AP(PostgreSQL)の使用メモリ
メモリを均等に使用するメモリインタリーブモードの適用により、動作を安定化
15 Copyright©2014 NTT Corp. All Rights Reserved.
プロジェクト視点でみた問題
アプリ固有のチューニング
カーネルの新機能
サーバに適した設定
ノウハウは散在していて信頼性も疑問
システム・案件ごとに同種の問題とその対応ノウハウが多数存在する
クラウド化が万能の処方箋ではない
プロジェクトごとに多数のノウハウを保持しなくてもいいように、共有されたノウハウが欲しい
16 Copyright©2014 NTT Corp. All Rights Reserved.
現在のノウハウ共有の課題
• ノウハウの散在
• ノウハウの陳腐化・ 最新情報の不足
• ノウハウ間の相性の問題
17 Copyright©2014 NTT Corp. All Rights Reserved.
ノウハウの散在
• MLや個人ブログなどにノウハウが散在
• 情報の収集が困難
• 信頼できる情報か判断が難しい
開発コミュニティのサイトなど、信頼できる場所に重要なノウハウは集約されるべき
18 Copyright©2014 NTT Corp. All Rights Reserved.
ノウハウの陳腐化・ 最新情報の不足
• NUMAマシンなどのスペックに未対応
• 10年前のサーバスペックを前提としたまま
• 開発者個人のマシンを前提とするものも多い
• 在宅勤務でデスクトップのみ使用する場合は多い
• 商用ユーザからのフィードバックは不足しがち
商用ユーザのフィードバックに基づいてノウハウを蓄積する仕組みを強化すべき
19 Copyright©2014 NTT Corp. All Rights Reserved.
ノウハウの陳腐化・ 最新情報の不足(続き)
• アプリ開発が古いカーネルを前提としている
• 新しいカーネルの機能を使いこなせない
• 改善に向けた動きもあり
• Linuxコミュニティとの交流
2014年の Linux Storage, Filesystem, and Memory Management summit で PostgreSQL 開発者が発表
新しいカーネルの機能に対する適切な設定などがタイムリーに提供されるよう連携を強めるべき
20 Copyright©2014 NTT Corp. All Rights Reserved.
ノウハウ間の相性の問題
• 組み合わせても両立しないことが多い
• 特定のアプリや構成のためのものが多い
• 全てを考慮するには数が多すぎる
• 全体最適化は考慮できていない
PostgreSQLなどのアプリごとに、商用サーバ上で大きな
トラブルなく動かすための実用的で単純なノウハウをまとめるべき
21 Copyright©2014 NTT Corp. All Rights Reserved.
ノウハウ共有の改善に向けて
アプリごとに、商用サーバ上で大きなトラブルなく動かすための実用的で単純なノウハウをまとめる
開発コミュニティのサイトなど、信頼できる場所に重要なノウハウを集約
商用ユーザのフィードバックに基づいてノウハウ蓄積する仕組みを強化
新しいカーネルの機能に対する適切な設定などがタイムリーに提供されるようにコミュニティの連携強化
コミュニティとユーザの双方が、このような改善に向けて動き出す必要がある
22 Copyright©2014 NTT Corp. All Rights Reserved.
コミュニティとしてのアクション
• ノウハウ共有という形の貢献の評価
• ノウハウ共有の場の提供
• 古いノウハウの現行化・メンテナンス
コードの貢献と違い評価されにくいノウハウ共有を促すための仕組みを作り、商用サーバのユーザからのフィードバックを集める仕組みを作りたい
23 Copyright©2014 NTT Corp. All Rights Reserved.
ユーザとしてのアクション
• 公開できるノウハウの共有
• コミュニティの積極的活用
プロジェクト内部に抱え込んでいるノウハウをコミュニティで共有することによるメリットを理解し、オープンソースのエコシステムに加わりたい
24 Copyright©2014 NTT Corp. All Rights Reserved.
まとめ
• Linuxサーバの現状把握 • 搭載されるハードウェアはハイエンドでなくても高機能・大容量化が進んでいる
• トラブル事例紹介 • 最新ハードウェアを使った商用システム構築でのトラブル対応の経験を通じ、ノウハウ共有の必要性を認識
• ノウハウ共有とその課題 • ノウハウ共有により裾野が広いユーザを支援するために、コミュニティとユーザの双方に課題がある