ブログ移設しました。

bloggerから記事を移設しました。


HUGOで記事を書いてみると思いのほか書きやすかったので移動。

月曜日, 12月 31, 2018

KVMとVirtualBox Linux上ではどっちが早いの?

またまた環境周りで試してみたネタです。
Modern IEがまだ残っていたので試したくなりました。

先に結論

KVMよりVirtualBoxのほうが早かった。
コアxHT分認識している=>VirtualBox
書き込み速度も早い=>VirtualBox
コアの認識しているものが少ないので、ゲストOSがWindowsのせいでうまく動かないとかは、、あるかも。(VM作るときにOS種別聞いてくるし)
ただ、書き込み速度はVirtualBoxのほうが早かったので、VirtualBoxに這い寄りたい所存です。

VMを用意

まずは、Modern IEからイメージをダウンロード(名称変わっていますね。5日ブラウザ検証するかもしれないからとりあえず全種類ダウンロードしておくよ。)
その後、上記のイメージをインポート。

KVM用のイメージ用意

その後、下記を元にKVM用のイメージに変換する。
結構時間がかかるので放置しましょう。
VMware のディスクイメージ (VMDK) を KVM (qemu) で使えるように変換する - Kenichi Maehashi's Blog 

KVMへインポート

KVM managerでインポートで新規VMとして作成
NBM2 - VirtualBoxからKVMへと仮想イメージ移行した話

性能比較

今回Windowsで以下で紹介されているツールのうち、cinebentch、CrystalDiskMarkでパフォーマンス計測を行おうと思います。
Windowsのベンチマーク測定に便利なツール4選 | Yuichiro Suzuki Reports

検証環境は以下の通り。
cat /proc/meminfo
MemTotal:        8070104 kB
cat /proc/cpuinfo
model name      : Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz

各VMはKVM、Virtualboxともに2048MByte、コアは4つ
使用するイメージは「IE11 - Win7」
※WindowsUpdateは途中で当たらないように回線は切断して検証。

検証結果ですが、結果的には、Virtualboxが早かった。

VirtualBox




 KVM

 





Vagrantで使う際にvagrant upするときにVirtualboxが少しもたついている感じがしたのでKVMに期待、また安定性ってKVMのほうが高そうだったので結構期待しておりましたが、性能的に半分程度に収まってしまったので移行はしなくても良いという判断です。

ただ、KVM初心者なのでもしかするとOS側に見せるコア数がホストOSのHTで動いたものをベースに動かせる?かもしれませんが、GUIで設定がなさそうだったので今回はいいやとしました。

サーバーonサーバーするときにKVMが安定しているとわかればそのときに考えたいともいます。

日曜日, 12月 30, 2018

DeepLearning周りの調査

特に何かのプロジェクトで使うというわけではないのだけど、Deep learningに興味が出たので調査を開始した。

とりあえず

とりあえず(形から入りたかったので)Neural Compute Stick 2こちらを購入。
買う前に全然調べないで買ったので、まず、調べてみるうちにわかったことを書いてみる。

これは、Edge(末端の装置)で使うものでOpenVINOっていうのがIntel系のDeep learning用のSDKが動く。
OpenVINOはIntel系CPUの一部で動くよ。(see: System Requirements)

あれ。。。Neural Compute Stick 2を別に書く必要はなかった。

Deep Learningについて浅く知ってみる

何してくれているの?

そもそも、Deep Learningについてはよく知らないのだけど、重み付けをしてくれるための賢いシステムくらいにしか思っていない。

「機械学習」と「ディープラーニング」は何が違うのか? | MUFG Innovation Hub
うん。大体想像どおり。
ディープラーニング(Deep Learning)とは?【入門編】 | LeapMind BLOG 
機械学習のDeepLearningがあるんだったよね。と確認のために調べてみると、AIの中に機械学習があるのか。 AIって組み合わせて作るもんだと思った。

DeepLearningってコード書けばいいんじゃないよね。

これすごいな、大枠理解がこれだけでできそう。

で、どうやって推論しているのかなと思っていたときに動画をぼけーっとFireTVで見ているといいのが見つかりました。
数式がおおよそこうなっているからこういうことが言いたいんだよね。がわかるのだけど、 数式を細かく紐解けないということに気づいた(つまり概念理解できない)
ので、やっぱり、数学もちゃんとやらないといけないね。

DeepLearningで必要な知識は?

数学ないとこれ使えなくね?(推論なんで、どうやって動いているか全然わからない状態で使っていいものじゃないと思うの)と思って調べるとなるほどなるほど。

自分がすすめる上でのメモとして一旦この記事を書きました。
多分、Neural Compute Stic 2 以外について書いてあるものは一度見ておいて「あぁ。これが必要なんだな。」とすればすすめる方針が建てられそうだ。

まず、私はコードを書く力はあるので、高校数学と統計をさらっと見直します。(動画の説明の意味をちゃんと理解したい)

木曜日, 6月 14, 2018

サーバー周りの勉強の仕方 part1

退社前にサーバーのことを引き継がないといけないのだが、いかんせん他のプロジェクトの時間を使って整備しているがゆえに手順書は運用手順書しかない。
そんな中、そもそもサーバーの扱い方がわからないとそんな自体に直面したときに動けないことがわかりました。

サーバーの扱い方を知るまでに私がやったこと振り返り体系的にまとめることにしました。

まず、インストールしてみる
次にやりたいことは何かを考える
やりたいことをするため、または、そのオーダーを実現させるためには何が必要かを考える→手段
手段が分かったらその手段の使い方を調べる
手段がどう構成されてるかを調べる
構成されているものも大抵は手段の一つなので、更に調べる

これを繰り返すと恐らくOSまでは行き着く、もしかすると、一回目の手段の段階でOSかもしれない。

体系的に言えば
OSの基本的とされる機能を使うことを知る(すでにこの段階でアプリケーションを使うことも多い)
 エディタで編集する
 ユーザーの作り方
 ファイヤーウォール
 ディスククゥオータ

つまり、基本的なコマンド全部なんだけど、必要になったらこういう機能を提供するアプリケーション、OSの機能がないか?と調べる
あまり時間はかけない、不要なサーバーで試す、または、知ってる人にチャットを飛ばすといい。
しばらくするとチャットを飛ばすのさえ億劫になるほど情報は世の中に溢れていることに気づく。

そのOSに乗るものを知る(アプリケーション)
 デーモン(ssh,apache)
アプリケーションのインストール方法(手段の入手方法)
 パッケージマネージャー → 色々なパッケージマネージャがある
 単にダウンロードして使う → バイナリで単体で動くかも、必要なライブラリが他にあるかも
 ビルドする → パッケージマネージャーからインストールするだけでは足りない場合や、何故かパッケージマネージャーで入れるなとか言い出す時

ここまでが構築段階と定義で必要なものとする。
次が面倒なところ、運用・管理、それの決定元になるポリシー策定。

例えば
ユーザーは誰が作っていいのか
ディスクの使用量は
検出のしきい値は
セキュリティ的なポイントは
ログ監査はどうするか

これらが無いと単なる作業者は動いてくれないというか、全く報告が上がらないかまたは、全部報告してくる。

システムを作っておしまいじゃないのがいわゆるサーバーのめんどいところ。
むしろここさえジャッジしてくれれば、はいはい、だけで作業は進む。
アプリ開発も同じだけどね。

と、概論的なところは書いたので次の書き込みで具体的例をとって手段を調べるのにはどうすればいいかを書いていこうと思います。
いつまで、そこの人たちが運用してくれてるかは分からないけど。

木曜日, 4月 05, 2018

デバイスないときに使えるサービスについて

Android端末で試験ターゲットとする実機が手元にないときのお話

案件でAndroid端末で確認するときにどうすれば手元にない状態どうすれば試験できるかを考えてみた。


  1. AVD
  2. その他のエミュレータ
  3. 他のサービス
AVD,エミュレータで事足りるとしたらそれでいいとして。
マシンスペック的に厳しいよとか、あとは実機じゃないとねー。となった時のことを考慮してみる。

AWS Device Farm

料金は無料分を使えばいいとして、次にテストできる環境は以下の通りのようです。
you can interact with real Android and iOS devices from your browser or run automated tests written in popular frameworks like Appium, Espresso, and XCTest.

なので、実機を操作して手動でテストを実施するのは無理。

ほかのサービス

ほかのサービスはどうなんだろう?と思って探しているとまとめてくれている人がいました。

数かなりありますが、結構なお値段してびっくりです。。。

土曜日, 3月 24, 2018

開いているソースの場所を開く(Android Studio)

ソースの名前はわかっているのだけど、パッケージ名で迷子になってしまうことが多いです。

Javaの人の名前空間把握すげぇと思いながら、表示されているパスを追いかけてたどり着いておりました。

でも、AndroidStudioにはありましたよ。開いているファイルまで飛ぶ機能。
これで毎度パスを確認しなくて済む。。。

Android SDKインストール(CUI)

Android SDKって結構壊れることが多いんですね。

なので、インストール方法(GUIによらない)を調べました。
検索してもさっと出てこなかったのでいかに記述します。(多分これでインストールは大丈夫だと思う)

インストール対象抽出:
tools\bin\sdkmanager.bat --list --verbose
 その後、ファイルからインストールしたいパッケージだけ選ぶ
インストール:
tools\bin\sdkmanager.bat --sdk_root=H:\android\sdk --package_file=H:\androidsdk\sdk\list
アップデート:
tools\bin\sdkmanager.bat --sdk_root=H:\android\sdk --update

なお、すごい古い環境だと、android.batでやるみたいな記事がありましたね。

以上です。