■サーバーの安定化■ |
HOMEへ
■ 擬無停止サーバー化
UNIXやLinuxはほぼ無停止の環境が出来るそうです。
私もWinで無停止サーバーを構築したくて努力はしました。が、最長で2週間程度で問題が出てきました。
おそらくWin特有のリソース未解放やスワップファイルのフラグメントが原因と思われます。
またウィルススキャン+Dice+AN HTTPD+メール+FTPなどの常駐ソフトをスタートアップに登録して
同時起動させると…どうも不安定。
結局、私の実力ではWinの無停止サーバー化はできませんでした。
でも擬無停止サーバーは出来ました。
その方法は…単に再起動するだけです。
しかし毎日手動で再起動+手動ソフト立ち上げでは手がかかって困ります。
そこで時間差スタートアップ+自動再起動をフリーソフトを利用し 完全自動化+安定化+擬無停止 に成功しました。
★私が実践している再起動は…強制再起動です。
理由:普段安定して動作しているソフトも何かの原因で「応答なし」になる場合があります。
こうなるとお使いのOSによって普通の再起動コマンドではパソコンが再起動しません。
したがって応答のないソフトも強制的に終了させる「強制再起動」としました。
★ 実績 WinME+メールサーバー(2880アクセス/日)+FTP(288アクセス/日)+一般作業環境で1年以上ハング無し。ノーメンテナンス。
★ 実績 Win2000+HTTP+メールサーバー+FTP環境で数ヶ月以上ハング無し。ノーメンテナンス。
★ 実績 Win98 各方面からの情報により問題なく安定稼動との連絡を頂いています。
共に継続運転中!
■メモリ管理についてのTEST 2005.01NEW
スワップファイルやページングファイル、ワーキングセット、スタンバイリスト等々ご存知ですか?いずれもメモリ管理で重要な役目をしています。
Windowsの場合プロセス(アプリ)毎にページングファイルを作成し物理メモリとデーターのやり取りを行っています。
このページングファイルが曲者のようでして例えばhttpd(Webサーバー)やファイアーウォール、ウイルススキャンなど常時アクセスしているプロセスのページングファイルって増加し続けるんですよ。アクセスの履歴などをページングに収めているかのように。
本来は停止したプロセスのメモリやページングは時間と共にクリアされる仕組みなのですが上記のプロセスはサーバーである以上止まらないプロセスです。
Windowsは元々オフィス用途なので1日に1回はパソコンを停止(=ページングのクリア)させるのが本来の仕様なのでしょう(か?)
(この辺はUnix系のメモリ管理と違うように思います)
すなわちメモリやスワップ領域を拡張しても延命しているだけでいずれはメモリを使い果たしハングって構図になってしまいます。
そこでhttpdなどの常駐プロセスを10秒程度停止しページングファイルのクリアなどを試みています。
Anhttpdはページングファイルのサイズを相当縮小してくれましたが一部の常駐プロセスは変わらない場合もありました。
曲者のページングの仕組み。これらを煮詰めればWindowsでも無停止稼動が可能な気がしてきました。
□ヒント
DiCEやタスクなどで10秒程度停止する時間を設定する(停止→10秒後起動)。
停止によりメモリ内のフラグメントが発生する懸念がある→メモリフラグソフトなどを利用してみる。
■ ソフトの入手
stask Windows 95/98/Me/NT4/2000/XP
PC起動時に複数のソフトを間隔をおいて(時間差)起動できる。
スタートアップでは同時に起動しちゃいますよね。
常駐しない(コンピューター使用中、急に何らかのタスクが働き出す心配がない)。
頻度の設定が出来る。
SHUTDOWN.EXE RELEASE 2 Windows 95/98/Me/NT4/2000/XP
Windows自動終了サポート用のユーティリティー。
Windows2000/NTプライビレッジシャットダウン機能に 対応。
□SHUTDOWN.EXEは設定によりポップアップ窓が出るようです。
どうも「exitw288」の方がお勧めな気がします。2003.10.11
上記の2つのソフトで実現できます。
□ 以下は不要ですが便利ツールとして紹介します。
FWatch.exe Windows2000 Windows98 WindowsNT
監視するフォルダとファイルの種類を指定してファイルの作成と更新を監視します。
作成や更新が行われた場合、指定されたアプリケーションを起動します。
WindowsNT4.0/2000ではサービスとして起動させることも可能です。
■ 概要
1 PCが立ち上がる。
2 OSがスワップファイルを作成する(HDDがジージ鳴ってる状態です)。
★ この状態の時、スタートアップなどで複数同時起動すると不安定になる場合がある。
3 スワップ作成が終わったら(HDDの音が止まる)、ソフトを1つずつ起動させる。
★ ソフトによってはHDDを使う場合があるので、やはり音が止まるまで次のソフトは起動しないこと。
4 定時(夜中)にPCを再起動させる→1に戻る
これを自動化します。
■ 設定(各ソフトは解凍済みとする)
まず私の設定を公開するにあたりFWatchの説明が必要です。
不要と思われる場合は読み飛ばして下さい。
これは特定のフォルダーの変化を監視し変化があった場合任意のプログラムを起動できます。
私の場合はFTPで特定フォルダーに空のnow.txtを送りFWatchがnow.txtを発見したら「PCをリブート」って感じで使っています。
要は遠隔再起動ですね。
使用目的は…外からサーバーにアクセスした際、「どうも調子が悪い、再起動した方が良いみたいだ」なんて経験がありますが
仕事中は自宅に戻れませんしね。当然回線の不調でFTPが出来ない場合やOSの完全ハングの場合は何もできませんが。
□ FWatch設定
1 まず、Cドライブに「reboot」と言うフォルダを作ります。
後々、rebootフォルダにFTPソフトを利用してnow.txtファイルを転送します。
FWatchはこのnow.txtの存在(正確にはタイムスタンプの変化)を監視します。
2 FWatchを起動し下記の設定をします。
監視フォルダ c:¥reboot
監視ファイル now.txt
監視の方法タイミングは 10、1000で良いでしょう。
実行アプリケーションはshutdown.exe −rf now
★先に紹介のSHUTDOWN.EXEを指定 オプションは−rf now (即強制再起動)
□exitw288の場合のパラメーターは /Reboot /Force です。
では本題に入りましょう。
sTask設定をクリックし各ソフトを登録する。
★ 上の図のようにこの画面で設定しても反映されません。
2 一旦デフォルトのまま完了にしトップ画面から再設定します。
3 DiceをWクリックし高度な設定を変更しましょう。
★ ここでの30秒は…該当プログラム(Dice)を起動させるまでの待ち時間です。
このstaskのみをスタートアップに登録します。
PC起動後、staskが起動、ここから30秒後にDiceを実行。こんな動きになります。
私の場合はHDDの音が無くなるまで30秒ほど要しました。
そして(私の例ですと)Diceが実行終了後Httpdに実効権を渡し、15秒後にHttpdが起動。
時間の設定は実際にPCを起動しHDDの音が無くなる時間を確認の上設定して下さい。
4 これを必要分だけ登録を繰り返します。
■ 以下、私の設定です。
★ Xmailはサービスで起動します。サービスのコマンドでの起動は「net」を使います。
★ プログラムによってはbatファイルに書かないと起動できない場合もあります。
★ 最終的には
■ staskをスタートアップに登録
★ リンク先にオプションを追加します。「/ start」 これはstaskに登録したプログラムを自動的に順次起動するオプションです。
■ 自動(定時)再起動
WinNT系ですとタスクが標準であります。
ここに夜中(私の場合は4:30)に再起動すべく先のSHUTDOWN.EXEを登録します。
Exitw288の場合は 「c:\exitw288.exe /Reboot /Force」など。インストールしたフォルダを正確に指定してくださいね。
。
時限サーバーを作りたい場合はBIOSが自動起動に対応していれば可能です(例 8:00〜20:00までの間サーバーとして稼動させる)。
図はExitw288での「強制電源OFF」設定です。
さらにBIOSの自動電源ONを設定します(BIOSが対応している場合)。マザーボードにで名称が違いますが「POWER
MANAGEMENT」項目あたりに時間を設定する部分があればそれが定時起動と思われます。
例1
例2
★ タスクを使わなくてもDiCE(IP更新ソフト)でも同様のスケジュールが登録できます。*DiCEのシャットダウンには「強制〜」がないようです。
以上で私の環境で擬無停止サーバーが完成しました。
SAO「同じ自宅サーバー作ろうよ」計画! |