日々のくだらない話題について


by jinotaro
カレンダー
S M T W T F S
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 31

<   2008年 05月 ( 4 )   > この月の画像一覧

秘密基地

秘密基地(電灯OFF)

我が家の秘密基地である。電気をつけた状態の写真はこちら

まぁなんちゃってデータセンターである。といっても常時冷房、無停電電源装置(UPS)も2系統、専用のネット回線引き込みを行っており、それなりにまともな装備だったりする。

一番下がWindows Server 2003とLinux ServerおよびUPSやHUBなど。そしてその上がコンソール系、その上がストレージとWindows Server 2003のバックアップ機、その上がインフラとなっている。

4.5畳の部屋だけど、このラックの右側には各種パーツやケーブル類の格納、メディアの管理ができるようになっており、さながらサーバのためのガレージといった感じ。

まぁ単に構築しただけではもったいないので、いろいろやっていきたいなぁ・・・
[PR]
by jinotaro | 2008-05-29 23:05 | server
前回のブログでOSが使用しない領域をつかって2.5GバイトのRAMディスクを生成した。そこでこのRAMDISKの爆速ぶりを実際のプログラムでどのくらい体感できるのかを調査するためにPostgreSQL8.3でTABLESPACEをRAMDISKとHDDの上に生成して比較してみることにしてみた。

1.まずはTABLESPACEを作成。
まずは以下のSQLを発行してテーブルスペースをHDDとRAMDISKの上に生成する。

create tablespace diskspace location 'd:\\pgdata\\'; -- HDD上
create tablespace ramspace location 'r:\\pgdata\\'; -- RAMDISK上

2.テーブル作成
次にテーブルを作成。郵便番号データを突っ込むことを想定。

create table zip_xxx (
zipid serial primary key,
code char(5), -- JISCODE
oldzip char(5), --旧郵便番号
newzip char(7), --新郵便番号
addrf1 varchar, --都道府県カナ
addrf2 varchar, --市区町村カナ
addrf3 varchar, --その他カナ
addrk1 varchar, --都道府県カナ
addrk2 varchar, --市区町村カナ
addrk3 varchar, --その他カナ
tmp1 char(128), --updateテスト用
) TABLESPACE xxxxx;

ここではzip_xxx としてあるが、実際はRAMDISK上のものをzip_ram、HDD上のものをzip_diskとしてテーブルを生成した。

3.データを突っ込む

困った時の郵便番号辞書、ということで、日本郵便のホームページから郵便番号辞書をダウンロードする。で、突っ込んでみたら全然Diskを消費してくれない(30Mもいかない)。全部で122,489行あったのだが、仕方ないので60回Insertを繰り返して734万行のデータにした。この時点でテーブルスペースの容量は1.15GB程度である。

4.テストの準備開始
このままテストすると、3.5Gあるメインメモリ側のディスクキャッシュに全部入ってしまうのでPerlで2.5GBほどメインメモリを消費するプログラムを生成する。これでキャッシュが500MB程度に抑制される。テスト環境は以下のとおり。

CPU: Core2Duo E6600(2.4GHz)
Memory: 6G(OS:3.5G RAMDISK: 2.5G)
OS: Vista Ultimate
HDD: Seagate社製 ATA規格 750GB(ST3750640A)

■テスト1
730万行のデータをそれぞれの間でフルコピーしてみる。

RAM->DISK: 225.29秒
DISK->RAM: 191.407秒

■テスト2
全件カウントする。
select count(*) from zip_xxx;

RAM: 6.75秒
DISK: 17.48秒

■テスト3
gruop by何ぞ使用。
select addrf2,count(*) from zip_xxx group by addrf2;

RAM: 5.53秒
DISK: 17.78秒

■テスト4
インデックスのないフィールドにフルテキスト検索をかける
select count(*) from zip_xxx where addrf3 like '%キタ%';

RAM: 4.36秒
DISK: 17.42秒

■テスト5
百万行を超えるデータに対してアップデート
update zip_xxx set tmp1=newzip where addrk1 like '%大%' or addrk1 like '%福%' or addrk3 like '%北%';
この条件で1,107,180行更新された。

RAM: 227.13秒
DISK: 410.97秒

■■■ 感想 ■■■

思ったほどRAMDISK上へのDBアクセスが速くないというべきか、HDDでも十分速いじゃんというべきか。電源断と同時に中身が消えてしまうリスクを背負うほど早くないのね。今回使用したHDDは旧世代でATA規格ということもありそんなに早くはない。DBのアクセス時に重要とされるランダムアクセス性能がベンチマーク上では100倍以上速いはずなのにそれが生きてこない結果となった。これならSASのHDDをRAID0で使ったほうが運用は楽だし、速度と運用のバランスがとれそう。

まぁそれでもSELECTで3倍、UPDATEでも2倍程度高速化しているのは立派である。データウェアハウス的な使い方をするならば有効でしょうね。なんとなく今回の結果には納得がいっていないので、そのうちMySQLか何かで追試します。
[PR]
by jinotaro | 2008-05-12 10:01 | server
 x86アーキテクト上で仮想86モードを使う限りは4GBまでしか扱えない。Windows XPでも32bit版Vistaでも3~3.5Gまでしかメインメモリを使うことはできないのはそういうわけだ。しかし、CPUのアーキテクトとしてはPentium ProからPAE(物理アドレス拡張)が追加になり、36bitまでの物理アドレスが扱えるようになった。この4GB超の空間は32bit版Windowsではメインメモリとして使うことはできないが、直接メモリアドレスを指定することで、そのメモリをRead/Writeすることはできる。そのためのAPIも用意されている。それを利用してOSがメインメモリとして使えない空間をRAMDISK化しようというのが"Gavotte Ramdisk"というフリーソフトである。

以下の手順でセットアップした。

1.ダウンロード
 まずはGavotte RamdiskのHPからダウンロードする。

2.ZIPファイルを展開する。
 C:\Program Files\rramdisk以下に展開した。
3.レジストリを変更
 展開したファイルの中にあるram4g.regをダブルクリックしてレジストリを変更する。
4.ramdisk.exeを実行する。
 Install Ramdiskボタンをクリックし、RAMDISKをインストールする。

5.設定する。
 DiskSizeは特に指定しなくても、OSが使用しない余剰領域があれば勝手に使ってくれる。たとえばデフォルトの16MBのままでも6G バイト積んでいる自分のマシンの場合、OSが使用している3.5G以外の領域(つまり2.5G)をRAMDISKとして割り当ててくれた。Driver LetterとMedia Typeは適当に。

これでRドライブとして2.5GのRAMDISKが生成された。あっさりとしたものである。ベンチマークを取ってみた。環境は以下のとおり。

CPU: Core2Duo E6600(2.4GHz)
Memory: 6G(OS:3.5G RAMDISK: 2.5G)
OS: Vista Ultimate

■HDD(Seagate ST3750640A)
HDD Benchmark

■RAMDISK
RAMDISK Benchmark

みたとおり、爆速である。これで
Windows起動時に自動的にRAMDISKを作成(←これはありました)
・Windows起動時・シャットダウン時に自動的にリストア・バックアップ
してくれる機能が付いてくれれば最高なのになぁ。

※ RAMDISK上にDBを作って色々やってみました
[PR]
by jinotaro | 2008-05-12 02:11 | pc

カーナビ購入

カーナビを買い換えた。またカロッツェリアのCYBER NAVI。これ以外使ったことない。今回買ったのは最新型の最上位モデルだが、毎年6月くらいに新型が出るせいか、20万以下で大安売りされていた。思わず購入。

ちなみに今まで使っていたのは5年近く前に購入したAVIC-ZH9MDで、今回購入したのはAVIC-ZH099G。どちらも2DINに収まるタッチパネル式のCYBER NAVIである。

まだそんなに使い込んでないけど、今まで使っていたナビと比較してみたり。

■■ よくなった点 ■■

■BLUETOOTH
 携帯とワイヤレス接続ができるようになった。これのおかげで別に取り付けていた通話用のハンズフリーユニットが要らなくなった。また、CDの楽曲情報(アーティスト名やアルバム名、楽曲名など)・天気情報や渋滞情報などもワイヤレスでネットから取得してくれる。もちろんパケット代はかかるけど、このまま使うと1か月に+1000円弱くらいだろうか。ちなみにBLUETOOTH対応は一つか二つ前の機種からしてるかもしれない。
■スマートループ
 携帯でネット接続して渋滞情報を送受信してくれる。これが一番うれしいかも。エンジンをかけてナビが起動して携帯とBLUETOOTHで自動接続すると、ネットから渋滞情報などをダウンロードする。おかげでVICSなどが交通情報を拾わなくてもいきなりマップ上に渋滞情報が出るようになった。情報量もVICSの5倍らしい。またこっちの走行情報をサーバに送ることでこれからの渋滞予測に役立ててくれるらしい。10~20分ごとに更新してくれる。
■CD→HDDの転送が4倍速
 地味な機能だけど、今までは再生と同時にHDDに録音しかできなかったのが、バックグラウンドで4倍速で録音してくれるようになった。何気にありがたい。
■画面がWVGA化?
 きれいになって情報量が増えた。もっとも使い勝手向上にはほとんどつながっていない。
■地デジ対応
 別に使わないのでどうでもいいんだけど。運転中には見れないし、うちの相方もTVは見ない。ただ、電波はめちゃくちゃひろう。半地下の駐車場や鉄筋コンクリートの建物の中でもひろう。
■音声認識
 これは初代から付いている機能だが、音声認識率が向上している。電話番号検索などはもう音声だけで確実に認識するようになった。
■自車位置修正
 これも地味な機能だけどありがたい機能。たまに高速を走っていると、並行している一般道を走行していると誤認識することがある。その時に音声入力「自車位置修正」一発で、修正することができる。誤認識されないのが一番だけど、旧機種では首都高でよく誤認識していただけに、この機能はありがたい。
■データ更新
 今回買い換えた一番の原動力。パイオニアに送らなくても、自宅でDVDを使用してHDD内の地図の更新ができる。
■オービスデータ更新
 今までの機種はオービスデータをCD-ROMで購入してインストールするしか方法がなかったが、新しい機種は携帯でネット接続して購入&ダウンロードが可能になった。まぁおいらは知らなくてCD-ROM買っちゃったけどさ・・・

■■ 悪くなった点 ■■
あまりない。たくさんあったら嫌だけど。

■メニュー階層が深くなった
 行先ボタンなど減っているボタンもあり、同じことをするのに、手順が複雑になっている操作がいくつかある。これは音声入力のメニューも同じ。いきなり「渋谷駅へ行く」などで目的地を音声入力できなくなった。交通情報を聞けるボタンが無くなったのも痛い。

■■ よくわからない点 ■■

■リモコンが付いた
運転手が使う簡易なリモコンとは別に、携帯電話と同じサイズくらいの多機能なリモコンが付いている。といっても音声認識でほとんでカバーできるのと、タッチパネル操作ですべての操作ができるのに、なぜリモコンが必要なのかが理解不能。

今のところこんなところかな。もうちょっと使ってみたら追記するかも。

*追記

2008/5/8
■■ 良くなった点 ■■
■MP3の取り込み
 Windows用の専用ソフトでコンパクトフラッシュにコピーしてあげる必要はあるものの、MP3とWMAをHDD内にそのまま取り込めるようになった。
■■ 悪くなった点 ■■
■ルート検索が遅くなった
 新規ルートの検索やりルートが前の機種に比べて倍近く遅くなっている気がする。たぶん扱う渋滞情報などが増えたせいだとは思うが、これはいただけない。
[PR]
by jinotaro | 2008-05-02 09:13 | car