トップ 最新 追記

のろのろのろ雑記

2006|05|06|07|08|09|11|12|
2007|01|03|04|05|10|
2008|01|02|03|04|05|06|08|09|10|11|12|
2009|02|03|04|05|
2012|08|09|11|12|
2016|04|09|11|

2006-08-19

_ [P2PQ]リリース前のチェック

 リリース前にチェックしたつもりがバグバグ。間に合わないならリリースを遅らせる方向にして、もう少しチェック工程を見直したほうがいいかも。不具合を直したつもりが別の不具合も発生、さらに1つは直ってなかった、という展開でだいぶ気が滅入りましたが、某氏のINI読み書きクラスに感動してそんなことはもう忘れました。


2006-08-22 雷雨

_ [気象]雷雨

 午後2時過ぎから雨が降り出して、しばらくすると雷が。いつもは短時間で止むのですが、今日の雷雨は1時間以上続きました。雷があまりにも頻繁に光っては鳴るので、その度にビクビクすることもなく(というか慣れて)、うんざりしました。


2006-08-26 おかしなサウンドデバイス

_ [PC][音楽]おかしなサウンドデバイス

 現在使用しているノートPCのサウンドデバイスは Conexant AC-Link Audio なのですが、音楽の再生を一時停止すると、何故かCPU使用率が30〜40%になることがあります。再現するのは次のパターン。

  • その1
    1. DirectSound出力で音楽ファイルを再生する。
    2. WaveMapper(WaveOut)出力で音楽ファイルを再生する。
    3. WaveMapper(WaveOut)出力の再生を停止。
    4. DirectSound出力の再生を一時停止。
  • その2
    1. WaveMapper(WaveOut)出力で音楽ファイルを再生。
    2. WaveMapper(WaveOut)出力の再生を一時停止するか、停止してもデバイスを開放しない。

 実際に「その2」を行ってパフォーマンスモニタで確かめてみました。

 確かに一時停止するとCPU使用率が上がっているのですが、ヘッドフォン端子に何かを接続していればその現象は起こらないようです。タスクマネージャのパフォーマンスタブを見ると、どうも「カーネル時間」として消費しているらしいので、サウンドドライバが怪しい気がするのですが・・・ 謎です。

 おまけ:カーネル時間として消費している分はタスクマネージャのプロセスタブには現れないようで、CPU使用率が高いにもかかわらずSystem Idle Processが90%以上でした。


2006-08-27 UPnPでサーバーメンテナンス中もレスポンスを返す方法(条件付)

_ [PC][Web]UPnPでサーバーメンテナンス中もレスポンスを返す方法(条件付)

まえがき

 いわゆる「自宅サーバ」を構築・運営されている人はそう多くないと思います。p2pquake.ddo.jpも1台で細々と運営しています。

 が、サーバのメンテナンスが必要となった場合、メンテナンス中はアクセスを受け付けられません。「複数台でロードバランサ構成組んでるぜ!」と言う人には問題ありませんが、そうでない人にはちょっと困った問題です。DDNSのオフライン転送機能はDNSキャッシュ等の影響で待たされるし、独自サービスは転送出来ない。特に「P2P地震情報」がベータ2だった頃は、1台のサーバでピアのコネクションを全て管理していたので、(再起動の数分間でも機能が機能なので)切実な問題でした。

 …などと悩んでいたところ、「ルータのアドレス変換で別のマシンに飛ばす」という方法を思いつきました。が、設定を変更するとTCP/IPセッションが全て切れてしまう(らしい)謎のルータで、これは使えません。

 そこでテレビショッピングのごとく登場するのがUPnP。ルータの再起動やTCP/IPセッション断もなく動的にアドレス変換が出来ちゃうスグレモノ。これを使ってサーバへのアクセスを別のマシンに振ってしまえば、サーバを再起動しても別のマシンからレスポンスが返せる… というわけです。

方法 - 用意するもの

  • メンテナンスするサーバ
  • UPnPのアドレス変換を優先するルータ(例:WHR-G54S)
  • メンテナンス中に稼動出来そうなマシン(サブサーバと呼びます)
  • UPnPCJ(梅と葡萄と林檎園)

方法 - 手順

  1. サブサーバに必要なソフトウェアやデータを突っ込み、稼動。
  2. UPnPCJを使い、サブサーバにアクセスを振る(ポート開放)。
  3. サーバをメンテナンス。
  4. UPnPCJで、アクセスを振ったのを削除(ポート閉鎖)。またはサーバにアクセスを振る。
  5. サブサーバの稼動終わり。

それだけ。

 単純に「メンテナンス中」と返すもよし、全データをミラーしてメンテナンス中と思わせないもよし。あるいは、面倒なのでメンテナンス中はどうでもいいや、と開き直るもよし。