シンガポール旅行記1日目(2011/08/20)

8月中旬に休みが取れたので、会社の友達(野郎3人)と久しぶりに海外旅行(シンガポール)に行ってきました。2011/08/20〜2011/08/25の4泊6日間の旅です。海外旅行なんて2年前、当時付き合ってた彼女とアメリカのロサンゼルスに行ったきりだったな。

なんでシンガポールかというと、アジア周辺で友達3人が行ったことがない地域のアンドを取ったところシンガポールになった、ただそれだけ。

ほんとうはマレーシア方面も見たかったが、申し込むツアーの関係上そのプランが無かったため、仕方なくシンガポールに。

今回の旅の流れは

な感じでした。

    • -


出発は8/20。成田空港20:50発の飛行機でシンガポール航空でした。

2時間前集合だったけど、2.5時間ぐらい前に先についてしまったので、しばらく空港の展望台から飛行機を眺めてしばし時間つぶし。



ちょっと集合時間に遅れたやつがいたけど、ほぼ時間通りに集まれたので、チェックインして、出国手続き。特に問題なく通過し、予定通り20:50に成田から離陸。


シンガポール到着まで6-7時間あるので、機内の映画を見る。シンガポール航空だと、割と最新の映画も揃っていたので、どれ見るかかなり迷ったけど、ガンツ後編を見ることに。感想としては、いまいちな映画でした。


そうこうしているうちにシンガポールチャンギ国際空港に。

チャンギ国際空港広い!!シンガポールは国内線の需要は少ないので、国際線の乗り継ぎに力を入れていると聞いてたけど、なるほど、きれいですごしやすそうな空港だ。


入国審査も済ませて、今回ツアーを申し込んだHISの現地添乗員さんとも合流。送迎車でホテルに連れて行ってもらって、仮眠を取る。結局寝れたのが朝5時ぐらいだったかな。シンガポールの時差は日本と比較して1時間。ほとんど変わらないなぁ。


初日はほとんど移動だけ。2日目に続く。

netperfでネットワーク性能測定

unixbenchに続いてnetperfで性能測定。
使ったnetperfは2.4.5。これが以外にはまった。

sakuraのVPS(CentOS5.5)上に

$ wget ftp://ftp.netperf.org/netperf/netperf-2.4.5.tar.gz
$ cp netperf-2.4.5.tar.gz /usr/local/src
$ cd /usr/local/src
$ tar xvzf netperf-2.4.5.tar.gz
$ cd netperf-2.4.5
$ ./configure
$ make
$ make install  

をインストール。その後、以下を実行。

$ /usr/local/bin/netserver

OK。クライアント側でも同様の設定を実行。
クライアントから

$ netperf -H XX.YY.ZZ.WW
netperf: send_tcp_stream: data socket connect failed: No route to host

エラーが出る。これが色々と手ごわかった。

straceやtcpdumpを利用して検証したところ、最初12865ポートで接続しているのに途中から
ポート番号が変更になることが判明。

???

他のインストールしているサイトを見るとポート12865さえあけておけばOK、みたいな
ことが書かれているのにTimeoutやらNo route to hostで通信に失敗する。
ファイアウォールをOFFにすれば計測できることからファイアウォールが原因なのは間違いなかった。

悩みに悩んだところ、ようやく以下の記事を発見。

http://www.netperf.org/pipermail/netperf-talk/2010-August/000758.html

どうやらControl ConnectionとData Connectionが別で2つ通信用ポートが必要みたい。
最初Control Connection(12865)でサーバから接続に関する情報を受け取る。
DataConnectionでは、Control Connectionで通知された新しいポート番号でサーバに接続する。

つまり、

   Client             Server
      ------             ------
      XXXXX      →      12865       
      XXXXX      ←      12865       //ここでServerのData Connectionのポートが通知される。
               ・・・
   ※上記がControl Connection。
   ※Control Connectionで通知された新しいポート番号でDataConnectionとして接続を行う。

   YYYYY      →      12866       //任意の番号をセット可能。12866を設定したものとする。
   YYYYY      ←      12866       
   YYYYY      →      12866       
   YYYYY      ←      12866       
      
      XXXXXやYYYYYはクライアントの任意のポート番号を表す。

のような動きになる。
上記の動きをさせるためには、netperf側(クライアント側)で以下のコマンドを実行すること。

$ netperf -H XX.YY.ZZ.WW -p 12865 -- -P 12866
※ "--"はGlobal Command Optionと test-specific Optionを区別するためのセパレータ。

Server側では、ファイアウォールの設定で12865と12866の2つポートを受け付けるように設定しておくこと。

    • -

肝心の計測結果。

送信元 送信先 速度(Mbps)
家(CentOS(VM)) Sakura(CentOS(VM)) 4.25
Sakura(CentOS(VM)) 家(CentOS(VM)) 1.9
家(WinXPCygwin) 家(CentOS(VM)) 66.98

家→sakuraの値が小さすぎじゃない?
あってるのかぁ。

Unixbenchで性能測定

unixbenchでいろんな環境を計測。

環境 OS Score
SakuraのVPS。1 parallel process 512Mプラン CentOS5.5 x64 899.9
SakuraのVPS。2 parallel process 512Mプラン CentOS5.5 x64 1404.2
Mac-mini上のVirtualBox CentOS5.6 x86 891.4
Mac-mini Mac OS X, Leopard 186.4
HP xw8000。1 parallel process Windows XP(Cygwin) 23.3
HP xw8000。2 parallel process Windows XP(Cygwin) 35.8

Mac-miniの物理環境上での計測より、Mac-mini上の仮想OSのほうがいいスコアが出ている。なんで?
Cygwin上の結果はあまりよくないなぁ。
スコアだけみると、sakuraのVPSがダントツで性能がよい。

久しぶりにブログをイジってみる

だいぶひさしぶりだけど、このブログをイジってみる。
右側に各種情報を追加してみた。

このデザイン、気に入っているんだけど、ちょっと表示領域が少ないのが難点か。。。。
まぁ、ソースコードとかは、極力Evernoteに書くようにしているから問題ないか。

wiki_issue_query 0.1.0 リリース

バージョンアップして、もう少し柔軟にパラメータを取れるように改良しました。

http://nhr27.ath.cx/data/wiki_issue_query-0.1.0.zip
→新しいサイト準備中。

/////////////////////////////////////////////////////
wiki_issue_query plugin
readme.txt
/////////////////////////////////////////////////////

                                                          • -
動作環境
                                                          • -
Redmine 0.9.4以上(必須) ・Rails:2.3.5(推奨) ・ruby:1.8.7(推奨)
                                                          • -
インストール方法
                                                          • -
①vendor\plugins\ 配下にwiki_issue_query-*.*.*.zipを展開します。 ②redmineを再起動させる (アップデートインストールの方法) 全てのファイルを上書きコピーしてください。
                                                          • -
使い方
                                                          • -
書式: {{issue_query(<クエリ番号>|query_id=<クエリ番号>,column=<表示カラム>,separator=<区切り記号>)}} ・クエリ番号は必須パラメータです。  数字だけを書いてもよいですし、query_id=XXXで指定しても構いません。  なお、query_idが不正な値の場合、強制的に1をセットします。 ・columnには以下を指定できます。 * project * tracker * status * author * assigned_to * fixed_version * priority * category  省略した場合、trackerを指定した場合と同じになります。 ・separatorには任意の区切り記号を指定可能です。区切り機能は、上記カラムを区切るために利用されます。  省略した場合、" "(スペース)が区切り文字として利用されます。 書式例: ・{{issue_query(10)}} ・{{issue_query(query_id=10)}} ・{{issue_query(query_id=10,column=project|tracker|status)}} ・{{issue_query(query_id=10,column=project|tracker|status,separator="/")}} ・{{issue_query(10,separator="/")}} クエリ番号について: クエリ番号はカスタムクエリのURLからわかります。 1.Redmineのチケットタブを開き、任意の条件でカスタムクエリを作成し、保存します。 2.カスタムクエリを保存すると、以下のようなURLが払い出されます。   http://XXXXXXXX/projects/hogehoge/issues?query_id=1                           ^^^^^ 3.この場合ID=1となりますので  {{issue_query(1)}}  と記載します。そうすると、チケットタブに表示される順序と同じように、Wikiページにも一覧が表示されます。
                                                          • -
改版履歴
                                                          • -
0.1.0  ・separatorパラメータのサポートにより、任意の区切り文字を表示できるように変更。  ・columnパラメータのサポートにより、任意のパラメータを一覧に表示できるように変更。 0.0.2:  ・バグ修正。  ・サポートRedmineバージョンを1.0.0→0.9.4に拡張。  ・チケットの一覧にステータスを表示できるように変更  ・チケットの一覧に優先度を表示できるように変更。  ・チケットの一覧にオーナー名を表示できるように変更。 0.0.1: ・初リリース。

Redmineのplugin作ってみた

Redmineの勉強がてらpluginを作ってみた。
RedmineWiki上でチケットの一覧を表示するマクロ。
TracでいうところのTicketQueryみたいなもの。

物件:http://nhr27.ath.cx/data/wiki_issue_query-0.0.1.zip

                                                          • -
動作環境
                                                          • -
Redmine 1.0.0 以上。
                                                          • -
インストール方法
                                                          • -
①vendor\plugins\ 配下にwiki_issue_query-*.*.*.zipを展開します。 ②redmineを再起動させる
                                                          • -
使い方
                                                          • -
Wikiで以下のように記載する。 {{issue_query(<クエリ番号(query_id)>)}} クエリ番号はカスタムクエリのURLからわかります。 1.Redmineのチケットタブを開き、任意の条件でカスタムクエリを作成し、保存します。 2.カスタムクエリを保存すると、以下のようなURLが払い出されます。   http://XXXXXXXX/projects/hogehoge/issues?query_id=1                           ^^^^^ 3.この場合ID=1となりますので  {{issue_query(1)}}  と記載します。そうすると、チケットタブに表示される順序と同じように、Wikiページにも一覧が表示されます。

画面イメージ:

初めてplugin作ったので、バグや不具合があったらごめんなさい。