日記、筋トレ、時々仕事

運動記録と日記のメモ代わり(自分用)

1月12日の実績

2015年01月12日 | 日記・雑記
昨日の胸トレで胸が筋肉痛。
なぜか背中も筋肉痛。これは胸に効かせる為に、背中も正しいフォームで行った為と理解。
こうやって同時に背中にも筋肉痛が出るとなると、
背中と胸を同じ日に鍛える方がいいかもしれない。

1月12日の実績。
筋トレ:本日は筋肉痛によりスポーツジムは行かず。(今週はあと2回で目標達成)

資格勉強:今週からテキストのペースアップ。ゴリゴリと進みたい。ペース上げて雑にならないように注意。


朝食:しじみ味噌汁、茹でブロッコリー、茹でオクラ、もずく、焼サバ(半分)、ウィンナ2本、ご飯。

昼食:茹でブロッコリー、茹でオクラ、納豆、焼サバ(半分)、ご飯(おかずは朝食の残り)

夕食:うどん(玉ねぎ、卵、かまぼこ、ネギ入り)


明日からまた仕事、頑張ろう。

仮想化12(vmware)

2015年01月12日 | コンピュータ関係
NUMA
NUMAとは・・・プロセッサのアーキテクチャ。
・プロセッサ間で共有されているメモリに対するアクセス速度が均一ではないアーキテクチャのこと。
・NUMAノードと呼ばれる単位で構成される。
・プロセッサ自身のノード内にないリモートメモリにプロセッサがアクセスする場合、
 ローカルメモリのアクセスよりも低速な接続でデータを転送する必要がある。

・このため、メモリへのアクセス時間はメモリの場所およびメモリにアクセスするノードにより異なる。
・OS側でリモートメモリかローカルメモリかを理解して処理することで、
 メモリの場所によるパフォーマンスへの影響を回避する。

難しいっすねw
(wikiの方が分かりやすい http://ja.wikipedia.org/wiki/NUMA)

EsxiではNUMA構成のプロセッサ(Intel,AMD)に対して、メモリアクセスの最適化を適用している。

・仮想マシンがパワーオンされると、Esxiが仮想マシンにホームノードと呼ばれるNUMAノードを割り当てる。

・仮想マシンからのメモリ要求の際、Esxiはホームノードからメモリを優先して割り当てる。
 仮想マシンはローカルメモリにアクセスし、NUMAノードへのリモートメモリアクセスに伴う
 パフォーマンス影響を回避する。

・NUMAスケジューラがシステムの負荷に対応する為に動的にホームノードを変更する

・EsxiにおいてはNUMAスケジュール設定とメモリ配置は自動で管理される。

・NUMAスケジューラは仮想マシンに依存しない。Esxi側。

・上記理由によりNUMA構成のハードをサポートしない仮想マシンでもサポートされる。

・仮想マシンが仮想NUMAをサポートする事も可能。

・ゲストOSにもNUMA構成を伝える事でパフォーマンスの最適化が期待できる。

・vCPU数が9個を超えた場合にデフォルトで有効化。


なんか条件の羅列になったな。
だいたいのコンピュータの試験ではこういった条件とかを織り交ぜた問題が結構出たりするんだよな。

仮想化11(vmware)

2015年01月12日 | コンピュータ関係
仮想CPUソケットの概念
仮想マシンにVSMPを設定すると、デフォルト設定では以下の様な形。
・シングルコアCPU*マルチソケット

仮想マシンに対して、vCPUを4つ割り当てると・・・
仮想マシンはソケットあたり1個のコアのCPUが4つ搭載されたサーバであると自身を認識する。

vSphereでは仮想マシンに64個のCPUを割り当てたりできる。
こういった場合は、注意が必要。
WinXPのProだとCPU数は最大2ソケットがOSの仕様になっている。

こういった制限に対応するために、
VSMPを与える際にコア数の概念を追加できるようになっている

物理コアを4つ与えるのであれば、
vCPUあたり2コアを定義して、
4vCPU=2コア*2vCPUという与え方が出来るようになっている。
(仮想マシンから見ると、デュアルコアの2ソケット)

※このあたりは実際にESXI動かして仮想マシン作ってみないと分からんね。



仮想化10(vmware)

2015年01月12日 | コンピュータ関係
3連休の最後なのでお勉強
前回に引き続き、vSphereのリソース管理系のお勉強
今回もCPUの動き

第2世代ハードウェアアシスト機能
メモリの仮想化オフロード機能。仮想ページから物理ページへの変換情報を、
ページテーブルという形で保持。管理の為に以下の機能を持つ。
MMU・・・CPUのてメモリ管理・制御をおこなう機能。論理アドレスから物理アドレスへの変換などを行う

TLB・・・仮想アドレスと物理アドレスのマップ情報を持つキャッシュ機能。
     仮想アドレスから物理アドレスへの変換がこのキャッシュにより高速化。



仮想マシンが動作するにはメモリの仮想化が必要。
仮想マシンに与えられた物理アドレスをさらに仮想化する。
物理SVのアドレス、仮想マシンの仮想アドレス、仮想マシンの物理アドレスといった形になる。
これだと仮想マシンは物理SVの物理メモリにアクセスできず、性能劣化する。

この様な事態を回避するのも、例のVMMの役割
VMMが「仮想マシンの物理メモリ」と「物理マシンのメモリ」のマッピング情報を保持し、
ページテーブルで管理している。
このテーブルの名前が
SPT(シャドウページテーブル)
SPTをテーブルでキャッシュする事で、仮想マシンがダイレクトにメモリアクセスする様になり、メモリアドレスの変換のオーバーヘッドが削減される。

仮想マシン側のページテーブル変更があった場合、VMMはSPTの情報を更新する必要がある。
仮想マシンのページテーブル変更によって、
VMMで発生するSPTのメンテナンスが、メモリ仮想化のオーバーヘッドとなる。
このSPTの管理をハードウェアにオフロードするのが、第2世代CPUの仮想化支援機能。

各CPUは以下の名称の機能でメモリの仮想化支援を行っている。
AMD系のCPU・・・RVI機能
Inetl系のCPU・・EPT機能
これらは主に、
・仮想マシンの仮想アドレスから物理アドレスへの変換。
・物理アドレスからマシンアドレスの変換。
これらをCPU側で実装することで、Esxi/VMMがSPTのメンテナンスをやらなくて良くなる。
仮想マシン上でページテーブルを更新する様なアプリケーションが動いているならば、
CPU側で行う事で、パフォーマンスの改善が期待できる。

vSphereはこういったCPU側の仮想化支援機能の利用を仮想マシンごとに自動決定、
最適なモードで稼働させてくれる。
自動決定の際は、CPUだけではなく、OSの種類によっても最適解は違うので、
CPUとOSの情報を元に最適解で仮想マシンを稼働させてくれる。


なんか、VMのお勉強というよりはCPUの深い部分の勉強になってますね。
こういった部分を知っていれば設計にももトラシューにも活きてくると思う。

今週(1月11日~1月17日)の目標

2015年01月11日 | 日記・雑記
最低3回、スポーツジムに通う(本日スポーツジムに行ったので、最低後2回行く)
・筋トレ+有酸素を必ず行う。

資格取得の勉強のペースを上げる。
・今週で参考テキストで概要を理解するのは一通り終わらせる。

身だしなみを整える(当然なので書く必要もないが、休日も気を抜かない為に。)
・毎日ひげ剃る、顔洗う

3食たべる、晩御飯は食べすぎない。
・朝、昼は普通の量で、夜を軽めに。
・夜はエネルギー消費が少ないので、過食はダイエット効果を鈍らす。

明日も頑張って勉強しよう。

1月11日の結果

2015年01月11日 | 筋トレ関係
今日は昼からスポーツジムへ。
脚の筋肉痛はほぼ無い事から、昨日の様な1回づつ種目順番に行って3セットのやり方では、
そこまで負荷をかけれていないのか。
今日は同じトレーニングを3セット完了するまで、次の種目には移らないやり方に。

ダンベルプレス6kg*20回、7kg*13回、8kg12回、9kg11回、10kg10回
という変わったやり方を試してみる。ピラミッドセット法とか言うらしい。
ゆっくり下ろして、ゆっくり上げる、うーん、きついなぁ。
・8kg12回なら今後も胸を意識した状態で3セットやれそうだ。

インクラインダンベルプレスは6kg12回を3セット
チェストプレス15kg*12回を3セット
※チェストプレスは胸に効いている感があまりないが、
 フォームと高さを改善したので今後胸に効いてくる事を期待。

ダンベルフライ7kg12回3セット
胸をしっかり広げる。
バタフライマシン10kg12回3セット。
手は添えるだけ、背もたれから背中と肩を離さない事を意識。

ハンマーカール3kg12回3セット
アームカールバー12kg12回3セット
ねじり腹筋の角度20を12回3セット
サイドベント12回3セット

漕ぐマシンとランニングマシンをそれぞれ30分
カロリー消費:アップ50カロリー、漕ぐマシン250カロリー、ランニング360カロリー
合計:660カロリー

体重は中々減りませんね。サウナ後に量ると72.75だった。
正月太りは少し減りつつあるか?朝起きた直後に量ったらどうだろうね。

仮想化9(vmware)

2015年01月11日 | コンピュータ関係
ノートが長くなりすぎるので、新しいエントリに記載。
CPUが続きますね。

第1世代ハードウェアアシスト機能
・CPUがIntel VT-x とか AMD-Vの機能をサポートしている場合に利用できる。
・CPU側の機能で仮想化を支援する機能である。
・バイナリトランスレーションの代わりになる機能である。

CPUのハードウェアアシスト機能を利用すると、仮想マシン(OS)はリング0で動作し、
前回のリングの概念とは別に、リングの外側でEsxiが動作するモードが準備される。

IntelのCPUに実装されている、「Intel VT-x」の場合、
「VMX non-rootモード(仮想マシンが動くモード)」と、
「VMX rootモード(ハイパーバイザーが動くモード)」が準備されている。
VT-xの機能で必要に応じてモード切替を行っている。

仮想マシンが動いている場合は、VMX non-rootモードで動作する。
仮想マシンから特権命令が発効された場合は、CPUがそれを理解して、VMX rootモードで動作する。

このように、バイナリトランスレーションを利用する事なく、特権命令をVMMが処理できる。

Intel VT-xでは仮想化専用の命令セットが追加されているのですね。

仮想化8(vmware)

2015年01月11日 | コンピュータ関係
日曜日でだらけてしまわない様にお勉強

参考書はCPUが続きますね。vmWare以外でも、知らない様な技術が結構解説されているので、
そういった部分も、「なるほどな」って感じで面白い。


リングの概念


・x86系のシステムでは、「ハードウェアの変更を伴う様な特権命令」の実行に対する優先順位が、
 「リング」という概念で定義されている。
・リングはリング0、リング1、リング2、リング3の4つのレベルで定義される。
・リング0がOSで利用
・リング1、リング2は未使用。
・リング3がアプリケーションで利用される。


◇デバイスにアプリが直接アクセスしてしまうと、他のアプリから利用できなくなる
 等の不具合が生じる可能性がある。
 そのため、リング3でアプリがハードウェアの変更といった特権命令を出した場合は、
 割り込みを発生させて、リング0のOSに処理をバトンタッチする。
 
ここまでが前段。
じゃあ、Esxiの上に仮想マシンが特権命令出すとどうするのか?
バイナリトランスレーションで処理される

・Esxi(VMKernel/VMM)がリング0で稼働
・仮想マシン(いわゆるゲストOS)がリング1で稼働
・仮想マシンの中で動いているアプリケーションはリング3で稼働

仮想マシン上のアプリ(リング3)が特権命令を出すと、仮想マシンのOS(リング1)が特権命令を発行するが、
仮想マシンは自身が「リング1」である事を知らないので、この段階では実際には実行できない。
仮想マシン(リング1)が特権命令を発行すると、割り込み処理が発生する。
「VMM」はこの割り込み処理を監視しており、仮想マシンから要求があった割り込み処理を、
VMM(リング0)が横取りして実行する。

※VMM(Virtual Machine Moniter)
 CPUやメモリ等の仮想ハードウェアを仮想マシンに提供する役割を担う。
 仮想マシンが実行されると、VMM経由で仮想マシンからの命令が実行される。
 Esxi上で動く仮想マシンと同じ数のVMMが存在する。


あたかも仮想マシンのOSが処理してる様にみせかけて、
実際にはVMMが全部実行しているのですね。なるほどね。

先週立てた目標の実績+1月10日の結果

2015年01月10日 | 筋トレ関係
先週の土曜日に立てた目標の結果。

最低3回ジムで筋トレとランニング
⇒月、火、木、土で4回ジムに。よくできました。

毎日最低30分は資格の為の勉強する。
⇒毎日ブログをノート代わりにまとめ。まぁなんとか継続できた。よくできました。

毎日3食たべる
⇒当然食べてる。よくできました。

身だしなみを整える。
⇒当然整えてる。休みの今日もヒゲ剃ったし。
 良くできました。


今日は午前中はゆるりと過ごし、
午後から筋トレ。

脚の筋肉痛が解消されたので、脚を鍛える。
レッグプレスは前回は脚で上げてる感がなかったので、70kgに変更。
脚全体で押し出して、ゆっくりと戻す。戻す時にも脚全体を意識。イイ感じ。
今回は3セットづつやるのではなく、
以下の順番で1回づつ実施、コレを3セットでやってみた。
マシンを移動する時間だけがインターバル(20秒くらい)

レッグプレスを70kg*12回
シーテッドレッグカール30kg*12回
レッグエクステンション30kg*12回
3種類回ったらインターバル1分。
それぞれ微妙に違う部分が刺激されるので悪くないかもしれない。

つづいて、
内腿を使ってバーを下げる器具25kg*12回を左右でそれぞれ3セット
今回は戻す時もゆっくり内腿を意識。

スクワットを15回3セット。
膝を伸ばしきらないように、ゆっくり実施。
やっぱりコレは効くね。

ヒラメ筋を鍛える為に背伸び。15回3セット。
初めてやってみるけど、効いてる感はある。
明日は脹脛に筋肉痛くるかな?

膝を高く上げる事を意識した腿上げを左右で20回を3セット。
〆に下腹部。腹筋台に逆に寝て、下腹部を意識して脚を上げ下げする。12回セット。

最後にいつもの有酸素
漕ぐマシン30分。ランニングも30分。

今日のカロリー消費
アップ(50カロリー)+こぐマシン(260カロリー)+ランニング(350カロリー)
合計:660カロリー

お勉強も別ノートに引き続き実施。
内容がドンドン複雑になってくる。
理解はできている気がするが、難しいので理解までに時間がかかる。

仮想化7(vmware)

2015年01月10日 | コンピュータ関係
土曜日だしお勉強

ハイパースレッディングテクノロジー

たいそうな名前がついてるけど何やろ
一つの物理コアに複数のスレッドを割り当てる技術。
参考URL:http://www.724685.com/word/wd110126.htm

一つの物理コアの上に、論理コアを複数作って、
1つの物理コアだけど、複数の処理を行えるようにする。
と言う様な技術らしい。
こういうテクノロジーを持つ物理CPUが世の中には存在しており、
vSphereはこの部分をサポートしているそうです。

昨日勉強した、HEC(ハードウェア実行コンテキスト)の数が増えるので、
仮想マシンのvCPUのマッピング可能な相手が増える。
CPUスケジューリングの効率が良くなる。
vSphereは論理コアと物理コアを区別する。

同じ物理コア上の論理コアは隣接するCPU番号
論理コア0と論理コア1は第一コアの上にあるとvSphereは認識する

vCPUを2つ持つ仮想マシンにたいして、
同一の物理コア上の論理コアではなく、
なるだけ別の物理コア上の論理コアにCPUスケジューリングしに行く。
これにより、複数のvCPUを持つ仮想マシンのパフォーマンス向上が期待できる。

vSphereはこういった機能を持つCPUをサポートしており、
この機能を利用する事ができる。


へぇへぇへぇ・・・難しいっすねぇ。イメージはなんとなくつかめたが。

VirtualSMP
一つの仮想マシンに対して、複数のvCPUを割り当てる機能
複数のコアが同時に使用できるので、CPUのパフォーマンス向上が期待できますね。

仮想マシンの要件によってはこういう事もできるのですね。
スケジューリングに以下の条件がある。
・割り当てられているvCPUが常に利用できる。
・vCPUとvCPUの間で時間のズレがないこと

VMKernelは仮想マシンにvCPUを割り当てる時、以下の様な動きをする。
・物理CPUをタイムスライスして仮想マシンに割り当てることから、
 常にCPU時間が割り当てられているとは限らない。
・全てのvCPUに対して、同時にCPU時間を割り当てるとは限らないので、時間のズレが発生しうる。

VMKernelがこういった動きをするので、
最適化できる様な仕掛けがある。

future relaxed co-schedulingとかいう仕掛けがあるそうだ。
・vCPUとvCPUの時間のズレが閾値を超えてしまわないように管理する。
・閾値をこえた場合には、
  ◇vCPUを同時に停止
  ◇ズレが増加しない様にvCPUを同時にスケジュールする
  ◇スケジュール可能な物理CPUが無い場合、仮想マシンを停止


ズレの進んだvCPUにだけSTOPをかけて、ズレが増えない様にvCPUをスケジュールする。
状態を見ながら柔軟に制御してくれるんですね。

コレも複雑やなぁ。難しいなぁ。