2009-11-19

Diskeeper 2010 の新機能 IntelliWrite がすごい件

Windows のデフラグツールの新バージョン、Diskeeper 2010 (DK14) の新機能 IntelliWrite がすごいので簡易なベンチマークを取ってレビューします。

IntelliWrite とは

IntelliWrite はディスクの断片化(フラグメントの発生)を事前に防止する機能です。日本では 19日に発売となった Diskeeper 2010 に初めて搭載されました。

その昔フラグメントが起こりにくいとされていたくせに、実はめちゃくちゃフラグメントしまくる NTFS の、まさに弱点を補うような機能です。(FAT については追記参照)

IntelliWrite はファイルシステムのフィルタドライバとして実装されています。

IntelliWrite の効果

ベンチマークのテストプログラムは、無駄に並列に、無駄に細切れに、無駄にフラグメントを起こすような形で、ディスクへの書き込みを行なうものにしました。

では、早速、ベンチマークの結果を。

IntelliWrite OS 試行回 所要秒数 超過断片数
無効 Windows XP 1 83 18,810
    2 76 18,810
    3 72 18,810
    4 73 18,810
    5 70 18,810
有効 Windows XP 1 38 30
    2 43 30
    3 36 30
    4 31 30
    5 37 30
IntelliWrite OS 試行回 所要秒数 超過断片数
無効 Windows 7 1 119 18,810
    2 132 18,386
    3 136 18,158
    4 146 18,544
    5 139 18,810
有効 Windows 7 1 51 84
    2 53 84
    3 55 87
    4 60 84
    5 55 85
IntelliWrite OS 試行回 所要秒数 超過断片数

テストプログラムの実行によって発生した超過断片の数と、その所要時間です。Windows XP と Windows 7 の二台は別のマシンで、CPU もディスクもコントローラも性能が異なります。「自動デフラグ」はオフにしてあります。断片数の値にあまりぶれがないのは、かなり地ならしした後の計測だからです。

解説は…いらないかな。IntelliWrite の有効 / 無効のあいだで、所要秒数と超過断片数の違いを見てください。

断片数は桁が三つ違いますから放っておいて、所要秒数の平均値をグラフで見易くすると以下のようになります。(繰り返しますが Windows 7 と Windows XP ではマシンの性能が異なります。Windows 7 と Windows XP の比較ではありません)

DK2020_graph

Netbook や Note PC でバッテリが気になる使い方をしていれば、この違いが強烈に効いてくると分かってもらえると思います。

IntelliWrite を使うと、

  1. 断片化の発生がすごく防止される
  2. 伴なって、ディスク書き込みのパフォーマンスが上がる
    (結果、測定してないけど、読み込みのパフォーマンスは下がらない)

です。

これまでのデフラグソフトは「パフォーマンスを低下させない」あるいは「低下したパフォーマンスを元に戻す」ものでした。しかし Diskeeper 2010 の IntelliWrite はパフォーマンスを向上させます。

この記事、別に回し者じゃないけどべた褒めする気で書いてます。(・∀・;)
もっとも、断片化が発生しないディスク I/O の場合にはそもそも違いはでませんけどね。

見えないとこでも断片化防止

ベンチマークの結果は、もう、なんつーか、びっくりでしょう?ぼくもびっくりしました。

これだけ断片化しまくる NTFS も酷いけどw、対してそれをほとんど阻止する IntelliWrite がすごい。

DK2010_IntelliWrite

Diskeeper 2010 のダッシュボードでは、その日に発生した断片化のうち、IntelliWrite がどれだけ防止したのかが表示されます。このベンチマークのような極端な場合には 99% 表示となりますが、通常の使用では 60% ~ 80% 程度になるようです。公称は最大約 85% と言われています。もちろんディスクの使われ方によりますけど。

Diskeeper 2010 のエディションの選び方

これまで Diskeeper を使ったことがない人にもぜひ試して欲しいので、どのエディションを買ったら良いのか、選び方を書いてみます。この blog の他の記事を見てもらえれば分かりますが、普段はさすがにここまで書かないです…。

Home Edition

安いです。とりあえずあらゆる Windows PC に入れとけ的なエディションです。

それでも、IntelliWrite と InvisiTasking が使えるので、Windows 標準のデフラグや他の似たような製品とは違うのがすぐに体感できると思います。Netbook や Note PC にちょうど良くて、かつ、コストパフォーマンスが抜群だと思います。
いまどきの子ならお小遣いで十分買えるんじゃないかな。

ProPremier Edition

このエディションを最もお勧めします。
ミッドレンジ~ハイエンドのノート PC とデスクトップ PC には ProPremier 一択です。

Diskeeper の特徴的な機能はすべて使えます。サイズ 60GB 以上の HDD ボリュームでは、TVE という特別なデフラグエンジンを利用できます。元はハイエンドサーバ向けのデフラグエンジンでしたが、下位のエディションに降りてきました。いまどき一般的な 250GB 以上とかの HDD 容量があるなら違いが顕著です。500GB ~最近のテラバイト級の HDD を使っているなら下位のエディションとはデフラグ速度の性能差が 4倍~ 5倍くらいは出ると言われています。
母親の PC にこれをインストールしてあげたら 10歳は若返ったと喜んでます。(本人の感想であり効果効能をあらわすものではありませn)
4年前は十ン万円してたエンジンがいまなら一万以下。やりくり上手なあなたならきっと買えますよ。

Server Edition

業務用です。機能は ProPremier 相当です。

IntelliWrite は本来サーバでこそ待ち望まれた機能だと思います。一般的な web サーバ、ファイルサーバ、その他なんでも Windows Server ならこれで(Home Server は除く)。
SQL Server 使ってますか?効きますよ。お父さんなら決済通せるよね。

企業のネットワークで効率的に Diskeeper を展開・管理する場合、Administrator Edition の使用を検討してください。プッシュインストール便利です。

学校・企業で導入の場合、また、クライアント版で 10本以上、サーバー版で 2本以上を導入する場合には、ボリュームライセンスが利用できます。

EnterpriseServer Edition

エンタープライズ用、あるいは廃人用です。

現在最高性能のデフラグエンジン Titan Defrag Engine を積んでます。数年未来を先取りしたい人、デフラグがどうしても好きな人、これで勝てます。2TB のディスクいっぱい繋いじゃってボリューム組んでるとか(棒読み)、痛なんとか Itanium の人もこれです。

DK2010_EnterpriseServer
うふふ。

エディション選択の注意

Diskeeper の各エディションが動作可能な Windows の SKU は購入前に必ず確認してください。トライアル版で試用してみるのが安心です。

Home エディションは Windows のビジネス向け SKU (Vista Business, Vista/7 Enterprise) にはインストールできません。但し、7 Professional にはインストールできます。

今回紹介した IntelliWrite は Diskeeper 2010 の Administrator を除く全エディションに搭載されています。テストプログラムの実行環境では ProPremier を使いました。

以前のバージョンにあったエディションごとの最大ボリュームサイズの制限は、Diskeeper 2010 から無制限になったようです。

SSD も使う場合は "with HyperFast" 版か "HyperFast 追加パック" で。

関連記事

販売元の記事
他サイトの記事
開発元の記事

以下は開発元 Diskeeper Corporation のサイト。ぜんぶ英語です。

テストプログラム

ベンチマークに使ったテストプログラムは以下の Perl スクリプトです。

2009-11-16

yaml-mode

YAML(YAML Ain't Markup Language) を扱うシンプルなモード。

site-lisp 以下に yaml-mode.el をこぴって M-x byte-compile-file しておしまい。

(require 'yaml-mode)
(add-to-list 'auto-mode-alist '("\\.yml$" . yaml-mode))
(add-hook 'yaml-mode-hook
      '(lambda ()
        (define-key yaml-mode-map "\C-m" 'newline-and-indent)
        (setq indent-tabs-mode nil)))

フックとかなるべく custom に入れるようにしていますが、これだけで他いじらないで使えそうなのでそのまま .emacs (実際には ~/.emacs.d/init.el から呼ぶファイル)に入れて済ました。

追記@Tue Mar 02 08:14:44 2010

2009-11-01

NTEmacs からうまいこと GnuPG を呼び出す patch

mew-dist にあった Kentaro KAWAMOTOさんの NTEmacs から Cygwin の GnuPG 1.4.9 を呼び出すのにうまいことする patch を、GnuPG 1.4.10 の util/ttyio.c にあたるように手を入れただけの patch です。1ヶ所 reject されたのを直しただけで、ほぼそのままです。

参考

余談

Cygwin 環境での configure とか make とか子プロセスぽこぽこ作るプロセスが NIS2010 の SONAR に刺さるのでいちいち鬱陶しいです…。現在配布が中止されている 17.1 の問題が解決されて配布が再開されれば、少しは SONAR が賢くなるらしいんだけど。

追記@Wed Oct 20 07:31:55 2010

GnuPG 1.4.11 に当たるように修正。

SKK-JISYO.L.cdb を最新にする

ddskk / skkime から使っている Debian GNU/Linux  lenny の dbskkd-cdb の SKK-JISYO.L.cdb を最新のファイルで更新するメモ。

$ wget http://openlab.jp/skk/skk/dic/SKK-JISYO.L
$ wget http://openlab.jp/skk/skk/dic/SKK-JISYO.edict
$ skkdic-expr SKK-JISYO.edict + SKK-JISYO.L \
> | skkdic-sort > SKK-JISYO.edictL
$ sudo makeskkcdbdic SKK-JISYO.edictL /usr/share/skk/SKK-JISYO.L.cdb

ついでに SKK-JISYO.edict もくっつけて。

追記@Tue Mar 02 08:19:49 2010

追記@Mon Dec 13 23:36:54 2010

辞書が置かれている URL や配布形式が変わっていたので更新した。

#!/bin/sh
# skk の辞書を更新して
wget -N http://openlab.ring.gr.jp/skk/dic/SKK-JISYO.L.gz
wget -N http://openlab.ring.gr.jp/skk/dic/SKK-JISYO.jinmei.gz
wget -N http://openlab.ring.gr.jp/skk/dic/SKK-JISYO.geo.gz
wget -N http://openlab.ring.gr.jp/skk/dic/SKK-JISYO.propernoun.gz
wget -N http://openlab.ring.gr.jp/skk/dic/SKK-JISYO.station.gz
wget -N http://openlab.ring.gr.jp/skk/dic/SKK-JISYO.law.gz
wget -N http://openlab.ring.gr.jp/skk/dic/SKK-JISYO.requested.gz
wget -N http://openlab.ring.gr.jp/skk/dic/SKK-JISYO.edict.tar.gz
wget -N http://openlab.ring.gr.jp/skk/dic/zipcode.tar.gz

# 展開して
echo "extracting..."
gunzip < SKK-JISYO.L.gz > SKK-JISYO.L
gunzip < SKK-JISYO.jinmei.gz > SKK-JISYO.jinmei
gunzip < SKK-JISYO.geo.gz > SKK-JISYO.geo
gunzip < SKK-JISYO.propernoun.gz > SKK-JISYO.propernoun
gunzip < SKK-JISYO.station.gz > SKK-JISYO.station
gunzip < SKK-JISYO.law.gz > SKK-JISYO.law
gunzip < SKK-JISYO.requested.gz > SKK-JISYO.requested
tar xafO zipcode.tar.gz ./zipcode/SKK-JISYO.zipcode > SKK-JISYO.zipcode
tar xaf SKK-JISYO.edict.tar.gz SKK-JISYO.edict
echo "done."

# くっつけて
echo "merging..."
skkdic-expr SKK-JISYO.L \
 + SKK-JISYO.jinmei + SKK-JISYO.geo + SKK-JISYO.propernoun \
 + SKK-JISYO.station + SKK-JISYO.law + SKK-JISYO.edict + SKK-JISYO.zipcode \
 + SKK-JISYO.requested \
 | skkdic-sort > SKK-JISYO.merged
echo "done."
skkdic-count SKK-JISYO.merged

# dbskkd-cdb 用に更新する(手動)
echo "sudo makeskkcdbdic SKK-JISYO.merged /usr/share/skk/SKK-JISYO.L.cdb"