クローズドネットワークスパークル是什么意思思?

グローリーデイズ?オブ?ネットワークス-日本ACG, グローリーデイズ?オブ?ネットワークスMP3下载,歌词下载 - 虾米音乐
Loading...
グローリーデイズ?オブ?ネットワークス
@微博好友,送歌给Ta!
Sorry,此歌曲暂无文本歌词。
使用手机扫码收听单曲
打开虾米音乐APP
点击 扫一扫
扫描二维码
收藏グローリーデイズ?的人们
听グローリーデイズ?的人也听
关注虾米:MARKLESSSTYLE
MARKLESSSTYLE
MARKLESSSTYLE
MARKLESSSTYLE
TRADEWORKS
TRADEWORKS
TRADEWORKS
MARKLESSSTYLE
MARKLESSSTYLE
MARKLESSSTYLE
MARKLESSSTYLE
vape studio
vape studio
MARKLESSSTYLE
vape studio
vape studio
vape studio
MARKLESSSTYLE
MARKLESSSTYLE
MARKLESSSTYLE
vape studio
TRADEWORKS
MARKLESSSTYLE
MARKLESSSTYLE
MARKLESSSTYLE
vape studio
MARKLESSSTYLE
vape studio
vape studio
vape studio
MARKLESSSTYLE
MARKLESSSTYLE
vape studio
MARKLESSSTYLE
MARKLESSSTYLE
MARKLESSSTYLE
MARKLESSSTYLE
vape studio
vape studio
TRADEWORKS
MARKLESSSTYLE
vape studio
vape studio
MARKLESSSTYLE
vapestudio
TRADEWORKS
マークレススタイル事業
企業向けセールスプロモーション製品および、物販品のOEMを対象とした品揃をしております。1,000アイテム以上の商品を海外で生産し、国内に在庫をしています名入れの相性抜群のシンプルなデザインの製品から、物販品として利用されるハイクオリティな製品まで、 取扱い製品の幅の広さも「マークレススタイル」の大きな強みです。
●マークレススタイルのセミオーダー
中国だけでなくアジア諸国で生産。原材料を工賃が最も安い国へ移動?生産することにより低価格でご提供します。
最短当日出荷。印刷加工有の場合もグループ会社で行うことにより、業界最短納期で対応いたします。
国内に大量在庫をもち、小口のロットでも対応可能です。
3つのポイント
企画?デザイン
グッドデザイン賞、IFデザイン賞など多数の賞を獲得した確かな企画力で、お客様の頭の中にある?作りたい?を形にします。
専門のスタッフが生産を管理し、厳選した工場で生産?品質管理を行っています。品質基準は法令や業界基準を元に設定しています。
プリンタブル
単色からフルカラー印刷。素押し箔押しや特殊な印刷まで。印刷のプロがお客様のご要望に沿った印刷を施します。
製品カテゴリー
ピックアップアイテム
●マークレススタイルのフルオーダー/OEM
10数年以上に渡る生産地開拓や商品企画?製造によって培った、 ?価格??品質??納期?を叶える?仕組み?が基盤にあります。
強力なネットワークで幅広いアイテムを作る?製造力?と最良の原産地を探す?機動力?。今やセールスプロモーション製品だけでなく、OEM製品や企業サプライ製品など幅広いご要望の製品を製造しています。当社各分野のプロフェッショナルが提案から納品迄、ワンストップで皆様のご提案をサポートいたします。
フルオーダーの強み
専門のスタッフが生産を管理し、厳選した工場で生産?品質管理を行っています。品質基準は法令や業界基準を元に設定しています。
中国を始めアジア諸国で生産することで、コストを抑え、低価格での商品提供を実現します。
確かな技術を持ったスタッフによって、お客様の頭の中にある?作りたい?を形にします。
工場の様子
VAPE(電子タバコ)事業
vape studioは高品質な商品のみを取り扱う電子タバコ専門ショップです。「 ECサイトでは色々な商品があるけど怪しいショップもありそうで不安」と様々な疑問を持たれている方も多いと思います。vape studioは東証1部上場企業のグループ会社である当社が運営する安心、安全のショップです。 初めて電子タバコを使用される方から上級者の方まで、多くの方にご満足いただける商品ラインナップを取り揃えております。
●VAPE(電子タバコ)3つの販路
電子タバコカルチャーの発信?普及のため東京都内を中心に電子タバコ専門店vape studioを展開しております。
国内外の仕入れネットワークによって、低価格で安心した卸し販売の体制を構築。
日本全国の個人のお客様から法人のお客様まで、多くのお客様が電子タバコを購入できる環境をご用意。
3つのポイント
VAPE(ベイプ)とは?
VAPE(ベイプ)とは、欧米やアジア諸国を中心に大流行している次世代タイプの電子タバコです。
安全性について
vape studioで取り扱う全てのリキッドは検査機関にて安全性の検査を行っており、合格した製品のみを販売しております。
日本最大級の店舗展開
vape studioは初めてのお客様、女性のお客様でも安心して入りやすい店舗作りを心がけております。
ピックアップアイテム
vape studioは国内最大級の品ぞろえ。初心者の方もお気軽にご来店ください。店内の商品すべて無料で試せます!VAPE専門店ならではの豊富な知識と丁寧なサービスで、皆さまのご来店をお待ちしております。
渋谷Shibuya
新宿Shinjyuku
有楽町Yurakucyo
吉祥寺Kichijyoji
赤坂見附Akasakamitsuke
池袋Ikebukuro
町田Machida
横浜Yokohama
リテール事業
小売販路に向けた消費財ブランドの事業です。トラベル雑貨の「gowell」、衛生商材の「Leaffresh」、コスメグッズの「Fairydrops」の3つのブランドで展開しております。独自性の高い、個性的なアイテムを豊富に取り揃えております。卸販売を基軸としながら、「gowell」においてはECサイトでの販売も行っております。
●gowell(ゴーウェル)
トラベル雑貨専門として30年の歴史を持つ京都発祥のブランド。
特許取得の大ヒットロングラン商品「バッグとめるベルト」を中心に、旅行?出張向けのアイテムを多数取り扱い、快適な旅をグッズでサポートします。
極上トラベルギアシリーズ
創業から40年間で培ったノウハウを駆使し、ありそうでなかった新機能を盛り込むことで、旅に最高のリラックスを提供する極上シリーズをリリースします。
ポケモントラベル
ポケモン好きで旅行好きの代の女性達の旅をより快適に、より充実させるために、POKEMON TRAVELは誕生しました。
ピックアップアイテム
●leaffresh(リーフフレッシュ)
マスクを中心とした衛生用品のバリューブランドです。
キャラクターライセンス、PB開発など幅広く対応しています。
全国マスク工業会は、厚生労働省よりマスクの仕様表示の検討が要請されたことを受け2005年に発足。適正な仕様表示のほか、性能試験方法の統一化などを推進し、マスクの普及に努めています。
ピックアップアイテム
キャラクターライセンス
●FAIRYDROPS(フェアリードロップス)
日米特許取得のコスメブランドです。海外セレブからの支持も厚いマスカラを中心に展開しています。販売代理店契約ブランドです。
ピックアップアイテム
クアトロマスカラ
クアトロマスカラ ウォータープルーフ
トリートメント ジェットリムーバー
形状記憶ストレッチファンデーション
トレードワークスが運営するECサイト
トレードワークスではマークレススタイル事業で習得したノウハウをもとに販売代理店様、個人ユーザー様の幅広いお客様に向けたECサイトを運営しております。
ブランド関連サイト
Copyright (C) 2009- TRADE WORKS CO.,LTD. All Rights Reserved.トップページ&&&
ピックアップコスプレイヤー
現在&48143&件の知恵を掲載中
3/16 17:51登録
3/16 16:10登録
コスプレイヤー
3/16 16:07登録
コスプレイヤー
3/16 16:06登録
フェイクスイーツ&フードを作るのが好き、作ってみたい人集まれ?!
一眼レフカメラを愛する人の情報交換の場に是非どうぞ
死ぬまでにしたい10のコスを書いてみる同盟
管理人もスタジオ撮影好きです
キーワード:
本サイトに掲載されている画像?文章等、全ての内容の無断転載を禁止します。 | copyright Cosplayers Archive co,ltd All rights reserved.マルチテナント?クラウド環境でのパフォーマンス分析
Server and Storage Administration
マルチテナント?クラウド環境でのパフォーマンス分析
Hadoop ClusterとOracle Solaris 11を使用
Orgad Kimchi著
仮想化されたマルチテナント?クラウド環境のパフォーマンス分析は、抽象化レイヤーがあるため困難です。この記事では、Oracle Solaris 11を使用してそのような制限を克服する方法について説明します。
2013年12月公開
この記事についてコメントする場合は、リンクをに投稿してください。同様の記事を共有する場合は、Facebookまたはに投稿してください。みんなで議論しましょう。
注:この記事の情報は、Oracle Solaris 11およびOracle Solaris 11.1に適用されます。
Oracle Solaris 11には、仮想化されたマルチテナント?クラウド環境でパフォーマンス分析を実施するための一連の新しいコマンドが付属しています。さまざまなユーザーが各種のワークロードを実行する仮想化されたマルチテナント?クラウド環境でのパフォーマンス分析は困難な作業です。その理由は次のとおりです。
仮想化ソフトウェアのタイプごとに、管理性を高めるための抽象化レイヤーが追加されます。抽象化レイヤーの追加によって仮想化されたリソースの管理は大幅に容易になりますが、過負荷状態の物理的なシステム?リソースを見つけることが難しくなります。
通常、Oracle Solarisゾーンごとにワークロードが異なります。このワークロードは、ディスクI/O、ネットワークI/O、CPU、メモリ、あるいはそれらの組合せの場合もあります。さらに、単一のOracle Solarisゾーンがシステム?リソース全体の過負荷状態の原因となる可能性もあります。
環境の観測は非常に困難で、環境をトップ?レベルから監視してすべての仮想インスタンス(非大域ゾーン)をリアルタイムで確認でき、さらに特定のリソースにドリルダウンできる必要があります。
Oracle Solaris 11を使用して仮想化されたパフォーマンス分析を実行するメリットは次のとおりです。
可観測性:Oracle Solaris大域ゾーンは、環境全体(同時にホストやVMを含む)を観測できない独自のハイパーバイザや最小限のオペレーティング?システムではなく、完全に機能するオペレーティング?システムです。大域ゾーンから、すべての非大域ゾーンのパフォーマンス?メトリックを確認できます。
統合:すべてのサブシステムが同じオペレーティング?システムの内部に組み込まれます。たとえば、ZFSファイル?システムとOracle Solaris Zones仮想化テクノロジーが一緒に統合されています。これは、多くのベンダーのテクノロジーが混在する状況よりも望ましいことです。テクノロジーが混在すると、異なるオペレーティング?システム(OS)サブシステム間で統合できなくなり、異なるすべてのOSサブシステムを同時に分析することが非常に困難になります。
仮想化の認識:Oracle Solarisの組込みコマンドは仮想化認識型であり、システム全体(Oracle Solaris大域ゾーン)のパフォーマンス統計を出力できます。これらのコマンドはすべてのリソース(Oracle Solaris非大域ゾーン)にドリルダウンできるのに加えて、パフォーマンス分析プロセス中に正確な結果を出力します。
この記事では、4つの例を詳しく見ていきながら、Oracle Solaris 11の組込みツールを使用してOracle Solaris Zonesによる仮想化環境を監視する方法について説明します。これらのツールには、CPU、メモリ、ディスク、ネットワークなどの特定のリソースにドリルダウンする機能があります。また、Oracle Solarisゾーンごとに統計を出力する機能や、実行中のアプリケーションに関する情報を出力する機能もあります。
この記事の例では、CPU、ディスク、ネットワークのワークロードを対象としたHadoop MapReduceベンチマークを使用します。Hadoopクラスタのセットアップは、&&で説明しているセットアップに基づいています。この記事の例では、Hadoopクラスタのすべての構成要素は、Oracle Solaris Zones、ZFS、ネットワーク仮想化テクノロジーを使用してインストールされます。そのアーキテクチャを図1に示します。
図1:アーキテクチャ
最初に、zoneadmコマンドを使用して環境を確認します。
root@global_zone:~# zoneadm list -civ
19 sec-name-node
/zones/sec-name-node
23 data-node1
/zones/data-node1
24 data-node3
/zones/data-node3
25 data-node2
/zones/data-node2
26 name-node
/zones/name-node
見てのとおり、この環境には次の5つのOracle Solarisゾーンがあります。
sec-name-node
data-node1
data-node2
data-node3
Oracle Solarisでのマルチスレッド認識を利用してシステムの使用状況を改善するために、Hadoopゾーンあたり25個のジョブ?スロット(合計75個)を有効化します。そのために、mapred-site.xmlに次のプロパティを追加します。
&property&
&name&mapred.tasktracker.map.tasks.maximum&/name&
&value&25&/value&
&/property&
&property&
&name&mapred.tasktracker.reduce.tasks.maximum&/name&
&value&25&/value&
&/property&
ベンチマークを開始する前に、このHadoopクラスタの状態を確認します。
root@global_zone:~# zlogin -l hadoop name-node hadoop dfsadmin -report
Oracle Corporation
SunOS 5.11
December 2012
Configured Capacity:2 (1.31 TB)
Present Capacity:9 (1.31 TB)
DFS Remaining:6 (1.31 TB)
DFS Used: (2.42 GB)
DFS Used%:0.18%
Under replicated blocks:137
Blocks with corrupt replicas:0
Missing blocks:0
-------------------------------------------------
Datanodes available:3 (3 total, 0 dead)
3つのDataNodeが利用可能です。
注:DataNodeとは、Hadoop分散ファイル?システム(HDFS)でデータが格納されるノードのことです。DataNodeはスレーブとも呼ばれ、図2に示すTask Trackerプロセスを実行します。
図2:DataNode
仮想化環境でのCPUワークロードの監視
あらゆるパフォーマンス分析におけるベスト?プラクティスは、どのリソースがもっとも負荷が高いかを確認するために実行環境を大局的に把握し、その後それぞれのリソースにドリルダウンすることです。表1に、この記事のCPUパフォーマンス分析で使用するコマンドの概要を示します。
表1:コマンドの概要
プロセッサ情報を表示する
アクティブなゾーンの統計をレポートする
プロセッサごとの統計またはプロセッサ?セットごとの統計をレポートする
ファイル?システムの統計をレポートする
仮想メモリの統計とCPUアクティビティをレポートする
プロセスの統計をレポートする
CPUトポロジを出力する
プロセッサの使用統計をレポートする
アクティブなプロセスの統計をレポートする
まず、物理的なリソース情報を取得します(リスト1を参照)。CPUはいくつあるでしょうか。
root@global_zone:~# psrinfo -pv
The physical processor has 16 cores and 128 virtual processors (0-127)
The core has 8 virtual processors (0-7)
The core has 8 virtual processors (8-15)
The core has 8 virtual processors (16-23)
The core has 8 virtual processors (24-31)
The core has 8 virtual processors (32-39)
The core has 8 virtual processors (40-47)
The core has 8 virtual processors (48-55)
The core has 8 virtual processors (56-63)
The core has 8 virtual processors (64-71)
The core has 8 virtual processors (72-79)
The core has 8 virtual processors (80-87)
The core has 8 virtual processors (88-95)
The core has 8 virtual processors (96-103)
The core has 8 virtual processors (104-111)
The core has 8 virtual processors (112-119)
The core has 8 virtual processors (120-127)
SPARC-T5 (chipid 0, clock 3600 MHz)
リスト1では、オラクル製のSPARC T5プロセッサがあり、そのCPUの1つが割当て済みであることが分かります。このCPUには16個のコアと128個の仮想プロセッサ(コアあたり8個)があるため、最大128個のソフトウェア?スレッドを同時に実行できます。
注:psrinfo -pコマンドを使用すれば、物理的なCPUの数を把握できます。
パフォーマンス分析を開始する前に、それぞれのOracle Solarisゾーンのワークロード特性を理解し、CPU、メモリ、ディスクI/O、ネットワークI/Oのうち、どの制約を受けるかを判断する必要があります。そのために、Oracle Solaris 11のzonestat、mpstat、fsstatの各コマンドを使用します。次に、これらのコマンドの出力を使用して、この環境内で実行中のワークロードについて分析します。
環境に負荷をかけるために実行する第1のHadoopベンチマークは、Pi Estimatorです。Pi Estimatorは、モンテカルロ法により円周率の値を推定するMapReduceプログラムです。
この例では、128個のマップを使用し、各マップでは10億のサンプルを計算します(サンプルの総数は1,280億になります)。
注:CPUあたり1つのマップを実行します。
大域ゾーンから次のコマンドを実行して、Pi Estimatorプログラムを開始します。
root@global_zone:~# zlogin -l hadoop name-node hadoop jar
/usr/local/hadoop/hadoop-examples-1.2.0.jar pi 128
コマンドの意味は次のとおりです。
zlogin -l hadoop name-node:このコマンドをユーザーhadoopとして、name-nodeゾーンに対して実行することを指定する
hadoop jar /usr/local/hadoop/hadoop-examples-1.2.0.jar pi:Hadoopの.jarファイルを指定する
128:マップ数を指定する
:サンプル数を指定する
オプション:上のコマンドは、zloginコマンドを使用し、大域ゾーンに対して実行します。一方、次のようにname-nodeゾーンから直接コマンドを実行することもできます。
hadoop@name_node:$ hadoop jar /usr/local/hadoop/hadoop-examples-1.2.0.jar pi 128
hadoop job -listコマンドを使用して、MapReduceジョブを一覧表示できます。
まず、別のターミナル?ウィンドウを開き、リスト2に示すコマンドを実行します。
root@global_zone:~# zlogin -l hadoop name-node hadoop job -list
Oracle Corporation
SunOS 5.11
December 2012
1 jobs currently running
SchedulingInfo
リスト2では、ジョブID(JobId)とその開始時刻(StartTime)を確認できます。
あるジョブの完全な説明(マップ/リデュース処理が完了した割合やすべてのジョブ?カウンタなど)については、次のコマンドを実行します。その際に、hadoop job -statusコマンドのパラメータとしてJobIdを指定します。
root@global_zone:~# zlogin -l hadoop name-node hadoop job -status job__0135
このパフォーマンス分析で使用する1つ目のコマンドは、zonestatコマンドです。このコマンドを使用すれば、環境で実行中のすべてのOracle Solarisゾーンを監視して、CPU、メモリ、ネットワークの使用状況に関するリアルタイム統計を表示できます。
zonestatコマンドを10秒間隔で実行します(リスト3を参照)。
root@global_zone:~# zonestat 10 10
Interval:1, Duration:0:00:10
Cpus/Online:128/12
PhysMem:256G
VirtMem:259G
---CPU----
--PhysMem-- --VirtMem-- --PhysNet--
USED %PART
USED %USED
USED %USED PBYTE %PUSE
[total] 118.10 92.2% 24.6G 9.62% 60.0G 23.0% 18.4E
0.00 0.00% % 40.5G 15.5%
data-node3
42.13 32.9% % % 18.4E
data-node1
41.49 32.4% % % 18.4E
data-node2
33.97 26.5% % % 18.4E
0.34 0.27%
283M 0.10%
420M 0.15%
0.15 0.11%
419M 0.15%
718M 0.26%
sec-name-node
0.00 0.00%
205M 0.07%
363M 0.13%
リスト3のzonestatの出力より、Pi EstimatorプログラムがCPUの制約を受けるアプリケーションであることが分かります(%PART 92.2.0%)。
このzonestatコマンドが出力している情報は次のとおりです。
Zone列:ゾーン名
[total]:システム全体で使用されているリソースの総量
[system]:カーネルによって使用されているか、特定のゾーンには関連付けられずに使用されているリソースの量
注:zonestatを非大域ゾーン内から実行した場合は、この値はシステムとその他のすべてのゾーンによって消費されているリソースの集計となります。
CPU:CPU情報
USED:使用されているCPUの数
%PART:ゾーンがバインドされているプロセッサ?セットの計算能力に対するCPU使用率(%)
注:システム全体のプロセッサ情報を確認するには、psrset -iコマンドを使用するか、/usr/dtrace/DTT/Binにあるcputypes.dというDTraceスクリプトを使用します。
PhysMem:物理メモリ情報
USED:使用済みメモリ
%USED:リソース総量に対する使用済みリソースの割合(%)
VirtMem:仮想メモリ情報
USED:使用済み仮想メモリ
%USED:システム内の仮想メモリ総量に対する使用済みリソースの割合(%)
PhysNet:ネットワーク情報
PBYTE:物理帯域幅を消費する送受信済みバイト数
%PUSH:利用可能な物理帯域幅の総量に対する送受信された総バイト数の割合(%)
zonestatコマンドは、特定の期間における使用状況の総計および最高値に関するレポートを出力できます。この情報は、ピーク時の使用状況を確認する場合に便利です。この情報は、現在のアクティビティと以前のアクティビティとの比較、および今後の拡張に向けたキャパシティ?プランニングで役立ちます。
たとえば、リスト4のコマンドは、10秒間隔で3分間サイレントに監視を行い、その後、使用状況の総計と最高値を示すレポートを生成します。
root@global_zone:~# zonestat -q -R total,high 10s 3m 3m
Report:Total Usage
Start:Wednesday, November 13, :04 AM IST
End:Wednesday, November 13, :04 AM IST
Intervals:18, Duration:0:03:00
Cpus/Online:128/12
PhysMem:256G
VirtMem:259G
---CPU----
--PhysMem-- --VirtMem-- --PhysNet--
USED %PART
USED %USED
USED %USED PBYTE %PUSE
79.9 61.7% 29.5G 11.5% 61.7G 23.7%
3.63 2.83% % 37.7G 14.5%
data-node3
25.9 19.6%
557M 0.21% % 18.4E
data-node2 24.81 19.3%
435M 0.16% % 18.4E
data-node1 24.61 19.2%
552M 0.21% % 18.4E
0.87 0.68% % %
908K 0.00%
0.06 0.04%
485M 0.18%
619M 0.23% 18.4E
sec-name-node
0.00 0.00%
260M 0.09%
291M 0.10%
Report:High Usage
Start:Wednesday, November 13, :04 AM IST
End:Wednesday, November 13, :04 AM IST
Intervals:18, Duration:0:03:00
Cpus/Online:128/12
PhysMem:256G
VirtMem:259G
---CPU----
--PhysMem-- --VirtMem-- --PhysNet--
USED %PART
USED %USED
USED %USED PBYTE %PUSE
[total] 111.17 86.8% 31.5G 12.3% 63.8G 24.5%
892K 0.00%
[system] 23.65 18.4% % 37.8G 14.5%
data-node3 25.85 20.2%
557M 0.21%
976M 0.36% 18.4E
data-node2 22.95 17.9%
435M 0.16%
534M 0.20% 18.4E
data-node1 22.22 17.3%
552M 0.21%
774M 0.29% 18.4E
2.87 2.24% % %
946K 0.00%
0.08 0.06%
485M 0.18%
619M 0.23% 18.4E
sec-name-node
0.00 0.00%
260M 0.09%
291M 0.10%
リスト4の出力から分かることは次のとおりです。
CPU使用率の平均は61.7%(SUMMARY、%PART 61.7%)
CPU使用率の最高値は86.8%(Report:High Usage、%PART 86.8%)
また、利用可能な各CPUに対してCPU使用率が均等に配分されているかを確認できます。リスト4より、使用されているCPU総数は111で、各DataNodeには22~26個のCPUが割り当てられていることが分かります。
また、zonestatコマンドは、長期間(数日、数週、数か月)のシステム使用状況の情報を収集する目的にも使用できます。たとえば、次のコマンドは、10秒間隔で24時間サイレントに監視を行い、1時間ごとの使用状況の総計と最高値のレポートを生成します。
root@global_zone:~# zonestat -q -R total,high 10s 24h 1h
利用可能な各CPUに対してCPU使用率が均等に配分されているかを示す便利なコマンドとして、ほかにmpstatコマンドがあります。
リスト5は、Oracle Solaris mpstat(1M)コマンドの出力です。1行につき1つの仮想CPUが示されています。
root@global_zone:~# mpstat 1
CPU minf mjf xcal
csw icsw migr smtx
リスト5に示すように、mpstatコマンドは次の情報をレポートします。
CPU列:論理CPU ID
minf列:マイナー?フォルトの回数
mjf列:メジャー?フォルトの回数
xcal列:プロセッサ間のクロスコール数
intr列:割込み回数
ithr列:スレッドとして使用された割込み回数(低レベルIPL)
csw列:コンテキスト?スイッチの回数(総数)
icsw列:強制的なコンテキスト?スイッチの回数
migr列:別のプロセッサへのスレッド移送回数
smtx列:mutexロックでのスピン回数
srw列:読取り/書込みロックでのスピン回数
syscl列:システム?コール数
usr列:CPUによって使用されたユーザー時間の割合(%)
sys列:CPUによって使用されたシステム時間(カーネル)の割合(%)
wt列:I/O待機時間(廃止予定のため、常にゼロ)
idl列:アイドル時間の割合(%)
各CPUのビジー状態の程度をidlフィールドで確認できます。このフィールドは、アイドル時間の割合(%)を示します。また、ツールを使用すれば、mpstatコマンドの出力を視覚化できます(図3を参照)。
図3:dim_statツールの出力
多くのCPUが搭載されたシステムでは、mpstatの出力に非常に時間がかかる場合があります。しかし、コアごとにCPU使用状況を監視することもできます(リスト6を参照)。
root@global_zone:~#
mpstat -A core 10
COR minf mjf xcal
csw icsw migr smtx
wt idl sze
リスト6では、mpstatは各コアのCPUパフォーマンス統計を出力しており、SPARC T5 CPUのコア総数は16となっています。後ほど、各コアの監視方法と、浮動小数点パイプラインおよび整数パイプラインの観測方法について説明します。また、mpstatではソケットごと、あるいはプロセッサ?セットごとのパフォーマンス統計を出力でき、各コアのCPU数を出力できます(sze列)。その他の例についてはmpstat(1M)を参照してください。
このパフォーマンス分析で次に使用するコマンドはfsstatコマンドです。このコマンドはディスクI/Oの監視に便利です。このコマンドを使用して、ディスクごと、あるいはOracle SolarisゾーンごとのディスクI/Oアクティビティを監視できます。ここでは、このコマンドを使用して、Pi EstimatorがCPUの制約を受けるのに加えてディスクI/Oの制約も受けるかどうかを確認します。
たとえば、リスト7に示すコマンドを使用すれば、すべてのZFSファイル?システムへの書込みを10秒間隔で監視できます。
root@global_zone:~# fsstat -Z zfs 10 10
attr lookup rddir
write write
file remov
0 6.01K 5.87M
0 zfs:global
0 1.41K 1.94M
7 1.42K zfs:data-node1
0 2.75K 3.95M
22 4.06K zfs:data-node2
0 2.98K 4.22M
21 4.34K zfs:data-node3
0 zfs:name-node
0 zfs:sec-name-node
デフォルトのレポートにはファイル?システムの一般的なアクティビティが示されます。リスト7に示すように、この出力では、類似した操作が次の一般的なカテゴリにまとめられます。
new file列:ファイル?システム?オブジェクト(ファイル、ディレクトリ、シンボリック?リンクなど)の作成操作の回数
name remov列:名前の削除操作の回数
name chng列:名前の変更操作の回数
attr get列:オブジェクト属性の取得操作の回数
attr set列:オブジェクト属性の変更操作の回数
lookup ops列:オブジェクトのルックアップ操作の回数
rddir ops列:ディレクトリ読取り操作の回数
read ops列:データ読取り操作の回数
read bytes列:データ読取り操作による送信済みバイト数
write ops列:データ書込み操作の回数
リスト7のfsstatの出力より、読取り操作と書込み操作の回数を確認すると、ディスク使用率が非常に低いことが分かります。
zonestat、mpstat、fsstatの出力に従えば、Pi EstimatorプログラムはCPUの制約を受けるアプリケーションであるという結論に達します(この2つ目の例のディスクI/Oワークロードの把握方法については後ほど詳しく説明します)。
それでは、CPUパフォーマンス分析を続けましょう。次に検討する課題は、CPUアイドル時間が存在するかどうかです。
注:Pi Estimatorプログラムの実行が終了している場合は、再実行する必要があります。このプログラムの終了時には、次のようなジョブのサマリー情報が出力されます。
Job Finished in 309.819 seconds
Estimated value of Pi is 3.
リスト8に示すように、vmstatコマンドを使用してCPUアイドル時間が存在するかどうかを確認できます。
root@global_zone:~# vmstat 1
mf pi po fr de sr s3 s4 s5 s6
cs us sy id
mf pi po fr de sr s3 s4 s5 s6
cs us sy id
0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 117 0 0 0
0 0 0 0 0 78 71
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 100 0 0 0
957 0 0 0 0 0 0
653 0 0 0 0 0
0 0 0 137 0 0 0
リスト8では、id列にCPUアイドル時間が示されます。id列の値が0の場合、システムのCPUは100%のビジー状態です。
次の課題は、利用可能なCPUを待機しているスレッドがあるかどうかです。これは実行キュー待機時間と呼ばれるもので、r列で容易に追跡できます。この列には、実行キュー内のカーネル?スレッド数が出力されます。実行キュー待機時間は、prstat -Lmコマンドを使用してLAT列の値を調べることで追跡することもできます。
また、prstatコマンドを使用すれば、CPUサイクルがユーザー?モードとシステム(カーネル)モードのどちらで消費されているかを確認できます。
root@global_zone:~# prstat -ZmL
Total:310 processes, 8269 lwps, load averages:47.63, 48.79, 36.98
PID USERNAME USR SYS TRP TFL DFL LCK SLP LAT VCX ICX SCL SIG PROCESS/LWPID
19338 hadoop
100 0.0 0.0 0.0 0.0 0.0 0.0 0.3
19329 hadoop
100 0.0 0.0 0.0 0.0 0.0 0.0 0.4
19519 hadoop
15 0.1 0.0 0.2 0.0 0.0 0.8
56 153 29K
19503 hadoop
11 0.1 0.0 0.3 0.1 0.0 1.0
52 168 23K
19536 hadoop
18 0.1 0.0 0.4 0.0 0.0 1.1
83 268 32K
19495 hadoop
89 9.6 0.1 0.0 0.3 0.7 0.0 0.7
51 163 21K
19523 hadoop
16 0.1 0.0 0.6 0.7 0.0 0.5
87 214 31K
19259 hadoop
97 0.0 0.0 0.0 0.0 2.9 0.0 0.1
19555 hadoop
24 0.2 0.0 1.9 0.0 0.1 0.9 207 207 35K
19263 hadoop
97 0.0 0.0 0.0 0.0 2.8 0.0 0.3
19258 hadoop
97 0.0 0.0 0.0 0.0 2.8 0.0 0.3
19285 hadoop
97 0.0 0.0 0.0 0.0 2.8 0.0 0.4
19331 hadoop
97 0.0 0.0 0.0 0.0 3.0 0.0 0.2
19272 hadoop
97 0.0 0.0 0.0 0.0 2.9 0.0 0.3
19313 hadoop
97 0.0 0.0 0.0 0.0 3.1 0.0 0.1
RSS MEMORY
31% data-node1
39% data-node2
28% data-node3
0:45:37 0.1% global
0:04:32 1.9% name-node
Total:295 processes, 7398 lwps, load averages:50.67, 49.39, 37.25
リスト9に示すように、prstatの出力には次の列が表示されます。
USR列:プロセスがユーザー?モードで使用された時間の割合(%)
SYS列:プロセスがシステム?モードで使用された時間の割合(%)
TRP列:プロセスがシステム?トラップの処理で使用された時間の割合(%)
TFL列:プロセスがテキスト?ページ?フォルトの処理で使用された時間の割合(%)
DFL列:プロセスがデータ?ページ?フォルトの処理で使用された時間の割合(%)
LCK列:プロセスがユーザー?ロックの待機で使用した時間の割合(%)
SLP列:プロセスが休止中であった時間の割合(%)
LAT列:プロセスがCPUの待機で使用した時間の割合(%)
VCX列:自発的なコンテキスト?スイッチの回数
ICX列:強制的なコンテキスト?スイッチの回数
SCL列:システム?コール数
SIG列:受信済みシグナル数
リスト9のprstatの出力によると、システムのCPUサイクルはユーザー?モード(USR)で消費されています。その他のprstatの例については、を参照してください。
仮想化認識型の便利なコマンドとして、psもあります。-Zオプションを使用すると、ZONE列ヘッダーが加わり、その下にプロセスが関連付けられているゾーンの名前が出力されます。
注:このコマンドは、自身が非大域ゾーン内部で実行中であることを認識します。そのため、このコマンドを非大域ゾーンから実行した場合に他のユーザー?プロセスを参照することはできません。
ps -efZコマンドを使用すると、現在実行中のすべてのプロセス(e)と、関連付けられたゾーン名(Z)が完全な形式で(f)表示されます。たとえば、現在実行中のすべてのHadoopプロセスを出力するには、リスト10のコマンドを使用します。
root@global_zone:~# ps -efZ | grep hadoop
0 07:38:19 ?
/usr/jdk/instances/jdk1.6.0/jre/bin/java -Djava.library.path=/usr/local/hadoop-
0 07:38:19 ?
/usr/jdk/instances/jdk1.6.0/jre/bin/java -Djava.library.path=/usr/local/hadoop-
hadoop 11621
0 07:20:12 ?
0:59 /usr/java/bin/java
-Dproc_jobtracker -Xmx1000m -Dcom.sun.management.jmxremote -
hadoop 11263
0 07:20:07 ?
0:27 /usr/java/bin/java
-Dproc_namenode -Xmx1000m -Dcom.sun.management.jmxremote -Dc
0 07:38:18 ?
/usr/jdk/instances/jdk1.6.0/jre/bin/java -Djava.library.path=/usr/local/hadoop-
hadoop 11730
1 07:20:14 ?
2:58 /usr/java/bin/java
-Dproc_tasktracker -Xmx1000m -Dhadoop.log.dir=/var/log/hadoo
hadoop 11458
0 07:20:09 ?
0:18 /usr/java/bin/java
-Dproc_datanode -Xmx1000m -server -Dcom.sun.management.jmxre
1 07:38:18 ?
/usr/jdk/instances/jdk1.6.0/jre/bin/java -Djava.library.path=/usr/local/hadoop-
0 7:38:18 ?
/usr/jdk/instances/jdk1.6.0/jre/bin/java -Djava.library.path=/usr/local/hadoop-
0 7:38:15 ?
/usr/jdk/instances/jdk1.6.0/jre/bin/java -Djava.library.path=/usr/local/hadoop-
0 7:38:18 ?
/usr/jdk/instances/jdk1.6.0/jre/bin/java -Djava.library.path=/usr/local/hadoop-
注:ZONE列の幅には8文字の上限があります。
1つのSPARC T5 CPUには16個のコアと128個のスレッドがあり、各コアには2つの整数パイプラインと1つの浮動小数点パイプラインがあります。SPARC T5 CPUアーキテクチャについて詳しくは、このを参照してください。
注:pginfo -p -Tコマンドを使用すれば、CPUトポロジを確認できます。詳しくは、を参照してください。
パイプラインの負荷状況を把握する必要がある場合に、この詳細レベルの情報を表示できるツールがpgstatです。
たとえば、リスト11のコマンドを使用して、pgstatレポートを3分間実行します。
root@global_zone:~# pgstat -A 60 3
SUMMARY:UTILIZATION OVER 180 SECONDS
------HARDWARE------ ------SOFTWARE------
RELATIONSHIP
79.1% 100.0% 0-127
Data_Pipe_to_memory
79.1% 100.0% 0-127
CPU_PM_Active_Power_Domain
78.4% 100.0% 0-15
Floating_Point_Unit
78.1% 100.0% 0-7
Integer_Pipeline
78.1% 100.0% 0-7
Floating_Point_Unit
78.8% 100.0% 8-15
Integer_Pipeline
78.8% 100.0% 8-15
CPU_PM_Active_Power_Domain
78.3% 100.0% 16-31
Floating_Point_Unit
82.0% 100.0% 16-23
Integer_Pipeline
82.0% 100.0% 16-23
Floating_Point_Unit
74.5% 100.0% 24-31
Integer_Pipeline
74.5% 100.0% 24-31
CPU_PM_Active_Power_Domain
78.8% 100.0% 32-47
Floating_Point_Unit
79.7% 100.0% 32-39
Integer_Pipeline
79.7% 100.0% 32-39
Floating_Point_Unit
77.7% 100.0% 40-47
Integer_Pipeline
77.7% 100.0% 40-47
CPU_PM_Active_Power_Domain
81.0% 100.0% 48-63
Floating_Point_Unit
84.7% 100.0% 48-55
Integer_Pipeline
84.7% 100.0% 48-55
Floating_Point_Unit
77.2% 100.0% 56-63
Integer_Pipeline
77.2% 100.0% 56-63
CPU_PM_Active_Power_Domain
78.9% 100.0% 64-79
Floating_Point_Unit
79.8% 100.0% 64-71
Integer_Pipeline
79.8% 100.0% 64-71
Floating_Point_Unit
77.9% 100.0% 72-79
Integer_Pipeline
77.9% 100.0% 72-79
リスト11では、各パイプラインがどの程度のビジー状態であったかを確認でき(Integer_Pipeline、Floating_Point_Unit)、このシステムが最大で90%を超える整数パイプラインの使用率に達していることも分かります。さらに、メモリ帯域幅(Data_Pipe_to_memory)も確認できます。
次に、この負荷の原因となっているアプリケーションの観測を行います。たとえば、CPUがビジー状態になる原因となっているコード?パスはどれでしょうか。あるいは、このシステム負荷の原因となっているのは各ゾーンのどのプロセスでしょうか。
次の例では、あるOracle Solarisゾーンにドリルダウンして、この負荷の原因となっているアプリケーションまたはプロセスを把握します。
まずはdata-node1ゾーンにログインします。
root@global_zone:~# zlogin data-node1
注:data-node1ゾーンにログインできたかどうかは、zonenameコマンドを使用して確認できます。このコマンドは、現在のゾーン名を出力します。
root@data-node1:~# zonename
data-node1
リスト12に示すように、ゾーン内部でprstatコマンドを使用して、システムの負荷の原因となっているプロセスを表示できます。
root@data-node1:~# prstat -mLc
PID USERNAME USR SYS TRP TFL DFL LCK SLP LAT VCX ICX SCL SIG PROCESS/LWPID
22866 root
74 1.6 0.0 0.0 0.0 0.0 0.0 122 122 85K
0 prstat/1
22715 hadoop
80 3.3 0.1 0.0 0.0 4.0 0.1
22704 hadoop
80 3.3 0.2 0.0 0.0 6.2 0.4
22721 hadoop
79 3.4 0.2 0.0 0.0 3.5 0.3
22740 hadoop
78 3.5 0.2 0.0 0.0 3.2 0.1
22710 hadoop
78 3.2 0.2 0.0 0.0 5.9 0.1
22691 hadoop
78 3.0 0.2 0.0 0.0 4.6 0.2
22734 hadoop
77 3.5 0.2 0.0 0.0 3.5 0.2
22746 hadoop
77 3.6 0.2 0.0 0.0 4.1 0.2
22752 hadoop
76 3.6 0.2 0.0 0.0 5.6 0.2
22767 hadoop
76 3.9 0.1 0.0 0.0 3.4 0.4
22698 hadoop
76 3.3 0.2 0.0 0.0 4.2 0.0
22792 hadoop
75 4.3 0.1 0.0 0.0 4.3 0.3
22760 hadoop
76 3.7 0.1 0.0 0.0 6.0 0.9
22685 hadoop
76 2.9 0.1 0.0 0.0 4.5 0.0
Total:58 processes, 2011 lwps, load averages:58.00, 55.80, 41.70
リスト12では、hadoopプロセスがシステムの負荷の原因となっています。
注:リスト12では、ローカル?ゾーン内部からprstatコマンドを実行して、ゾーンごとのパフォーマンス統計を確認できることが分かりました。一方、このコマンドを大域ゾーンから実行すれば、システム?ビュー全体を把握できます。これは仮想化認識型コマンドの一例です。仮想化認識型コマンドは自身が非大域ゾーンの内部で実行されていることを認識するため、その他のユーザー?プロセスを参照することはできません。
仮想化環境でのディスクI/Oアクティビティの監視
この2つ目の例では、Hadoopの組込みベンチマークを使用してディスクI/Oアクティビティの観測と監視を行います。表2に、この記事のディスクI/Oアクティビティの監視に使用するコマンドの概要を示します。
表2:コマンドの概要
Oracle SolarisゾーンごとのディスクI/Oワークロードを表示する
zpool iostat
指定したプールのI/O統計を表示する
ディスクI/O統計をレポートする
ゾーンごとのプロセス別の上位ディスクI/Oイベントを表示する
プロセス別の上位の読取り/書込みバイト数を表示する
すべてのディスクに関するI/Oアクセス?パターンの詳細を表示する
ZFSおよびディスクのレイアウトを図4に示します。
図4:ディスクのレイアウト
まずは、システム内のハード?ディスク数を出力します。
root@global_zone:~# format & /dev/null
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c0tD013B3d0 &ATA-INTEL SSDSA2BZ30-0362 cyl 35769 alt 2 hd 128 sec 128&
/scsi_vhci/disk@gd013b3
/dev/chassis/SPARC_T5-2.AK//SYS/SASBP/HDD0/disk
1. c0t5000CCA &HITACHI-H109060SESUN600G-A31A-558.91GB&
/scsi_vhci/disk@g5000cca
/dev/chassis/SPARC_T5-2.AK//SYS/SASBP/HDD1/disk
2. c0t5000CCAd0 &HITACHI-H109060SESUN600G-A31A-558.91GB&
/scsi_vhci/disk@g5000cca
/dev/chassis/SPARC_T5-2.AK//SYS/SASBP/HDD2/disk
3. c0t5000CCA016295ABCd0 &HITACHI-H109060SESUN600G-A31A-558.91GB&
/scsi_vhci/disk@g5000cca016295abc
/dev/chassis/SPARC_T5-2.AK//SYS/SASBP/HDD3/disk
4. c0t5000CCAd0 &HITACHI-H109060SESUN600G-A31A cyl 64986 alt 2 hd 27 sec 668&
/scsi_vhci/disk@g5000cca
/dev/chassis/SPARC_T5-2.AK//SYS/SASBP/HDD4/disk
5. c0t5000CCACd0 &HITACHI-H109060SESUN600G-A31A cyl 64986 alt 2 hd 27 sec 668&
/scsi_vhci/disk@g5000ccac
/dev/chassis/SPARC_T5-2.AK//SYS/SASBP/HDD5/disk
Specify disk (enter its number):
ディスクI/Oパフォーマンス分析では、次のような課題に取り組みます。
I/Oのターゲットとなっているデバイスはどれか。
読込み/書込みの内訳はどうなっているか。また、ディスクのI/Oアクセス?パターンはどうなっているか。たとえば、ランダムな性質のイベントと順次的な性質のイベントの割合はそれぞれどの程度か。
デバイス(ハード?ディスク)ごとの、ディスクI/Oの処理速度はどの程度か。
ディスクがビジー状態になる原因となっているコード?パス(アプリケーション)はどれか。
Hadoopには、MapReduceシステム全体のベンチマークを測定できる複数のベンチマークが付属しています。MapReduceシステムは、現実的なワークロードを発生させる目的で使用できます。
このベンチマークを使用して、次の3つの主なタスクを実行します。
ランダムなデータの生成
そのランダムなデータに対するソートの実行
結果(データがソートされていること)の検証
まずは、RandomWriterを使用してランダムなデータを生成します。このツールは、ノードあたり10個のマップを使用してMapReduceジョブを実行します。各マップはキーと異なるサイズの値で構成される約10GBのランダムなバイナリ?データ(合計100GB)を生成します。表3に、構成用の変数を示します。
注:レプリケーション係数が3であるため、書き込まれる実際のデータ量は3倍になります。
表3:構成用の変数
デフォルト値
test.randomwriter.maps_per_host
ホストあたりのマップ数
test.randomwrite.bytes_per_map
マップあたりの書込み済みバイト数
test.randomwrite.min_key
キーの最小サイズ(バイト単位)
test.randomwrite.max_key
キーの最大サイズ(バイト単位)
test.randomwrite.min_value
test.randomwrite.max_value
注:これらの値は、Hadoop構成ファイルのプロパティを設定することで自由に変更できます。詳しくは、を参照してください。
まず、コマンドの可読性を高めるためにHADOOP_INSTALL環境変数を編集します。
root@global_zone:~# export HADOOP_INSTALL=/usr/local/hadoop
オプション:.profileファイル内に次の環境変数を追加して、構成を永続化することもできます。
export HADOOP_INSTALL=/usr/local/hadoop
ベンチマークを実行できるように、ベンチマーク?ファイルのアクセス権を変更します。
root@global_zone:~# chmod +x /usr/local/hadoop/hadoop-examples-1.2.0.jar
次に、リスト13のコマンドを使用してランダムなデータを生成します。
root@global_zone:~# zlogin -l hadoop name-node hadoop jar
$HADOOP_INSTALL/hadoop-examples-1.2.0.jar randomwriter random-data
コマンドの意味は次のとおりです。
zlogin -l hadoop name-node:このコマンドをユーザーhadoopとして、name-nodeゾーンに対して実行することを指定する
hadoop jar /usr/local/hadoop/hadoop-examples-1.2.0.jar randomwriter:Hadoopの.jarファイルを指定する
random-data:出力ディレクトリを指定する
ランダムなデータは、デフォルトで/user/hadoop/random-dataディレクトリ内に書き込まれます。
次のコマンドを使用して、生成されたファイルを確認できます。
root@global_zone:~# zlogin -l hadoop data-node1 hadoop dfs -ls /user/hadoop/random-data
Oracle Corporation
SunOS 5.11
December 2012
Found 32 items
-rw-r--r--
3 hadoop supergroup
08:26 /user/hadoop/random-data/_SUCCESS
drwxr-xr-x
- hadoop supergroup
08:22 /user/hadoop/random-data/_logs
-rw-r--r--
3 hadoop supergroup
08:22 /user/hadoop/random-data/part-00000
-rw-r--r--
3 hadoop supergroup
08:25 /user/hadoop/random-data/part-00001
-rw-r--r--
3 hadoop supergroup
08:23 /user/hadoop/random-data/part-00002
-rw-r--r--
3 hadoop supergroup
08:23 /user/hadoop/random-data/part-00003
-rw-r--r--
3 hadoop supergroup
08:25 /user/hadoop/random-data/part-00004
-rw-r--r--
3 hadoop supergroup
08:23 /user/hadoop/random-data/part-00005
-rw-r--r--
3 hadoop supergroup
08:25 /user/hadoop/random-data/part-00006
-rw-r--r--
3 hadoop supergroup
08:23 /user/hadoop/random-data/part-00007
-rw-r--r--
3 hadoop supergroup
08:23 /user/hadoop/random-data/part-00008
-rw-r--r--
3 hadoop supergroup
ディスクI/Oパフォーマンスの観測で使用する1つ目のコマンドはfsstatコマンドです。このコマンドを使用すれば、Oracle SolarisゾーンあたりのディスクI/Oワークロードを分析し、各ファイル?システムのファイル?システム統計を確認できます。
リスト14に、tmpfsとzfsの各ファイル?システムについて、システム上の各ゾーンに関するゾーンごとの統計とシステム全体の集計を示します。
root@global_zone:~# fsstat -A -Z tmpfs zfs 10 10
attr lookup rddir
write write
file remov
127 15.9K tmpfs
0 tmpfs:global
20 2.50K tmpfs:data-node2
52 6.50K tmpfs:data-node3
0 tmpfs:name-node
0 tmpfs:sec-name-node
55 6.88K tmpfs:data-node1
175K 5.45G zfs
0 zfs:global
0 58.3K 1.82G zfs:data-node2
12 1.28K 58.3K 1.82G zfs:data-node3
106 19.2K zfs:name-node
0 zfs:sec-name-node
13 1.29K 58.3K 1.81G zfs:data-node1
リスト14のコマンド出力より、tmpfsとzfsの各ファイル?システムに書き込まれたデータ量(read bytesとwrite bytes)が分かります。
次に、測定の対象を特定のOracle Solarisゾーンに絞り込みます。
次の例では、data-node1、data-node2、data-node3の各ゾーンに関するゾーンごとの統計と、tmpfsとzfsの各ファイル?システムに関するシステム全体の集計を示します。
root@global_zone:~# fsstat -A -Z -z data-node1 -z data-node2 -z data-node3
tmpfs zfs 10 10
attr lookup rddir
write write
file remov
342K tmpfs
20 2.50K tmpfs:data-node2
170K tmpfs:data-node3
170K tmpfs:data-node1
40 20.9K 29.8M
127K 3.96G zfs
0 43.0K 1.34G zfs:data-node2
20 6.63K 10.9M 43.1K 1.34G zfs:data-node3
20 7.21K 11.9M 41.0K 1.28G zfs:data-node1
MapReduceベンチマークの次の手順は、前の手順で生成したランダムなデータをソートするソート?プログラムを実行することです。リスト15のコマンドを実行します。
root@global_zone:~# zlogin -l hadoop name-node hadoop jar
$HADOOP_INSTALL/hadoop-examples-1.2.0.jar sort random-data sorted-data
Oracle Corporation
SunOS 5.11
December 2012
Running on 3 nodes to sort from hdfs://name-node/user/hadoop/random-data into
hdfs://name-node/user/hadoop/sorted-data with 67 reduces.
Job started:Mon Oct 07 08:34:16 IST 2013
13/10/07 08:34:16 INFO mapred.FileInputFormat:Total input paths to process :30
13/10/07 08:34:17 INFO mapred.JobClient:Running job: job__0015
13/10/07 08:34:18 INFO mapred.JobClient:map 0% reduce 0%
コマンドの意味は次のとおりです。
zlogin -l hadoop name-node:このコマンドをユーザーhadoopとして、name-nodeゾーンに対して実行することを指定する
hadoop jar /usr/local/hadoop/hadoop-examples-1.2.0.jar sort:Hadoopの.jarファイルを指定する
random-data:入力ディレクトリを指定する
sorted-data:出力ディレクトリを指定する
次に、ドリルダウンして個々のディスクの読取り/書込み操作を観測します。
まず、リスト16のコマンドを使用してZFSプール名を取得します。
root@global_zone:~# zpool list
data-node1-pool
data-node2-pool
data-node3-pool
リスト16では、表4に示す4つのZFS zpoolがあります。
表4:zpoolの概要
マウント?ポイント
sec-name-node
/zones/name-node
/zones/sec-name-node
data-node1-pool
data-node1
/zones/data-node1
data-node2-pool
data-node2
/zones/data-node2
data-node3-pool
data-node3
/zones/data-node3
注:Hadoopのベスト?プラクティスは、DataNodeごとに異なるハード?ディスクを使用することです。そのため、I/O分散状況を改善するために、に示すように各DataNodeゾーンに独自のハード?ディスクを割り当てます。
次のコマンドを使用すれば、すべてのZFS zpoolを同時に監視できます。
root@global_zone:~# zpool iostat -v 10
operations
-------------------------
data-node1-pool
c0t5000CCA
-------------------------
data-node2-pool
c0t5000CCAd0
-------------------------
data-node3-pool
c0t5000CCA016295ABCd0
-------------------------
c0tD013B3d0s0
-------------------------
また、ドリルダウンも可能なため、data-node1ゾーンに関連付けられたディスクを監視してみましょう。
ZFSプール名をパラメータとして使用して、個々のディスクの読取り/書込み操作を観測できます(リスト17を参照)。
root@global_zone:~# zpool iostat -v data-node1-pool 10
operations
-----------------------
data-node1-pool
c0t5000CCA
-----------------------
operations
-----------------------
data-node1-pool
c0t5000CCA
-----------------------
operations
-----------------------
data-node1-pool
c0t5000CCA
-----------------------
operations
-----------------------
data-node1-pool
c0t5000CCA
-----------------------
リスト17では、c0t5000CCAディスク(data-node1-pool zpoolに関連付けられたディスク)の読取り/書込みデータ量を確認できます。そのためには、bandwidth readとbandwidth writeに示されている値を参照します。
また、iostatコマンドを使用して、デバイスごとのディスクI/O操作の処理速度を確認できます(リスト18を参照)。
root@global_zone:~# iostat -xnz 5 10
extended device statistics
kw/s wait actv wsvc_t asvc_t
2 c0tD013B3d0
2 c0t5000CCA
2 c0t5000CCAd0
2 c0t5000CCA016295ABCd0
extended device statistics
kw/s wait actv wsvc_t asvc_t
0 c0tD013B3d0
15.6 13346.7
12 c0t5000CCA
1 c0t5000CCA016295ABCd0
extended device statistics
kw/s wait actv wsvc_t asvc_t
0 c0tD013B3d0
0 c0t5000CCA
32 c0t5000CCA016295ABCd0
extended device statistics
kw/s wait actv wsvc_t asvc_t
0 c0tD013B3d0
1 c0t5000CCA
0 c0t5000CCA016295ABCd0
リスト18では、複数のディスクが1秒あたりの読取り(r/sec)において中程度の速度を維持し、スループットに13346KB/秒から40257KB/秒までの幅があり(kr/sec)、待機時間は最大で約22ミリ秒です(asvc_t)。
オプション:-Mオプションを使用すれば、KB/秒ではなくMB/秒単位でデータ?スループットを表示できます。
注:非大域ゾーン内部で実行した場合のiostatは、システム内のすべてのディスクに関するディスクI/O統計を出力します。ゾーンがアイドル状態なのにディスク?アクティビティが確認できることは不可解に思われるかもしれません。iostatコマンドは、自身が非大域ゾーンの内部で実行されているかどうかが分からないという意味で、仮想化認識型ではありません。
他の便利なツールとして、iotopというDTraceスクリプトがあります。このツールは、Oracle Solarisゾーンごとにプロセス別の上位のディスクI/Oイベントを表示します(リスト19を参照)。
root@global_zone:~# /usr/dtrace/DTT/iotop -Z 10 10
Tracing...Please wait.
7 08:40:19,
load:24.38,
0 zpool-data-node3 sd6
0 zpool-rpool
0 zpool-data-node1 sd4
リスト19では、ゾーンID(ZONE)、プロセスID(PID)、操作のタイプ(読取りまたは書込み、D)、操作の総サイズ(BYTES)を確認できます。
注:ゾーンIDを取得するために、zoneadm list -vコマンドを使用できます。
読取り/書込み回数については、アプリケーション?レベルで測定できます(リスト20を参照)。これは、システム?コールへの読取り/書込み回数と一致します。
root@global_zone:~# /usr/dtrace/DTT/rwtop -Z 10 10
Tracing...Please wait.
7 8:41:41,
load:21.88,
app_r:219241 KB,
app_w:306995 KB
リスト20では、rwtopコマンドにより、ディスクI/Oの観点からもっともビジー状態のプロセスがソートされています。また、このコマンドはゾーン名(ZONE)、プロセス名(CMD)、読取り操作か書込み操作か(D)、読取り済みまたは書込み済みバイト数(BYTES)を出力します。
次に、DTraceのiopatternスクリプトを使用してディスクI/Oパターンを分析し、ディスクI/Oパターンがランダムか順次的かを把握できます(リスト21を参照)。
root@global_zone:~#
/usr/dtrace/DTT/iopattern
512 938 184306
512 293 114275
512 296 121954
512 734 124694
512 375 161139
512 086 241105
512 908 320740
512 048 175352
512 290 125355
リスト21の出力には次の項目が含まれています。
%RAN列:ランダムな性質のイベントの割合(%)
%SEQ列:順次的な性質のイベントの割合(%)
COUNT列:I/Oイベント数
MIN列:I/Oイベントの最小サイズ
MAX列:I/Oイベントの最大サイズ
AVG列:I/Oイベントの平均サイズ
KR列:サンプル実行中の読取り済みキロバイト数の合計
KW列:サンプル実行中の書込み済みキロバイト数の合計
このスクリプトの出力より、I/Oワークロードは主にランダム読取りであることが分かります(%RAN、KR)。
注:大部分のI/Oワークロードがランダムな場合は、を利用することでI/Oパフォーマンスを改善できます。
仮想化環境でのメモリ使用状況の監視
次の例では、メモリ?サブシステムを監視します。表5に、この記事のメモリ使用状況の監視に使用するコマンドの概要を示します。
表5:コマンドの概要
利用可能な空きメモリをレポートする
アクティブなプロセスの統計をレポートする
アクティブなゾーンの統計をレポートする
ゾーンごとのvmstatスタイルの情報を表示する
まず、システムに搭載されている物理メモリ容量を出力します。
root@global_zone:~# prtconf -v | grep Mem
Memory size:262144 Megabytes
このシステムには256GBのメモリが搭載されています。
次に、システム?メモリの現在の割当て方法に関する詳細情報を取得します(リスト22を参照)。
root@global_zone:~# echo ::memstat | mdb -k
Page Summary
------------
----------------
----------------
ZFS File Data
Exec and libs
Page cache
Free (cachelist)
Free (freelist)
リスト22に示されるカテゴリの意味は次のとおりです。
Kernel:ページング不可能なカーネル割当てに使用される総メモリ量。カーネルが使用しているメモリ量と同一
ZFS File Data:ZFS適応型置換キャッシュ(ARC)によって使用される総メモリ量
Anon:匿名メモリ量。ユーザー?プロセスのヒープ、スタック、Copy-On-Writeページ、共有メモリ?マッピングなどが含まれる
Exec and libs:ユーザーのバイナリおよび共有ライブラリに使用される総メモリ量
Page cache:マッピングされていないページ?キャッシュ量、つまりキャッシュ?リストにないページ?キャッシュの量。/tmp内のファイルもこのカテゴリに含まれる
Free (cachelist):空きリスト上のページ?キャッシュ量。空きリストにはマッピングされていないファイル?ページが含まれ、通常はファイル?システム?キャッシュの大部分が当てはまる
Free (freelist):実際に空いているメモリ量。ファイルやプロセスに関連付けられていないメモリ
システムで現在利用可能な空きメモリ量を把握するために、リスト23に示すようにvmstatコマンドを使用して、1行目以外の行のfree列(単位はKB)の値を確認できます(vmstatの1行目はブート時からのサマリー情報です)。
root@global_zone:~# vmstat 10
pi po fr de sr s3 s4 s5 s6
cs us sy id
15 19 19 18
0 27 15 18
19 15 22 16
0 20 29 20
リスト23より、システムには約138GBの空きメモリがあることが分かります。これは、ファイルやプロセスに関連付けられていないメモリです。
システムの物理メモリが不足しているかどうかを判断するには、リスト23に示したvmstat出力のsr列を確認します。このsrはscan rate(スキャン率)の意味です。Oracle Solarisでは、メモリが不足している状況で、最近アクセスされていないメモリ?ページをスキャンして、空きリストに移動する処理を開始します。Oracle Solarisでは、srの値がゼロ以外の場合、物理メモリが不足していることを表しています。
vmstat -pを使用して、ページイン、ページアウト、ページ解放の各アクティビティを観測することもできます(リスト24を参照)。
root@global_zone:~# vmstat -p 10
executable
filesystem
リスト24のvmstat出力にあるとおり、メモリには次の3つのタイプがあります。
実行可能メモリ(epi、epo、epf):プログラムおよびライブラリ?テキストのために使用されるメモリ?ページ
匿名(api、apo、apf):ファイルに関連付けられていないメモリ?ページ。匿名メモリはプロセスのヒープやスタックなどに使用される。たとえば、プロセス?ページのスワップインまたはスワップアウトの実行中は、api列とapo列の数値が大きくなる
ファイル?システム(fpi、fpo、fpf):ファイルI/Oのために使用されるメモリ?ページ
Oracle Solarisのアプリケーション?メモリ管理について詳しくは、&&を参照してください。
システムや仮想マシン(非大域ゾーン)のプロセス統計を参照するために使用できる3つ目のコマンドは、prstatコマンドです(リスト25を参照)。
root@global_zone:~# prstat -ZmLc
PID USERNAME
CPU PROCESS/NLWP
20025 hadoop
253M cpu60
12% java/68
20739 hadoop
241M sleep
10% java/68
17206 hadoop
237M sleep
10% java/68
17782 hadoop
229M sleep
0:00:57 7.4% java/67
17356 hadoop
241M sleep
0:01:04 7.0% java/68
11621 hadoop
126M sleep
0:02:32 5.9% java/90
20924 hadoop
237M sleep
0:00:49 5.3% java/68
17134 hadoop
237M sleep
0:01:04 5.1% java/67
17498 hadoop
257M sleep
0:00:57 4.8% java/68
17298 hadoop
253M sleep
0:01:05 4.6% java/68
17940 hadoop
249M sleep
0:00:52 4.3% java/68
18474 hadoop
237M sleep
0:00:49 3.9% java/67
19600 hadoop
253M sleep
0:00:49 3.8% java/68
20617 hadoop
249M sleep
0:00:49 3.7% java/67
17432 hadoop
249M sleep
0:01:03 3.6% java/68
RSS MEMORY
43% data-node2
30% data-node1
22% data-node3
0:04:36 4.0% name-node
1:19:20 1.0% global
Total:322 processes, 8024 lwps, load averages:15.54, 18.25, 20.09
リスト25のprstat出力から分かるとおり、Oracle Solarisゾーンごとに次の情報が表示されます。
SWAP列:各ゾーンの仮想メモリの総サイズ
RSS列:ゾーンの物理メモリ使用サイズの合計(メイン?メモリの使用状況)
MEMORY列:システム全体のリソースに対する消費されたメイン?メモリの割合(%)
CPU列:システム全体のリソースに対する消費されたCPUの割合(%)
ZONE列:各ゾーンの名前
ゾーンごとのメモリ統計の詳細を確認するには、zonestatコマンドを使用できます。たとえば、zonestat -rコマンドを使用してメモリ使用状況を分析できます(リスト26を参照)。
root@global_zone:~# zonestat -r memory 10
Collecting data for first interval...
Interval:1, Duration:0:00:10
PHYSICAL-MEMORY
SYSTEM MEMORY
mem_default
USED %USED
[total] 87.0G 34.0%
[system] 68.9G 26.9%
data-node2 %
data-node1 %
data-node3 %
444M 0.16%
285M 0.10%
sec-name-node
219M 0.08%
VIRTUAL-MEMORY
SYSTEM MEMORY
vm_default
USED %USED
122G 47.0%
[system] 42.3G 16.2%
data-node2 27.1G 10.4%
data-node3 25.8G 9.96%
data-node1 25.4G 9.78%
762M 0.28%
sec-name-node
416M 0.15%
388M 0.14%
LOCKED-MEMORY
SYSTEM MEMORY
mem_default
USED %USED
[total] 15.7G 6.16%
[system] 15.7G 6.16%
data-node1
data-node2
data-node3
sec-name-node
リスト26の出力より、物理メモリ(PHYSICAL-MEMORY)、物理メモリの抽象表現である仮想メモリ(VIRTUAL-MEMORY)、ロックされたメモリ(LOCKED-MEMORY)のそれぞれについて、メモリ使用量が分かります。たとえば、特権プロセスは仮想メモリをロックできます。このロックされたメモリはページアウトされません。仮想化環境でメモリ使用状況を監視するために使用できる別のコマンドとして、zvmstatコマンドがあります。このコマンドは、各ゾーンについてvmstatの結果を出力します(リスト27を参照)。
root@global_zone:~# /usr/dtrace/DTT/Bin/zvmstat 10
sec-name-node
name-nodenode
data-node1ode
data-node2ode
data-node3ode
リスト27に示される項目の意味は次のとおりです。
Zone列:ゾーン名
re列:ページ回収の回数
mf列:マイナー?フォルトの回数
fr列:解放されたページの数
sr列:スキャン率
epi列:ページインされた実行可能ページの数
vepo列:ページアウトされた実行可能ページの数
epf列:解放された実行可能ページの数
api列:ページインされた匿名ページの数
apo列:ページアウトされた匿名ページの数
apf列:解放された匿名ページの数
fpi列:ページインされたファイル?システム?ページの数
fpo列:ページアウトされたファイル?システム?ページの数
fpf列:解放されたファイル?システム?ページの数
このメモリ測定の対象を絞り込んで、特定のゾーンをチェックできます。たとえば、name-nodeゾーンのメモリ使用状況を表示できます。
root@global_zone:~# prstat -mLz name-node
それでは、メモリ統計を確認するためにdata-node1ゾーンにドリルダウンしましょう。どのプロセスが物理メモリを専有しているかを確認するには、特定のOracle Solarisゾーンをどのように調査すればよいでしょうか。
まずは、そのゾーンにログインします。
root@global_zone:~# zlogin data-node1
次に、リスト28に示すコマンドを使用して、そのゾーンの物理メモリ使用サイズ(RSS)に従ってプロセスをソートします。RSSは、RAMに保持されているプロセス?メモリ部分です。メモリをもっとも多く消費しているプロセスが一番上に表示されます。
root@data-node1:~# prstat -s rss
CPU PROCESS/NLWP
10236 hadoop
151M cpu20
0:05:26 8.5% java/132
11365 hadoop
140M sleep
0:00:55 3.0% java/63
11381 hadoop
136M cpu29
0:00:55 5.5% java/63
11346 hadoop
120M cpu44
0:00:58 5.2% java/63
10648 hadoop
120M sleep
0:02:09 0.1% java/151
11355 hadoop
0:00:56 6.1% java/63
11319 hadoop
112M sleep
0:00:56 1.3% java/63
11337 hadoop
112M cpu30
0:00:52 4.2% java/63
11327 hadoop
112M cpu40
0:00:57 3.0% java/63
11332 hadoop
112M cpu122
0:00:57 3.2% java/63
11323 hadoop
108M sleep
0:00:56 5.2% java/63
11374 hadoop
0:00:55 3.2% java/63
0:00:11 0.0% svc.configd/17
0:00:05 0.0% svc.startd/14
0:00:00 0.0% fmd/11
Total:43 processes, 1047 lwps, load averages:31.82, 8.25, 3.02
リスト28より、hadoopプロセスがもっとも多くのRSSメモリを使用しています。
仮想化環境でのネットワーク使用状況の監視
この最後の例では、ネットワークのパフォーマンスを監視します。表6に、この記事のネットワークのパフォーマンスの監視に使用するコマンドの概要を示します。
表6:コマンドの概要
データリンクを管理する
データリンクの統計をレポートする
アクティブなゾーンの統計をレポートする
帯域幅リソース制御を管理する
フローの統計をレポートする
Hadoopクラスタでは、ほとんどのネットワーク?トラフィックはDataNode間のHDFSデータ?レプリケーション向けのトラフィックです。
これから検討する課題は次のとおりです。
ネットワーク?トラフィック量がもっとも多いゾーンともっとも少ないゾーンはどれか。
現在処理しているネットワーク接続数の観点からもっともビジー状態にあるゾーンはどれか。
Oracle Solarisゾーン、物理ネットワーク?カード、仮想ネットワーク?インタフェース?カード(VNIC)などの特定のネットワーク?リソースを監視するにはどうすればよいか。
まず、dladmコマンドを使用して物理ネットワーク?カード数を表示して、現在のネットワーク設定を再確認します。
root@global_zone:~# dladm show-phys
次に、dladmコマンドを使用してVNIC情報を出力します(リスト29を参照)。
root@global_zone:~# dladm show-vnic
MACADDRESS
MACADDRTYPE
name_node1
2:8:20:d4:31:b3
name-node/name_node1 net0
2:8:20:d4:31:b3
secondary_name1
2:8:20:41:78:4b
sec-name-node/secondary_name1 net0 :20:41:78:4b
data_node1
2:8:20:f:3f:f7
data-node1/data_node1 net0
2:8:20:f:3f:f7
data_node2
2:8:20:d0:38:ea
data-node2/data_node2 net0
2:8:20:d0:38:ea
data_node3
2:8:20:54:da:7b
data-node3/data_node3 net0
2:8:20:54:da:7b
sec-name-node/net0
2:8:20:da:2e:5b
name-node/net0
2:8:20:30:cc:45
data-node1/net0
2:8:20:8b:7b:f6
data-node2/net0
2:8:20:6a:3f:38
data-node3/net0
2:8:20:5d:7:8e
リスト29に示すように、dladmは、関連付けられた物理インタフェース(OVER)、速度(SPEED)、MACアドレス(MACADDRESS)、VLAN ID(VID)を出力します。
見てのとおり、各ゾーンに1つずつ、5つのVNICがあります(図5を参照)。
zonestatコマンドを-rオプション、-xオプションとともに使用して詳細なネットワーク情報を表示し、測定対象を特定のOracle Solarisゾーンに絞り込むことができます。たとえば、リスト30に示すように、3つのDataNodeゾーン(data-node1、data-node2、data-node3)のネットワーク?トラフィックを監視できます。
root@global_zone:~# zonestat -z data-node1 -z data-node2 -z data-node3 -r network -x 10
Collecting data for first interval...
Interval:1, Duration:0:00:10
NETWORK-DEVICE
LINK TOBYTE
MAXBW %MAXBW PRBYTE %PRBYTE POBYTE %POBYTE
data-node1 data-node1/net0
data-node3 data-node3/net0
data-node2 data-node2/net0
name-node/net0
data-node3
data_node3
sec-name-node sec-name-node/net0
data-node2
data_node2
name_node1
data-node1
data_node1
sec-name-node secondary_name1
リスト30のコマンド出力には次の情報が含まれています。
データリンク名(LINK)
データリンクまたは仮想リンクにより送受信されたバイト数(TOBYTE)
データリンクに構成されている最大帯域幅(MAXBW)
構成済みの最大帯域幅に対する送受信済みバイト数の合計の割合(%)(%MAXBW)
物理帯域幅を消費した受信済みバイト数(PRBYTE)
利用可能な物理帯域幅に対する、PRBYTEの受信に使用された帯域幅の割合(%)(%PRBYE)
物理帯域幅を消費した送信済みバイト数(POBYTE)
利用可能な物理帯域幅に対する、POBYTEの送信に使用された帯域幅の割合(%)(%POBYE)
dlstatコマンドを使用して、3つのDataNodeに関連付けられた3つのVNICを監視できます(リスト31を参照)。
root@global_zone:~# dlstat -z data-node1,data-node2,data-node3 -i 10
data-node1/data_node1
data-node2/data_node2
data-node3/data_node3
data-node1/net0
data-node2/net0
data-node3/net0
data-node1/data_node1
data-node2/data_node2
data-node3/data_node3
data-node1/net0
data-node2/net0
data-node3/net0
リスト31に示すように、dlstatコマンドは次の情報を表示します。
インバウンド?パケット数(IPKTS)
受信済みバイト数(RBYTES)
アウトバウンド?パケット数(OPKTS)
送信済みバイト数(OBYTES)
特定のネットワーク?リソースにドリルダウンして、たとえば、物理ネットワーク?インタフェース(net0)を監視できます。
root@global_zone:~# dlstat net0 -i 10
注:dlstatコマンドを停止するには、[Ctrl]キーを押しながら[c]キーを押します。
また、data-node1ゾーンに関連付けられたVNICのみを監視することもできます。
root@global_zone:~# dlstat name_node1 -i 10
data_node1
data_node1
data_node1
data_node1
注:dlstatは、非大域ゾーンから実行した場合には、そのゾーン内にあるリンクに関する統計のみを表示します。非大域ゾーンから他のゾーンのリンクを参照することはできません。
データセットの検証
の項で説明したように、MapReduceベンチマークは3つのフェーズで構成されます。MapReduceベンチマークの最後の手順は、データがソートされたかどうかの検証です。
まず、.jarファイルを実行するためにファイルのアクセス権を変更します。
root@global_zone:~# chmod +x /usr/local/hadoop/hadoop-test-1.2.0.jar
次に、ソート済みのデータが正しいかどうかを検証するために、testmapredsortプログラムを実行します。このプログラムは、ソートされていないデータとソート済みのデータに対して一連のチェックを実行します。
それでは、ソート済みのデータが本当にソートされているかどうかを、次のコマンドを実行して判定しましょう。
root@global_zone:~# zlogin -l hadoop name-node hadoop jar
/usr/local/hadoop/hadoop-test-1.2.0.jar testmapredsort -sortInput
random-data -sortOutput sorted-data
コマンドの意味は次のとおりです。
zlogin -l hadoop name-node:このコマンドをユーザーhadoopとして、name-nodeゾーンに対して実行することを指定する
hadoop jar /usr/local/hadoop/hadoop-test-1.2.0.jar testmapredsort:Hadoopの.jarファイルを指定する
-sortInput random-data:ランダムなデータの入力ディレクトリを指定する
-sortOutput sorted-data:ソート済みデータの出力ディレクトリを指定する
データがソート済みとして検証された場合は、次のメッセージが表示されます。
SUCCESS!Validated the MapReduce framework's 'sort' successfully.
特定のTCPまたはUDPネットワーク?ポートにおける2つのシステム間のネットワーク?トラフィックの監視
特定のTCPポートまたはUDPポートにおけるネットワーク?トラフィックを監視することもできます。この方法は、2つのHadoopクラスタ間のデータ?レプリケーションの進捗状況を監視する場合に便利です。たとえば、図6に示すように、異なるデータセンターにあるHadoopクラスタAからHadoopクラスタBへとレプリケーションされているデータを監視できます。
図6:Hadoopクラスタ間のデータのレプリケーション
Hadoopクラスタ間でデータをレプリケーションするために、distcpコマンドを使用できます。このコマンドは、Hadoopクラスタ間でデータをコピーするためのHadoopの組込みコマンドです。
root@global_zone:~# zlogin -l hadoop name-node hadoop distcp
&hdfs://name-node:8020/benchmarks hdfs://name-node2:8020/backup&
注:name-nodeは1つ目のクラスタ上にあるNameNodeのホスト名で、name-node2は2つ目のクラスタ上にあるNameNodeのホスト名です。
これらのクラスタ間で、distcpが使用する特定のTCPポート(8020)上のネットワーク?トラフィックを監視する場合は、フローを使用できます。
フローとは、Oracle Solaris 11の新しいネットワーク仮想化アーキテクチャに組み込まれた、洗練されたサービス品質(QoS)メカニズムです。フローを使用すれば、特定のネットワーク?インタフェース上の特定のネットワーク?ポートについて、ネットワーク帯域幅の測定やネットワーク帯域幅に制限を設けることができます。さらに、フローの作成、変更、削除は、大域ゾーンでも非大域ゾーンでも実行できます。
次の例では、name_node1 VNIC上のTCP 8020ネットワーク?ポートに関連付けられるフローを設定します。
まずは、name-nodeゾーンにログインします。
root@global_zone:~# zlogin name-node
次に、name_node1 VNIC上にフローを作成します。
root@name-node:~# flowadm add-flow -l name_node1 -a transport=TCP,local_port=8020 distcp-flow
注:フローを有効化または無効化するために、ゾーンを再起動する必要はありません。これは、本番システムでネットワークのパフォーマンス問題をデバッグする必要がある場合に非常に便利です。
フローが作成されていることを検証します(リスト32を参照)。
root@name_node:~# flowadm show-flow
distcp-flow name_node1
リスト32では、関連付けられているVNIC(name_node1)とTCPポート番号(8020)に対してdistcp-flowフローが作成されています。
name_nodeゾーンでは、flowstat(1M)コマンドを使用できます。このコマンドは、ユーザー定義のフローに関する実行時統計をレポートします。受信側の統計のみ、または送信側の統計のみをレポートすることもできます。さらに、指定したリンク上のすべてのフローに関する統計や、特定のフローに関する統計を表示することもできます。
TCPポート8020を監視しているdistcp-flowフローの帯域幅をレポートするには、リスト33に示すコマンドを使用します。
root@name_node:~# flowstat -i 1
FLOW IPKTS RBYTES IDROPS OPKTS OBYTES ODROPS
distcp-flow 24.72M 37.17G 0 3.09M 204.08M 0
distcp-flow 749.28K 1.13G 0 93.73K 6.19M 0
distcp-flow 783.68K 1.18G 0 98.03K 6.47M 0
distcp-flow 668.83K 1.01G 0 83.66K 5.52M 0
distcp-flow 783.87K 1.18G 0 98.07K 6.47M 0
distcp-flow 775.34K 1.17G 0 96.98K 6.40M 0
distcp-flow 777.15K 1.17G 0 97.21K 6.42M 0
注:flowstatコマンドを停止するには、[Ctrl]キーを押しながら[c]キーを押します。
リスト33から分かるように、このflowstatコマンドにより、TCPポート8020のネットワーク統計が表示されます。また、name_node1ネットワーク?インタフェース上でフローを有効化しても、ネットワークのパフォーマンスは低下していません。
オプション:ネットワーク測定の終了後、フローを削除できます。
root@name_node:~# flowadm remove-flow distcp-flow
次に、フローが削除されたことを確認します。
root@name_node:~# flowadm show-flow
注:フローを削除するためにゾーンを再起動する必要はありません。これは、本番環境で非常に便利です。
ネットワークのパフォーマンス監視に関するその他の例については、&&を参照してください。
クリーンアップ?タスク
(オプション)ベンチマークを終了したら、次のコマンドを使用して、生成されたすべてのファイルをHDFSから削除できます。
root@global_zone:~# zlogin -l hadoop name-node hadoop dfs -rmr hdfs://name-node/user/hadoop/random-data
root@global_zone:~# zlogin -l hadoop name-node hadoop dfs -rmr hdfs://name-node/user/hadoop/sorted-data
この記事では、Oracle Solaris 11の新しいパフォーマンス分析ツールを利用して、Hadoopクラスタをホストする仮想化環境の観察や監視を行う方法について説明しました。
また、同著者による次の記事も参照してください。
Orgadのブログ:
Oracle Solaris 11のその他の参考資料:
ダウンロード:
アクセス:
アクセス:
参考:公式
Oracle Solarisのヒントと技:ブログとブログ
Oracle Solarisのフォロー:と
著者について
Orgad Kimchiはオラクル(以前のSun Microsystems)のISV Engineeringチームに所属するPrincipal Software Engineerです。仮想化テクノロジー、ビッグ?データ?テクノロジー、クラウド?コンピューティング?テクノロジーの専門家として6年間従事しています。
リビジョン1.0、日
オラクルの最新情報をフォロー:
日本オラクルについて
おすすめコンテンツ
主要トピック
Integrated Cloud Applications & Platform Services}

我要回帖

更多关于 クズ是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信