2006年08月27日 UPnPでサーバーメンテナンス中もレスポンスを返す方法(条件付)
_ [PC][Web]UPnPでサーバーメンテナンス中もレスポンスを返す方法(条件付)
まえがき
いわゆる「自宅サーバ」を構築・運営されている人はそう多くないと思います。p2pquake.ddo.jpも1台で細々と運営しています。
が、サーバのメンテナンスが必要となった場合、メンテナンス中はアクセスを受け付けられません。「複数台でロードバランサ構成組んでるぜ!」と言う人には問題ありませんが、そうでない人にはちょっと困った問題です。DDNSのオフライン転送機能はDNSキャッシュ等の影響で待たされるし、独自サービスは転送出来ない。特に「P2P地震情報」がベータ2だった頃は、1台のサーバでピアのコネクションを全て管理していたので、(再起動の数分間でも機能が機能なので)切実な問題でした。
…などと悩んでいたところ、「ルータのアドレス変換で別のマシンに飛ばす」という方法を思いつきました。が、設定を変更するとTCP/IPセッションが全て切れてしまう(らしい)謎のルータで、これは使えません。
そこでテレビショッピングのごとく登場するのがUPnP。ルータの再起動やTCP/IPセッション断もなく動的にアドレス変換が出来ちゃうスグレモノ。これを使ってサーバへのアクセスを別のマシンに振ってしまえば、サーバを再起動しても別のマシンからレスポンスが返せる… というわけです。
方法 - 用意するもの
方法 - 手順
- サブサーバに必要なソフトウェアやデータを突っ込み、稼動。
- UPnPCJを使い、サブサーバにアクセスを振る(ポート開放)。
- サーバをメンテナンス。
- UPnPCJで、アクセスを振ったのを削除(ポート閉鎖)。またはサーバにアクセスを振る。
- サブサーバの稼動終わり。
それだけ。
単純に「メンテナンス中」と返すもよし、全データをミラーしてメンテナンス中と思わせないもよし。あるいは、面倒なのでメンテナンス中はどうでもいいや、と開き直るもよし。
2006年08月26日 おかしなサウンドデバイス
_ [PC][音楽]おかしなサウンドデバイス
現在使用しているノートPCのサウンドデバイスは Conexant AC-Link Audio なのですが、音楽の再生を一時停止すると、何故かCPU使用率が30〜40%になることがあります。再現するのは次のパターン。
- その1
- DirectSound出力で音楽ファイルを再生する。
- WaveMapper(WaveOut)出力で音楽ファイルを再生する。
- WaveMapper(WaveOut)出力の再生を停止。
- DirectSound出力の再生を一時停止。
- その2
- WaveMapper(WaveOut)出力で音楽ファイルを再生。
- WaveMapper(WaveOut)出力の再生を一時停止するか、停止してもデバイスを開放しない。
実際に「その2」を行ってパフォーマンスモニタで確かめてみました。
確かに一時停止するとCPU使用率が上がっているのですが、ヘッドフォン端子に何かを接続していればその現象は起こらないようです。タスクマネージャのパフォーマンスタブを見ると、どうも「カーネル時間」として消費しているらしいので、サウンドドライバが怪しい気がするのですが・・・ 謎です。
おまけ:カーネル時間として消費している分はタスクマネージャのプロセスタブには現れないようで、CPU使用率が高いにもかかわらずSystem Idle Processが90%以上でした。
2006年07月05日 GbE-PCI2
_ [レビュー]GbE-PCI2 買いました
「苦労と試行」とも呼ばれる玄人志向のイーサネットボード、「GbE-PCI2」を買いました。Realtek RTL8019ASチップで遅いし負荷も高い「LD-PNE20/TA」からの乗り換えです。
外観
パッケージはシンプル、中身も「本体」「Low Profileブラケット」「ドライバCD(8cm)」「説明書(英語)」の4つ。従来のNICと比べてコンパクトです。
ただ、低価格品ということもあって、PCIのピン加工が少々雑でした。ちょっと心配。
使用
早速PCIスロットに差し込むと、あっさり認識。ドライバもすんなりインストールされました。ちょっと拍子抜け。
ギガビット環境がない(けど買った)ので100BASE-TXですが、Celeron 366MHzという非力なCPUにも関わらず、netperfで受信66Mbps(CPU:60%)・送信84Mbps(CPU:75%)、ファイル転送で49Mbps(CPU:45%/UATA-33)と、従来の「ファイル転送で5.5Mbps(CPU:50%)」と比べると大幅なスピードアップと低負荷になりました。
本当はチューニングするべきところですが、これだけでもう幸せです。
その他
"Compiles with PCI V2.2 and 32 bits"とありましたが、要求環境に「(PCI 2.2/2.1)」とあり、実際にPCI 2.1対応の440ZXチップセットで動作しています。また、GigaCheckというユーティリティが付属していて、1000BASE-Tだとケーブルを通る信号の品質が測定出来るようです(100BASE-TXでもExcellent/Normal/Poorのリンク品質は表示可能)。
まとめ
少々雑な所がありましたが、動作は非常に安定しています。価格もCPU負荷も低く、気軽にギガビット環境を準備・構築するには良い選択かもしれません。もちろん、100BASE-TXでも。