FC2ブログ

ホーム 次ページ >

スポンサーサイト

--年--月--日 --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告

アプリケーション開発視点でのベンチマークの考え方

2012年05月27日 17:06

第5回 HPC勉強会で、アプリケーションのベンチマークの話が出てきたので、アプリ屋の視点でどんなベンチマークをとる必要があるのかを、ちょっとまとめてみました :-)
あまりうまくまとまっていないけど、とりあえず公開ですw

以下の図に、アプリケーション視点でのベンチマーク計測対象を書いてみました。
ベンチマーク図
 
アプリケーションのベンチマークといっても、実際問題、アプリケーションを構成するフレームワーク、ミドルウェア、インフラが影響するため、アプリケーション単位のベンチマークを取る事は不可能だったりします。
また、アプリケーションは利用者から直接見える最初の入り口なので、システム全体のベンチマークとして計測する必要があります。
アプリケーションとして計測するベンチマークは、大きく分けて以下の3つの分岐点で計測します。

ミドルウェアのベンチマーク

RDB、NoSQLDB、KVS、メッセージバスなど、アプリケーションを構成する基本的なサービスのベンチマーク。
ミドルウェアの性能は、システム(アプリケーション)の非機能要件に直接影響するため、システムの基本設計時に必要な情報だったりします。
なので、通常はシステム開発前に、ミドルウェアのベンチマーク計測を行います。

ここで計測した結果の良し悪しが、システムが運用に入った際の性能の予測精度に大きく影響し、最悪運用に入ってからのパフォーマンス問題を引き起こす原因にもなります....

システム開発を行ううえで、かなり重要な情報であり、その情報を持つ企業としては、あまり表に出てこないものだったりします....多分
このベンチマークの計測方法は、ミドルウェアの種類や適用システムによって大きく異なるので、ノウハウが体系化しづらいかもしれません...
あと、企業の戦略として、あまり表に出したがらないかも...

ただ、計測方針や観点、注意する点は、整理すればノウハウとしてまとめることができると考えています :-)

フレームワークのベンチマーク

アプリケーションのドメインごとに、適用するフレームワークは異なります。
顧客管理系、検索系などなど....

フレームワークの性能は、ミドルウェアと同様に、システム(アプリケーション)の非機能要件に直接影響するため、システムの基本設計時に必要な情報だったりします。
なので、通常はシステム開発前に、フレームワークのベンチマーク計測を行います。

このベンチマークの計測方法は、ミドルウェア同様、業務内容や規模によって大きく異なるので、ノウハウが体系化しづらいかもしれません...
また、企業の戦略として、あまり表に出したがらないかも...

これも、計測方針や観点、注意する点は、整理すればノウハウとしてまとめることができると考えています :-)

アプリケーションのベンチマーク

アプリケーションのベンチマーク計測は、システムごとに異なるので、その時々で異なります。
ここまでくると、ベンチマークというより、システム要件を満たすかや、高負荷状態でサービスを継続できるかといった観点で計測します。
この計測結果は、そのままパフォーマンスチューニングにつながります。

で、このパフォーマンスチューニングの方針を決める情報として、ミドルウェアやフレームワークのベンチマーク計測結果が重要になってくるので、ミドルウェアやフレームワークのベンチマークの計測は、アプリケーションのパフォーマンスチューニングを前提とした内容にするのが望ましいです。

※まぁ、なかなか理想通りにはなりませんが...

このことから、ミドルウェアやフレームワークのベンチマーク計測は、開発するアプリケーションのパフォーマンスチューニングを考慮したストーリーで行う必要があると考えています。

今日のところは、こんなところで...
もう少し整理してまとめたいな...
あと、私以外のアプリ屋の視点も聞いてみたいかも...

スポンサーサイト

プログラミング コメント: 0 トラックバック: 0

Hadoopの擬人化をやってみた

2012年05月08日 22:16

山上先生...ごめんなさい( ノ゚Д゚)
一度やってみたかったんです...

Hadoop

昭和の人間にしかわからないよね...orz


ちなみに、ちゃんと自分で描きました...

プログラミング コメント: 0 トラックバック: 0

Open vSwitch のRPMパッケージ生成とインストール

2012年04月20日 23:14

4/7にあった「Open vSwitchソースコードリーディング その1」あたりをきっかけに、Open vSwitchを調べている今日この頃...

一応うちのCentOS6.2マシンにOpen vSwitchをインストールして、OpenFlowで遊ぶ準備をしています :-)

で、Webを探していても、手作業でのビルド&インストールの情報ぐらいしか見つからなかったので、RPMとしてビルド&インストールする手順をまとめてみました :-)

とりあえず今回は、Gitから最新のものをGetしてビルドをします。
2012/4/7時点のバージョンは、1.6.90です。

リリース版を、ここから持ってきてもOKです...多分
http://openvswitch.org/releases/openvswitch-1.4.0.tar.gz

んでは、これからビルドとインストール手順を説明します :-)

1.前準備


まずはビルドに必要な環境を構築します。

1)依存するライブラリやToolのインストール


yumで、ビルドに必要なライブラリやToolをインストールします。
> su
$ yum install gcc make autoconf rpm-build redhat-rpm-config kernel-devel openssl-devel

2)autoconf 2.64以上のinstall


openvswitch 1.3以上では、ビルドにautoconf 2.64以上が必要になります。
環境によっては、autoconf 2.64より古いこともあるので、
>autoconf --version

と実行して、autoconfのバージョンを確認してください。
2.64より前であれば、適当な作業ディレクトリに移動して
>cd ~/Download
>wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz

と入力して、autoconf 2.68を取得して、以下の手順でビルドします。
> tar zxvf autoconf-2.68.tar.gz
> cd autoconf-2.68
> ./configure
> make
> su -
$ cd  "ビルドしたユーザのカレントディレクトリ"/Download/autoconf-2.68
$ make install

※インストールはrootで実行します

2.GitからOpen vSwitchの取得&ビルド


適当な作業ディレクトリに移動して、GitからOpen vSwitchのソースを取得&ビルドします。
> cd ~/Download
> git clone git://openvswitch.org/openvswitch
> cd openvswitch
> ./boot.sh
> ./configure --with-linux=/lib/modules/`uname -r`/build
> make
> make dist

ビルドに成功すると、ビルドしたディレクトリに

openvswitch-1.6.90.tar.gz

というファイルができています。
これを展開して、Open vSwitchのRPMを作成します。

3.Open vSwitchのRPMの生成


まずは、RPMを生成するためのディレクトリを生成します。

> mkdir -p ~/rpmbuild/SOURCES

そのあと、openvswitch-1.6.90.tar.gzを移動させて、以下の手順でRPMを生成します。
> mv openvswitch-1.6.90.tar.gz ~/rpmbuild/SOURCES/.
> cd ~/rpmbuild/SOURCES/
> tar xzvf openvswitch-1.6.90.tar.gz
> cd openvswitch-1.6.90
> rpmbuild -bb rhel/openvswitch-kmod-rhel6.spec
> rpmbuild -bb rhel/openvswitch.spec

RPMの生成に成功すると、~/rpmbuild/RPMS/x86_64/の下に

kmod-openvswitch-1.6.90-1.el6.x86_64.rpm
openvswitch-1.6.90-1.x86_64.rpm
openvswitch-debuginfo-1.6.90-1.x86_64.rpm


の3パッケージが生成されています。
※32bitの場合は、~/rpmbuild/RPMSの下に32bit用のディレクトリができているはずです...多分

4.Open vSwitchのインストール


生成した3つのパッケージを、以下の手順でインストールします。
インストールするためにはrootになる必要があります。
> su -
$ cd  "ビルドしたユーザのカレントディレクトリ"/rpmbuild/RPMS/x86_64/
$ rpm -ivh kmod-openvswitch-1.6.90-1.el6.x86_64.rpm
$ rpm -ivh openvswitch-1.6.90-1.x86_64.rpm
$ rpm -ivh openvswitch-debuginfo-1.6.90-1.x86_64.rpm

インストールに成功すると、Open vSwitchカーネルモジュールは

/lib/modules/2.6.32-220.7.1.el6.x86_64/extra/openvswitch/openvswitch.ko
/lib/modules/2.6.32-220.7.1.el6.x86_64/extra/openvswitch/brcompat.ko


にインストールされています。
(環境によっては、/lib/modules配下の別ディレクトリ...)
Open vSwitchデーモンのバイナリは

/usr/local/sbin/

にインストールされて、
Open vSwitchコマンドは

/usr/bin/

にインストールされます。
これで、必要なコマンドなどのインストールが完了です。

5.Open vSwitchの環境設定と起動


インストールが完了したら、環境の初期化を行います。

1)DB初期化


Open vSwitchの設定を保持するDB(JSONファイル)の初期化を行います。
この初期化は、rootのままで行います。
$ ovsdb-tool create /usr/local/etc/openvswitch/conf.db  "ビルドしたユーザのカレントディレクトリ"/rpmbuild/SOURCES/openvswitch-1.6.90/vswitchd/vswitch.ovsschema

vswitch.ovsschemaには、DBのテーブルスキーマが定義されています。
これを読むと、Open vSwitchで何ができるのかが、ある程度予測できます...多分 orz

2)ovs-brcompatdの有効化


Open vSwitchをbridge互換で動作させるため、Open vSwitchの定義を追加します。
定義を追加するコンフィグファイルは

/etc/sysconfig/openvswitch

で、

# BRCOMPAT: If 'yes' compatibility mode will be enabled.
BRCOMPAT=yes

BRCOMPATyesに設定します。

デフォルトではコメントアウトされているので、コメントをはずして設定してください。
これを有効にすると、Open vSwitchをスタートする際にovs-brcompatdが有効になります。

※/usr/share/openvswitch/scripts/ovs-ctl を読むと、なんとなく動きがわかるかも...

3)Open vSwitchの実行


設定が終わったので、Open vSwitchを実行します。
サービスとして実行させるので、お約束の/etc/init.d として実行します。
※もちろんrootで実行させます。
$ /etc/init.d/openvswitch start
Starting ovsdb-server                                      [  OK  ]
Configuring Open vSwitch system IDs                        [  OK  ]
Starting ovs-vswitchd                                      [  OK  ]
Starting ovs-brcompatd                                     [  OK  ]

これでOpen vSwitchが実行されます。
うまくいかなかったら、再起動してください....orz
rcの設定もインストール時に行われているので、再起動でOpen vSwitchサービスが実行されています。
動作しているかどうかは

$ /etc/init.d/openvswitch status

と実行すると

ovsdb-server is running with pid 4401
ovs-vswitchd is running with pid 4410


という感じに、実行しているデーモンが表示されます。
ovs-brcompatdも動作しているのですが、なぜか表示されません..
まぁ、ps -aef | grep ovs ってやれば、動作していることは確認できます...
バージョンは

$ /etc/init.d/openvswitch version

と打てば、

ovsdb-server (Open vSwitch) 1.6.90
Compiled Apr  3 2012 16:38:27
ovs-vswitchd (Open vSwitch) 1.6.90
Compiled Apr  3 2012 16:38:30
OpenFlow versions 0x1:0x1


って感じに出力されます。
OpenFlowは1.0で動作しているようです...


あとは、KVMのゲスト間のブリッジとして動作させて、TremaからOpenFlowで制御してみようとしています...
GWに実験できるといいなぁ....
(」・ω・)」うー!(/・ω・)/にゃー!

プログラミング コメント: 1 トラックバック: 0

Perl三昧な日常

2011年07月16日 01:09

ここ一ヶ月ほど、お仕事の関係でPerl三昧の日々を送っております....orz
Perlを使うことを選択したのは私なんだけどね ⊂⌒~⊃。Д。)⊃ 
プロジェクトの要件と開発メンバーの条件を考えると、Perlの方が適していたので....
私が全部作るんだったら...C++にBoostの組み合わせにしていたかも...

なんだかどんどんPerl使いになっている... まぁ、達人に比べれば可愛いものだけど....orz
仕事でRubyを使ってみたいけど、自由度が高すぎて、下手なエンジニアをたくさん投入するような日本型の開発スタイルではプログラムの品質コントロールが困難になるので.... なかなか強気に”Rubyで行こう!”といえない現状....

いつかは少人数で、Rubyを使ったプロジェクトをやってみたいなぁ~~~~

プログラミング コメント: 0 トラックバック: 0

Android三昧な日々

2011年04月06日 00:48

ここ2ヶ月近く、お仕事絡みでAndroid三昧の日々でした :-)
元々Androidに興味を持っていたところに、運よくAndroid絡みのお仕事をするチャンスがあったので、飛びついて見たわけで :-)
Froyoのソースコードをゲットして、フレームワーク周りのソースコードを解析したりサンプルコードを書いたりと、ちょっとヘビーでしたが楽しいお仕事でした。
こういう調査ものの仕事は、いろいろ新しい発見があって面白いなり。

今はまた通常の(?)開発ものの仕事に戻っているところです。

去年のデスマーチも収まっているので、これからまたRubyとRailsに戻れるかな~

プログラミング コメント: 0 トラックバック: 0

ホーム 次ページ >

プロフィール

PANTOMAIMU

Author:PANTOMAIMU
本当は仕様を決めたり設計だけじゃなく、プログラミングもしたいのに~というジレンマを抱えながらも、時間があれば家でプログラムを作ったりしている、しがないSE....
趣味はお絵描きに曲作りに自転車 :-)

Twitter @PANTOMAIMU

カレンダー

03 | 2019/04 | 05
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 - - - -

FC2カウンター

最新トラックバック

検索フォーム

ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。