東京電力(12時10分) 3267万kW / 4150万kW (78.7%) 東北電力(12時15分) 900万kW / 1126万kW (79.9%)
関西電力(12時03分) 1788万kW / 2326万kW (76.9%) 九州電力(12時15分) 978万kW / 1280万kW (76.4%)

平成24年2月23日(木曜日)先勝 京都府ふみんの日 うお座

寝たら落ちた・・いや、死んだ、って言いたくない

子供の時から・・・・

ねっとちゃんぷらす(元は網本さん2)を開発していた頃からの話です。

パソコンを覚えて、そして、いきなりZ80アセンブラを覚えたもので、よくプログラムを暴走させることがありました。

今ではデバッカーとか、ハードウェアデバッカーとか、いや、リモートデバッカーとかいう良いものができていますが、当時、デバッカというものは、あるにはあったのですが、実際に使えるものか?といったら、そうではなかったです。

まずは、1に、高速化が急務であった。

まぁ、HDDを繋げてしまえば、FDDベースのシステムは、すぐそこそこ速くはなるのですが、HDDを繋げたからといっても、そう大きく高速化するシステムではありませんでした。

また、後に、MSX turboRが発売されて、約8倍速以上になったもの、やはりそれだけでは高速化の恩恵が受けられないものでした。

そこで、「販売されている」プログラムの根本から見て、以下の部分を変更しました。

  • MSX-BASICでランダムアクセスをしている掲示板データ読み出し部分、解析部分をフルアセンブラにした。
  • 漢字ドライバを、インタレス表示で12×16dotで表示されているものを、12×8dotと非常に荒いものの、見れなくはないが高速で、かつ、chr(32)~chr(126)までをVRAMにコピーし、最低でもVDPにアクセスする回数を8回から2回まで削減し、かつ、可能な限りノーウェイトで動作するようにした。

これだけのことでも、Z80 3.57MHzにおいて、PC-9801VM (V30 10MHz)のテキストVRAM搭載機種と、ほぼ同等、またはこれよりわずかに劣る程度の、描画速度を実現しました。

次は、自分の使っているもののオーバークロック

今、オーバークロックはBIOSの設定からはじまり、適切な電圧の設定と冷却でできるものですが、当時は、BIOSの設定すらなく、電圧の設定もなく、冷却なんて不要なCPUでした。

何が必要かというと、電子回路の知識と、半田ごてが使えるスキルでした。

はんだごてを持っていないうちにとっては、このような方法で、はんだを取り扱っていました。

  • 台所で、都市ガスとコンロで、ペンチに釘を固定したものを高温に熱して、それを本当に水回りあるにも関わらず、気にせずやっていた。

それなんで、夏にやると、死にました。

これで、MSX 3.57MHzが、とりあえず、8MHzと、2倍以上のオーバークロックに成功しています。

非安定駆動のベンチマーク取得用ですと、10.5MHzまで動作しました。

しかし、この時交換した部品は、抵抗1本と、4本足の水晶だけでした。

このときの、モニター、いや、テレビの画面は「白黒」です。

そして、MSX-turboRも出て、そこそこ高速なCPUであったにしろ、まだ速いとは思えず、28.5MHzから37MHz台(最大)安定駆動で35MHz程度で動作させていました。

この時交換したものは、うう、忘れてしまいましたが、バッ活の記事にしてあります。

そして、とってはあったんですが、今年ヤフオクで売却したと・・・

3番目に安定化

うん。実は、8MHz稼働のMSXgは、以外にフリーズしたんです。とはいっても、2日に1度、深夜にずっと稼働させて、落ちる程度でしたので、遅くなれば遅くなるほど人が来なくなるパソコン通信では、特に問題ありませんでした。(責任逃れ?)

しかし、年がたっていくごとに、(まだ10代でも)、やはり少しずつ安定志向に行くようになり、プログラム上でも、ちょこっとアセンブラで組んだ所が万が一こけたとしても、Z80でも割り込みはつかえないものの、例外処理が使えないかな?ということも試して、軽いものなら成功しています。

で、なんで、網本さん2ベースに縛られる?それは、大本がBASICでできている為に、BASIC文法がわかれば、誰でも拡張できることでした。

簡単なメモリマップ

MSX-DOS2ベースでしか動きませんが・・・・
  1. MSX-DOS2が起動し、必要なファイルをRAMDISKにコピーする
  2. BASICに移行し、call.obj*1 を実行し、初期化する。
  3. 更にRAMDISKにファイルをコピーする。
  4. モデム初期化~システム初期化~着信待機・・・

メモリマップ.png
file メモリマップ.txt 2012-05-16(水) 20:44:30 1.3 KB
TOTAL: 16 TODAY: 0 YESTERDAY:0

ところで、タイトルのこと、どうしたの?

そうなんです 寝たら落ちた・・いや、死んだ、って言いたくない

うち、口癖で、「寝たら死んじゃうよ」か、「寝たらちぬの」とかいう言葉を結構発していました。

これは、寝ることによって、常時稼働中のパソコン(=サーバー)が落ちちゃうかもしれないよ。という意味あいでいうほうのが強いです。

ですので、寝たら死ぬという言葉、そのまま、真に受けるとこうなるんです。

  • 寝ていたら、(ひとりで、最低でも自分の)サーバー管理はできないよ

この対処は、次の項目で・・・

レンタルサーバー業者

うん。本格的に、寝たら死ぬお仕事につきました。

しかし、ここで、不思議なことに、プロバイダーという業者でもあるのに 結構コミュニティー重視をするBIG-Netが サーバー運営する上でいろいろとアドバイスをしてくれていたんですね。

Linuxとかそういうことは、特に教えてもらわなかったのですが、 それよりも大事なサーバー管理について、完璧に有志で教えてくれました。

なにせ、メールサーバーに対して、telnetをできるプロバイダーでしたからね。

そこで、今はVPSとかなんやらで、まぁ、サーバースペックが向上したのも あるんですが、負荷で落ちることはほとんどないのですが、本当に 落ちた時に、何ができるか?ということを教えてくれました。

それは、・・・・リセット君 というハードウェアです。

リセット君という商品があるわけではありません。ISAボードに刺す、ただのリレーがそこそこ数のついたハードウェアのことです。

勝手に改名して、リセットちゃん、にしたわけです。

そう、何がしたかったといいますと、リモートで、リセットボタンが、押せれば 良いと考えていました。

その考えは、ずばり的中し、1回だけあったHDDの初期不良以外は、全てリモートのリセットが解決しました。

実は、サーバーの負荷を調べることは、httpアクセスの遅さを計測することで難しくはないのですが、ここは誤動作防止の為にあえて自動化をせず、以下の部分のみ「通知システム」として確率しました。

  • サーバーがダウンしたと思われる時に、うちの自家サーバー内のBEEP (/usr/ports/audio/beep)が鳴りまくる
  • サーバーがダウンしたと思われる時に、自家サーバーから全社員への携帯メール通知

あれ、大事な所、制御していませんよね?

せっかくsuexecしているんですから、ユーザーごとの負荷を見ればいいのにと考えると思いますが、これをすると、サーバー自体を如何に高速に動かすために、無駄な動きをさせることができないからです。

いいかえれば、128Mのメモリを2万円でまぁ、ようやく4枚刺しできるサーバーでは、実現困難だったことです。

結論からして、あめぞうが、相当負荷を使いました。これに何度も悩まされたのですが、最終的には、逃げ・逃げ・ということで、うーん、終息ついたのやらどうなのだかという所ですが・・まぁ、ここだけは、なんとかなった、としか言えないです。涙

今だから思うのですが、suexecを書き換えて、1ユーザーのCGI等の起動数を制限するのは、悪くはないことですが、suexec自体書き換えていた(後述)の、やはりこの処理をしておけばよかったなと感じられました。

suexec書き換えてた?

suexecを書き換えることは、Apacheのセキュリティーポリシーに違反しているのですが、書き換えるというか、うーん、置き換えるのが正しいでしょうか。 そうしないと運営していけなかったのでやってはいました。

  1. httpd (owner www)がデーモンとして、いくつもある
  2. suexec (owner www) が、httpdからCGIとして呼び出される。(ここから違)
  3. wrapper らしい名前のもの (owner root)がデーモンとして常駐し、本来のsuexec の仕事をここで行なう
    ユーザーディレクトリオーナー&パーミッションの監査、ユーザー権限の監査

今思うと、suexec (owner www)と名乗っているものは、2ちゃんの mod_cgidsoに近い実装をすればよかったと感じている


*1 拡張ROMエリアを読む命令が、call xxx だった為、ファイル名までこの名前のまま


このページのトラックバックURL
http://www.daiba.cx/?cmd=tb&tb_id=b9a2a8cc99a15626c4bfce142932327e
リンク元

Diary/2012-02-23のトラックバックはありません。

このホームページは、[お名前.com VPS ]と[さくらのVPS ]で動いています。[Sディレクトリ ]
www.daiba.cx
yahoo 出会い