openjdkでjavaアプレット(icedtea-plugin)

なんだか、連日java関連が続いているが。。。

仮想環境の管理画面で、javaアプレットが必要になることが多々あるのだが、

oracle-java6では、何故か上手く行かず、オープンソース実装のopenjdkに戻してみた。

自分の環境では、依存関係で、自動的にopenjdkが入ったが、インストールされない場合は

jreじゃなくてjdkが良ければ適宜変更すれば良いと思います。

これでアプレットのページを開くと、何故かプラグインが足りないと言われる。

icedtea-plugin

を入れれば、ブラウザ上でjavaアプレットが動くようです。

 

なんとなくですが、eclipseとかもoracleよりも早い気がする。

openjdkの出始めの頃は、互換性がイマイチで(特に日本語フォント関連)

即sun-javaを入れてましたが、最近はopenjdkのままで充分(むしろ良い)かも。

fallocateで素早く仮想化ディスクを用意する

今まで、仮想環境のディスクファイルなんかで使う大きめのファイルといえばddでzero fillをしていたが、

実際にディスクにzeroを書き込むので遅くて困っていた。

1Gファイルを作るとき

最近だとfallocateの方が良いっぽい。

同じく1Gファイルを作るとき

sparse fileじゃなくてちゃんと確保してくれている模様。

ext4からの機能らしい。

メモリをメッチャ使ってみる

前回cpuに負荷をかけてload averageをメッチャ上げてみたが、今度は、メモリをひたすら消費するとどうなるか見てみます。

今回もwatchdogタイマーの動作具合を見るのが目的です。

まず、以下のようなコードを書いて

 

 

 

コンパイルして、

 

 

 

実行します。

 

 

メモリをジワリジワリと消費して行って、そのうち強制終了されると思います。

その間、経過を見るため他のコンソールでtopします。

 

 

 

RESの値が搭載メモリ近くになると、強制終了すると思います。このRESの値が実際に確保する値です。malloc時に

もっと多めに取れば、早く確保出来ると思ったのですが、あまり値が大きいと仮想メモリ(VIRT)ばかり増えて、

実メモリ(RES)が少ししか増えなかったので、小さめにしていっぱい回します。

RESが搭載メモリ近くになると、コンソールの反応とかも悪くなりますが、しばらくすると対象プロセス(mem_full)が

強制終了されます。この強制終了は、有名なoom-killerさんが行なってくれます。

syslogを見ればそんなメッセージがあると思います。

ただ、必ず予想していたプロセス(mem_full)とは限らず、他の正常プロセスも落とされる可能性があります。

ここまでやってメモリを食い尽くすプロセスがいても、きっとoom-killerさんが良きに計らってくれるので

watchdogタイマーで落ちることは無さそうです。

せっかくなので、今度は、メモリ食い尽くしプログラムを同時多発的に実行してみます。

 

 

 

とりあえず100個実行します。topで見るとわんさかプロセスがいます。

コンソールのレスポンスも激遅になり、topの表示も更新されなくなるが

地味にoom-killerさんも動いており、watchdogのリセットが実行される形跡はありません。

watchdogデバイスに定期的に書き込んでいるのは、CentOSにあったその名もwatchdogな

パッケージでインストールしたデーモンなんですが、こいつが何とか頑張っているようです。

この状況だとコマンドも打てないので、強制的に電源を落とすしかありませんでした。

watchdogの意味なし。

一応CentOSのwatchdogでは、load averageにしきい値を設定出来そうなので

それで対処するのもありかと思います(未検証)。

ただしきい値の設定は頭の痛いところです。因みにこのテスト実施時は160くらいいってました。

また、デーモンタイプのwatchdogでは性能が良すぎるのかとも思います。都度コマンドを実行して

デバイスに書き込むタイプの簡易的なものなら、おそらくコマンドの実行が出来ずwatchdogからリセットがかかる可能性が高い気がします。

うーん。watchdogに期待しすぎなのかもしれません。

ubuntu 12.10 で SPICE

仮想化と言えば、最近は一貫してkvm(libvirt経由の更にvirt-managerでの)だが、

サーバ用途では全く問題ないが、クライアントとなるとグラフィックがどうしても貧弱で

ちょっとだけ困っていた。最近のvirt-managerの設定をみると、VNCと同じ箇所で、

spiceなるものが選べるようになっていたのだが、ちょっと調べてみたらなんか良さそうなので

とりあえず試してみることにした。spiceに詳細については、ネットで調べるとあまり多くないですが

情報が得られます。

まず、必要パッケージのインストール

 

 

 

virt-manager(仮想マシーンマネージャー)で、ディスプレイを、spiceに
ビデオカードを、qxlに変更します。

なぜか起動時に、
unsupported configuration: spicevmc not supported in this QEMU binary
とかってエラーがでます。

インストールした、qemu-kvm-spiceコマンドを使ってないのが問題なようなので
virshコマンドで手動で変更します。

 

 

を、

 

に変更する。

とりあえず、これで仮想マシンは起動します。

起動したゲスト側で、ドライバが必要な場合は、別途インストールが必要です。
ゲストがWindowsの場合は、
http://spice-space.org/download.html
から、「Guest」の「Windows binaries」をゲストのWindowsにインストールします。

なんかインストール時に聞かれますが、テキトーに答えれば進めました。

最近のウィンドウズだと、ドライバに署名が無いとインストール出来ない場合があるのですが、

なんとかすれば回避できると思います(雑)

spiceにしてみてですが、なんとなく快適になったような気がします。

品質はあまり良くないですが音もでます。