[Virtualbox] 仮想マシン環境の構成ファイル配置場所変更

・手順

1. 対象仮想マシンを電源オフ。
2. VirtualBox VMsフォルダ内にある対象仮想マシン名フォルダ以下をまるごと移動先に移動する。
3. VMメニューから対象仮想マシンを除去。
4. VMメニューから「仮想マシン(M)」→「追加(A)」と選択。
仮想マシンファイルを選択するダイアログで、移動先のフォルダ以下の.vboxファイルを選択する。
 5. 追加に成功すると一覧に対象マシンが復活するので、起動して動作を確認する。
 ・参考サイト
http://qiita.com/sugard12/items/8b4f420b3afed79fe003

[VirtualBox] 仮想マシン環境のクローンコピー手順

・前提
VirtualBox管理画面のメニュー[仮想マシン] -> クローン
ファイルサイズにもよるが、数分程度でコピー完了。早いね。

・クローン後の作業

 1.仮想OSを起動。
    ※コピー元の仮想OSは起動していない方がいいはず。

 2.ネットワークサービスの停止
  [root@node01 ~]# service network stop
  ループバックインターフェースを終了中                       [  OK  ]

3.ホスト名の変更
    [root@node01 ~]# vi /etc/sysconfig/network 

4.NICインターフェース名の変更
   a)元の設定ファイルを削除
      [root@node01 ~]# rm /etc/udev/rules.d/70-persistent-net.rules
      rm: remove 通常ファイル `/etc/udev/rules.d/70-persistent-net.rules’? y
      [root@node01 ~]# rm /etc/sysconfig/network-scripts/ifcfg-eth*
      rm: remove 通常ファイル `/etc/sysconfig/network-scripts/ifcfg-eth0′? y
      rm: remove 通常ファイル `/etc/sysconfig/network-scripts/ifcfg-eth1′? y

   b)新ホスト用の設定を追加
    [システム]メニューの[設定] -> [ネットワーク接続]から各インターフェースの設定を変更する。

5./etc/hostsの設定変更
  ※この時点でホストOSから新ホスト名でtelnet接続可能となった。

6.OS再起動
  完了

こんな本を見つけた。

はじめてのVirtualBox―オープンソースの「仮想化ツール」の使い方を詳細解説! (I・O BOOKS) はじめてのVirtualBox―オープンソースの「仮想化ツール」の使い方を詳細解説! (I・O BOOKS)
清水 美樹

工学社 2012-07
売り上げランキング : 203743

Amazonで詳しく見る by G-Tools

[java] メモリ領域とガベージコレクション

■メモリの呼び名

Java のオブジェクトは、大きく分けて以下の3つのメモリ領域で管理される。

・New領域(ヒープ領域)
新しいオブジェクトが管理される。
New領域が新しいオブジェクトで一杯になると、Scavenge GCが行われて、使用されていないオブジェクトは破棄されたり別の領域に移動されたりする。

・Old領域(ヒープ領域)
古いオブジェクトが管理される。New領域で生き残ったオブジェクトが配置される。

・Permanent領域(非ヒープ領域)
クラスやメソッドの情報が格納される。

■ガベージコレクション(GC)

GCとは、ヒープ領域に空きが少なくなった時に、不要なオブジェクトを除去してメモリの空き領域を増加させてくれる処理。

Java プログラムが動作するとオブジェクトはメモリ上にロードされるため、 大きなオブジェクトを使用したり、また、使用するオブジェクトの数が多かったりすると、その分メモリの使用領域は増加する。

そのまま、新しいオブジェクトをロードし続ける と、Java が使用できるメモリ領域が一杯になる。 これを解消するために自動的に行われるメモリ掃除の仕組みがGCである。

GCには大きく以下の2つがある。

・Scavenge GC
New 領域が不足した場合に実行され、主に New 領域が対象。
比較的、頻繁に行われ、短時間で終了する。軽い。

・FULL GC
New領域、Old領域、Permanent領域全てが対象。重い。
Full GC が行われている間は、他の処理ができずアプリは待たされる。

メモリサイズにもよるが、FULL GCは数秒程度?

■設計指針

当たり前だが、、、
・メモリサイズが小さすぎると、Out of Memoryエラーのリスクが高くなる。
・メモリサイズを大きすぎると、いざFULL GCが必要となった場合の負荷が高くなる。

実行するアプリケーションにあわせて、各メモリ領域のサイジングを行う必要がある。

製品マニュアルなどの推奨値などを参考に暫定値を割り当てた上で、実際の使用状況を確認してチューニングするのが良いのかな。

各メモリ領域(New, Old, Permanent)の使用状況は、jstatコマンド等で確認できる。

■参考

とても参考になったサイト

・「Java のヒープサイズ」についての簡単な説明
http://www.whitemark.co.jp/tec/java/javaHeap.html

・ガーベジ・コレクション:GC ( Garbage Collection ) についての簡単な説明と調査方法
http://www.whitemark.co.jp/tec/java/javagc.html

・[Java][GC][チューニング][トラブルシューティング]Javaメモリ、GCチューニングとそれ にまつわるトラブル対応手順まとめAdd Star
http://d.hatena.ne.jp/learn/20090218/p1

Javaの絵本―Javaが好きになる9つの扉 Javaの絵本―Javaが好きになる9つの扉
アンク

翔泳社 2002-12
売り上げランキング : 395611

Amazonで詳しく見る by G-Tools

[Windows] バッチコマンドでのファイル結合と追記

■copyコマンド

(1) 単一ファイルのコピー
copy コピー元ファイル名 コピー先ファイル名

(2) 複数ファイルを結合してコピー
copy コピー元ファイル名1+コピー元ファイル名2 コピー先ファイル名

(3) ワイルドカード指定でコピー
copy *.txt コピー先ファイル

※制限事項
ディレクトリでのワイルドカードは指定できない。
上書きの有無は指定できるが、追記は出来ない。

⇒copyコマンドは、複数ディレクトリにある複数ファイルの操作とは相性よくない。

■typeコマンド

ディレクトリでワイルドカード指定できないのはcopyコマンドと同じだけど、追記が可能。

(1) ワイルドカード指定で追記
type *.txt >> コピー先ファイル名
type *.log >> コピー先ファイル名

Windows コマンドプロンプト ポケットリファレンス Windows コマンドプロンプト ポケットリファレンス
山近 慶一

技術評論社 2011-12-09
売り上げランキング : 75750

Amazonで詳しく見る by G-Tools