2008/08/30(土)【解決】ファイル共有での遅延問題

2008/08/30 13:13 PC(全般)
以前coLinux+samba > Windows+ファイル共有?で書いた問題がようやく解決した。

この問題はいったい何だったかというと、
・ファイルサーバ側(WinXP SP1)、クライアント側(WinXP SP1)
・クライアント側からNBTでサーバ側のディレクトリにアクセスしたときに発生
・サーバ側のファイル数は600程度で日本語を含む
・ファイルの列挙(要はdir/ls)にかかる時間は4秒程度
・ファイルの列挙に時間がかかるだけで、転送速度そのものが遅くなっているわけではない
・パケットをキャプチャしてみたが余計なパケットは飛んでいないように見える
・dirで確認すると一定の転送量ごとに何かがつっかえている感じ
・サーバー側・クライアント側入れ替えても発生
・クライアント側からLinux+sambaの自宅サーバにアクセスするとこの現象は発生しない
ということだった。

さて、なんでこの問題に再び手をつけようと思ったかというと外部からLinuxサーバを介してWindows機をいじり倒すでsmbfsでlinuxからマウントした際に、この現象が発生しなかったためである。つまりこれはサーバとしてのWindowsの仕様ではなく、なにかしらネットワークやその他の設定が関わっている可能性が高い。あるいは、クライエント側の設定次第で回避する方法があるということだ。

さて、いつも通りパケットキャプチャから始める。使うソフトは定番WireShark(EtheralはWireSharkと名前を変えた)。
前回結論は、
・パケットをキャプチャしてみたが余計なパケットは飛んでいないように見える
だったが何か見落としがあるだろうか。

クライアント側

サーバ側

読み方としては、requestが飛んで、Responseを3分割で返してACKが2回……
確かに余計なパケットは飛んでないように見える。だけどなんだろう、この0.2秒のラグは。これが定期的に発生してるから遅くなっているように見える。ACKの1回目で連結させて、2回目までにラグ? この2回目のACKは余計なものなんじゃないだろうか。

で、調べてみたらそのものずばりな情報が公式にあった。
今回ばかりは私の探し方が悪い。MS悪くない。

リモート ディレクトリの表示はローカル ディレクトリの表示より時間がかかる

この情報整理するとこういうことらしい。
  • 分割応答の際は偶数回目だけACKを送ります
  • もしくは他の接続がくるか0.2秒タイムアウトすると送ります
  • 従ってブロックが奇数個に分割される応答ではブロック応答ごとに0.2mmの遅延が発生します
  • ブロックのデフォルト値は4356byteです
  • TCP/IPのデフォルトMTUは1500byteです
  • ブロックは3つに分割されますので、ブロックごとに0.2mmの遅延が発生する結果こうなります
ワオ、ずばり。

ていうか情報は良いんだけど、これデフォルト値の設定に色々文句があるというか。
いや違うな。この偶数回目だけ返すっていう仕様がなんかだなあ。確かにネットワークの無駄ACKパケットが最大半分に減るけど、それは対処療法的チューニングというか、せめて設定でいじらせてくださいよ。
要約すると、通常、確認応答は、遅延確認応答のタイマ (200 ミリ秒) がタイムアウトしない限り、1 つの接続で受信した TCP セグメントに対して 1 つおきに送信されます。遅延確認応答を構成する、または無効にするレジストリ パラメータはありません。
……。

で、対処方法に挙げられているとおり、
1.[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]に[値の追加]で、
値の名前 : SizReqBuf
データ型 : REG_DWORD
データ : 14596

(データは10 進数)

2.Server サービスを再開(もしくは再起動)
>net stop server
>net start server

で、全く問題が無くなりました! やりい。一応パケットも見てみたけど、想定通りブロックを10個分割で送って5回ACK返しで、すぐに次の通信に推移してるね。

ただね、これ抜本的な解決じゃなくて、多分ジャンボフレームの設定とかいじると、また奇数個分割にマッチしちゃうことがあると思うんだよねえ。ディレクトリのリストが1回で返る場合や、応答の尻尾というか最後でも0.2secつっかえる可能性があるわけだし、なんかクソ仕様な気がしてならないぞ。まあ解決方法が分かったので、その都度対処は出来るけども。

Vistaが対象一覧に含まれていないので、Vistaでは改善したのかしら。

多分Windows Serverを日常的に扱っている人にとっては当たり前の知識(もしくはバッドノウハウ)なんだろうな。

2008/08/30(土)USBメモリの暗号化

2008/08/30 12:00 PC(全般)
USBメモリ紛失への伝統的な対策として、ファイル一個一個を暗号化する方法がある。それはまあ手段としては心得てるけども、いちいちファイルごとにやるのが面倒くさい。大事なファイルをフォルダごとあるいは一定領域でまとめて暗号化しておけないだろうか。

そんなニーズでちょっと調査。

できれば、
  • 出先ではインストール不要
  • 暗号化による速度低下が最小限
  • 同一USBメモリ内に、非暗号化領域と暗号化領域を分けて作れる
  • ある程度頑強(データの損失とかに)
を希望したい。

結論だけど、結局多くの場所でいわれてるようにTrueCryptを使う(使える範囲では)のが一番いいみたい。

余りたくさん試したわけではないのだけれど、以下試してみたものを書いてみる。

TrueCrypt

仮想暗号化ドライブを作ってマウントするイメージ。シンプルな回答やね。USBドライブの中に見える領域を作る必要があるが、トラベラーモードを用いれば、出先でのインストールする必要がない。ただ、ドライブをマウントするというシステムの都合上、閲覧するシステムにTrueCryptがインストールされているか、管理者権限を持っていないと使えない。速度はAESなら十分に高速。

folder encryption → folder protection → folder protector

こいつはフォルダ単位で暗号化できるソフト。一見便利に見えたのだけど、どっかの段階以前はいわゆるWindowsのHackで「ファイルの存在が見えないようにしていただけ」らしく、また、どっかの段階以降で暗号化に対応しつつも有償化してるみたい。最初は良さげに見えたのだけど、調べていくうちに萎えてしまい使う前にあきらめた。

UsbDriveSecureTool

コンセプトは同上でフォルダ・ディレクトリ単位で暗号化できる。ただこのソフト発想はいいんだけど、実装が今ひとつ。暗号化したファイルをUSBメモリ上にキープしておいて、使うときになったらフォルダ内のファイルを一斉にUSBメモリの展開ディレクトリに復号っていう形なんだけど、もうこの説明の時点でなんかすでに吐きそうだよね。
  • 容量を倍使う
  • そこまで早くないUSBメモリへの書き込みを抜き差しごとに大量に行う
  • ファイルの復号単位がフォルダごとでそれ以下にならない
で、使ってみたんだけど、やっぱり実態として、
  • 大変重い(暗号化・復号化とも)。大容量は厳しい
  • ファイル単位でいちいち処理(オーバーヘッドを考えよう)
  • 暗号化・復号化途中でこけるとファイルを喪失する
  • 実際こけた。どうもメモリを使いきってこけたようだ(512MB+WinXP)
  • 一部のファイルが壊れた際に、壊れた暗号化ファイルを見つけて消さないとフォルダごと復号化できない状態になる
ちっちゃいファイルを20個とかそういう世界なら全く問題ないんだろうけど、用途を選ぶのは間違いない。80MBで1万ファイルあるHTMLマニュアルとか、200MBあるアーカイブとかそういうのは全くだめ。

試した範囲では暗号化にも復号化にも30分から見なきゃいけない感じだった。

ということで没。

結論

結果TrueCryptに落ち着いた。問題としてはやっぱり気になるのが管理者モードでないと出先で使えない点。管理者モードをもらえてないマシンで、暗号化ファイルを見るというケースの危険度というか怖さを考えれば、問題ない気もするんだけど……

なので、そういう場面に出くわしたら考えることにして、今回はこれで良しとする。

もしファイル単位でかけるならEDとか極論ZIP、RARパスワードでもそこそこ固いよね。

2008/08/30(土)USBフラッシュメモリの速度測定

2008/08/30 10:46 PC(全般)
USBメモリを買い足したので、既存のものと比較調査。

USBメモリはなんか、メモリチップそのものと基盤の両方に関わってくるのでけっこう速度に差がつくみたい。

元々もってた奴が相当遅いってのもあるし、今回は速度優先で調べて買ったので興味があった次第。

ハギワラシスコム HUD-4GLD-BK 4GB(SLCという噂)

 --------------------------------------------------
CrystalDiskMark 2.1 (C) 2007-2008 hiyohiyo
      Crystal Dew World : http://crystalmark.info/
 --------------------------------------------------

   Sequential Read :   34.790 MB/s
  Sequential Write :   19.647 MB/s
 Random Read 512KB :   34.744 MB/s
Random Write 512KB :    8.754 MB/s
   Random Read 4KB :    8.115 MB/s
  Random Write 4KB :    0.124 MB/s

         Test Size : 100 MB
              Date : 2008/08/28 22:46:23

GENOオリジナル 1GB

 --------------------------------------------------
CrystalDiskMark 2.1 (C) 2007-2008 hiyohiyo
      Crystal Dew World : http://crystalmark.info/
 --------------------------------------------------

   Sequential Read :   10.065 MB/s
  Sequential Write :    2.624 MB/s
 Random Read 512KB :   10.055 MB/s
Random Write 512KB :    1.478 MB/s
   Random Read 4KB :    4.609 MB/s
  Random Write 4KB :    0.028 MB/s

         Test Size : 100 MB
              Date : 2008/08/28 23:47:17
思ってたよりは既存品(1GB)が遅くなかった。ただ、やっぱり不満を感じていたWrite性能は酷いねえ。

とりあえず用途で併用ということで。実際は使う機会は余り多くないのだけど。

ハギワラの4GBの方、最近のUSBメモリには珍しくなんも機能ついてないのね……

2008/08/28(木)Advanced W-ZERO3[es] インプレッション

2008/08/28 11:06 PC(全般)
Advanced W-ZERO3[es](以下ades)を購入した。ちょっと今更だけど。

買うまで

何を目的に買ったかというと、ディジタル「メモ帳」代わり。高いメモ帳だけど、以下のような項目を挙げて選別したらこれしか選択肢が残らなかった。
  • ATOK内蔵
  • QWERTYキーボード
  • 200g以内
  • そこそこきびきび動いて、ぱっと書き始められる。
  • メモ帳(あるいは代用となるエディタ等)が動いて、文字数制限なし
  • 無線LAN、Bluetoothで同期可能(最悪、フラッシュメモリの入れ替えで対応)
  • 2万円以内で一つ
一応検討フェーズをざっと。まず、文字制限や保存・アクセス形態がきつすぎるので電子辞書はダウト。となるとPDA、もしくはスマートフォンしかない。

ATOKと日本語入力を意識すると、やっぱり日本で発売してないやつだときつそう。Linux Zaurusはどうだろうと考えたが、重量・標準機能・液晶解像度あたりでちょっとひっかかる。ATOKも改めて入れるとなるとワンコスト。

で、E-Monsterとかも検討したんだけど、キータッチがいまいちだし、ATOKは入るのかもしれないけど最初からは入ってない。Sofmapの店員に訊いたら、「ATOK何ですかそれ? ソフトですか?」とかいわれてカッとなったのもある。

ということでadesに落ち着いた。

ここまでの内容でだいたい予想がついた人もいるかもしれないが、要は携帯電話として使う気は更々ない。よってこれ、SIMレス(WILLCOMとの契約なし)で運用する。とはいえ公衆無線LANでインターネットできるかなという願望はちょっとだけある。

購入は懐具合にあわせて、オークションアタック。値段としては10k+αくらい。

買った後

さて、買ってみてちょっとさわった感想。

上記の要望のほとんどは満たされていたのだが、困ったことに無線LANからだとActiveSyncができない。Windows Mobileだからなんか共有フォルダ作る方法とかあるだろー、と安易に考えていたらむしろWMだからできない。

閉口してたら福音があって、FtpSvrというソフトでFTPサーバ化する方法があるらしいとのこと。やってみたらできた! できたのはいいのだが、これ全部ディレクトリが見える。セキュリティも何にもないや。立ち上げっぱなしにして表にでないように気をつけないと。

当面これにNetDriveなどをあわせることで、ActiveSyncの代わりにして動かしてみる。エディタはPocketHpte一択かな。

あとは電池の持ちが厳しいようなので、無線LANを切ったりすることでどの程度延命可能なのか調べて見るつもり。極論こいつは通常時電源オフでいいので、1週間くらいは持ってほしいところ。中古だから電池がへたってる可能性もあるし何ともいえないんだよなあ。

2008/08/19(火)SDカード速度比較2

2008/08/19 12:26 PC(全般)
前回の続き。

ちょっと遅くなったけど、SDHCカードを買いたしてみた。

結論だけ言ってしまえば、Colors!の保存速度に関しては体感的に速くならず。作戦は失敗だったことになる。

ただ、ベンチマーク上は相当速くなっているので、どうもボトルネックはカード速度ではなかったらしい。読み側のリーダの部分か、やたら少ないDSのメモリか、あるいはColors!の保存方法に何か独特のものがあるのか。うーんこれ以上は調べられそうもない。

一応以下に新しく買ったSDHCカードのベンチマーク結果だけはっておくことにする。

買ったのはMicro SDHC 4GBだ。最近ADATAが好きなので、今回もADATAを買ってみた。

[ADATA 4GB(class6) / Micro SDHC(Ark)]
FILE_134.jpg

2008/08/19(火)plala DNSの設定変更?

2008/08/19 12:06 PC(全般)
メモだけ。

8/19 11:30現在でplalaのDNSサーバー、
218.47.162.1と218.47.162.9の応答がQuery refusedになっている。
[C:\]nslookup google.co.jp 218.47.162.1
 *** Can't find server name for address 218.47.162.1: Query refused
Server:  UnKnown
Address:  218.47.162.1

 *** UnKnown can't find google.co.jp: Query refused
とりあえず今朝のメンテが続いてる可能性もあるので、しばらく別プロバイダのDNSに設定し直して様子を見ることにする。

そもそも自分の環境は以前plalaだっとというだけで、現在は別のプロバイダに乗り換えている。すぐ戻すかもしれなかったので、ずっと旧設定のままだった。まあそれとは余り関係ないだろうけど。

うーん、やっぱり今のサーパの使った方が良いんだろうな。総合的に考えて。
OK キャンセル 確認 その他