サーバ性能の余裕がもったいない
今日は帰りの電車ですることがありませんでした。
普段は本を読むかPDAでゲームするかしながら
東京メトロに揺られるのですが、そのどちらも忘れました。
そういうわけで何か考え事でもしようかと思ったのですが、
ぼーっとしてしまいました。
途中で「ああ。ぼーっとしてるな。なんかもったいない。」
と思ったのですが、そんなことを考えているうちに
ふと「そのうちカーズは考えるのをやめた。」
という一説を思い出し、ドドドドドな時間を過ごすことができました。
赤石って最後はマグマに落ちたんだろうか、
それとも宇宙に吹き上がられたんだろうか、
関係ないけど赤石と蒼星石って似てないかな、全然似てないな。
という本気でどうでもいいことを考えている時に最寄り駅につきました。
こころなしか電車のドアが開く音が「ドッバアアアン」と聞こえました。
それはさておき、企業のサーバは調達に際して性能に余裕を見て購買されます。
その余った分というのが有効活用されていない事例があるように思います。
例えばメールサーバであれば、朝の時間帯にピークが発生し、
お昼休みには主に社員間のコミュニケーションでピークが発生し、
夕方から帰りがけにメールを書くためにピークが発生します。
そのピークを裁ききれるようにハード性能を決定するため、
これ以外の時間にはCPUなどの資源が余っていることになります。
家庭用PCであれば、余った性能をたんぱく質の構造を解析したり
宇宙からの電磁波に人為的なパターンが含まれていないか解析したりする
グリッドコンピューティングに参加させるという試みがあります。
いくつかの大学では、構内に設置されている大量のPCを組み合わせて
大型計算機のように振舞わせるというような試みをしているそうです。
しかし企業システムのサーバではそのようなことは難しいと思われます。
データセンターの場所代や電気代は安くありませんし、
ボランティアのためにシステムがダウンしたら元も子もありません。
それに他人のプログラムを実行するというセキュリティ上の懸念もあります。
そういうわけで、自社向けにサーバ資源の余剰能力だけを使って
なにかおもしろいシステムが提供できないものかと考えていたのですが、
同じような考えを述べているサイトを見つけることができませんでした。
まさか地球上で自分が最初だとは思いませんが、
あまり考えられている仕組みではないようです。
もちろん、今の時点でも昼間はオンライン処理をして
夜はそのバッチ処理をするというシステムでは資源が有効に活用されています。
そこをベースにして、昼の間はオンライン処理をしつつ、
エンタープライズ向け検索エンジンとしてデータにインデックス付けしたり
字句解析したり、データマイニングとしてダイシングしたりドリルダウンしたりする
サブシステムを稼働できないものか、と思いました。
そう言った用途であれば登録されたデータが数日から数週間以内に
有効なデータになってくれればよい、という要件のものも少なくありません。
登録したデータは未処理キューにどんどん放り込まれて
サーバが「今暇だなー」と感じたときにキュー内のデータを解析していく、
ということができそうな気がするのですがどうなのでしょうか。
他には最近話題になったアクセスログ共有/分析サービスの「Pathtraq」のようなものも
即時性が強いとは思えないので有力な候補だと思います。
セキュリティ面からアクセスログを解析するという業務も、
わざわざサーバを立てなくても隙間の時間にやってもらえそうな気がします。
システムと言うとお金がかかるというイメージがあるせいか、
こういうチマチマしたものは語られる機会が少ないように思います。
フルに使い切るというのと逆の発想として、プログラムの実行時に
省電力・低発熱になるようにコンパイルするコンパイラなどが
あってもいいように思いますが、学術研究レベルでしか話を聞きません。
ビジネスマンなら1円を拾うな、という話がありますので、
それならCPUだってパイプライン1段も無駄にしてはならん!
ということを言われても良さそうです。しかし実態としては
CPUの利用時間単位で課金されるシステムでもない限り、
ソースの読みやすさや後からの修正のし易さが優先されます。
ちょっと買おうかどうか迷っている魔法瓶タイプの電気ポットに
「とく子さん」という製品があります。
これは直近何日分か何週間分かのお湯の利用状況を
覚えておいてくれるというところが特徴です。
使わない時間には保温電力を減らし、
使う時間には適温になるように湯温を上昇させるものです。
同じようにして、使われない時刻を割り出して
その間にたまった仕事を片付けるようなシステム構成ができたら
おもしろいのにな、と思いました。