« March 2006 | Main | May 2006 »

April 27, 2006

IntelMACでwindowsが動くなら・・・

IntelMACでwindowsが動くなら、逆にWindowsマシンでMacOSを
動かそうとしている人っていないのかなあ、とふと思った。

最近MAC触ってないので久しぶりに触ってみたいなあ。

| | Comments (1) | TrackBack (0)

April 24, 2006

Windowsにおけるソケットの最大値とTIME_WAITの時間を修正しよう

大規模サイトでは1台のサーバで多数のTCPコネクションを扱う場合が増えます。最近のOSでは少なくなりましたが、昔のOSの場合はローカルポートとして割り当て可能なレンジが小さく、場合によってはOSのチューニングをしないとローカルポートが枯渇するなんてことが時折発生していました。といいつつ、現在でもアクセス数の多いWEBサーバがDBサーバに対して非常に多くのTCPコネクションを張ることでローカルポートが枯渇することがたまに見られます。(常にコネクションプール使えればいいんですけどね)

そこで今回はWindowsにおけるソケットの最大値とTIME_WAITの時間を修正する方法をご紹介します。

【前提知識】
サーバが他のサーバなどにTCPコネクションを張るとソケットが1つ消費され、そのときローカルポートが1つ消費されます。サーバにはポート番号が65534しかないのでソケット(ポート番号)は限られたリソースということになります。しかし実際OSはTCPコネクションのために65534個全てをリソースとして活用できるかというとそうではなくて通常制限がかかっています。Windowsの場合は5000がデフォルト値です。すなわちチューニングをしないとWindowsでは最大同時接続5000までということになります。これは大規模サイトにはやや小さいです。

ただし同時接続といってもTCPコネクションの状態がESTABLISHEDのものもあればTIME_WAITのものもあります。TCP状態遷移の説明はここでは省きますが、簡単に言うとESTABLISHEDがTCPコネクション中、TIME_WAITがタイムアウトを待っている状態です。すなわちTIME_WAIT状態のソケットがたくさんあるとそれだけ同時接続可能数が減ってしまうということになります。問題はTIME_WAITがどの程度の時間継続するかなのですが、Windowsの場合は4分がデフォルト値です。これまた大規模サイトには長すぎます。


【Windowsにおける設定変更方法】
 「ソケットの最大数」、「TIME_WAITの時間」はそれぞれ以下のレジストリを変更して設定します。項目がない場合は追加します。

■ソケットの最大数(5,000~65,534の間で設定):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort (DWORD)

■TIME_WAITの時間(30~300秒の間で設定):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpTimedWaitDelay (DWORD)

※設定後は再起動しないと設定が反映されません。


【余談】
今回の設定はあくまでも大規模サイトで必要になるものであり普通のサイトではデフォルト設定のままで十分です。

| | Comments (1) | TrackBack (3)

April 22, 2006

サーバ管理者にプログラミングスキルは必要か?

「サーバ管理者にプログラミングスキルは必要か?」という命題には、一応YESと答えたいと思います。とはいいつつプログラミングスキルと一言で語るにはあまりにも漠然としすぎます。もうちょっと考えて見ましょうか。

【スクリプト作成のためのプログラミングスキル】
システム管理をしていると、簡単なスクリプトが自分で作れると便利なことが多いです。ログデータ編集や大量なファイルの連結、DBバックアップ、バッチ作成等いろいろあります。

ところでスクリプト作成という作業は熟練者がやると簡単な作業なのですが、コンピュータの基礎が危うい人がやろうとするととても難しいのではないでしょうか。使用するコマンド自体は簡単なものの、現場では文字コードの知識、ファイルの知識、DBやネットワークの知識等様々な知識を駆使してスクリプトを作成することになるので実は素人にとって入りにくい世界なのかもしれないですね。

【障害箇所特定のためのプログラミングスキル】
システム障害が発生した際問題の切り分けを行わなければなりませんが、プログラミングスキルがないとプログラム内部まで踏み込めません。主要言語を一通りかじっておくと何かと便利です。

【サーバ管理者はどのようにプログラミングスキルを身につけるべきか】
サーバ管理者の多くはコンピュータ好きで自分専用サーバを持ち自分用WEBサイトを構築していることが多いと思います。こういう人達は趣味でプログラミングをマスターしているので問題ないですが、そうでない普通の職業サーバ管理者の場合は、プライベートの時間を割いて本を片手に実際にプログラムを作ってみる他ないのではないかと思います。逆にそういう勉強に楽しさを見出せない場合は実はサーバ管理者に向いてないのかもしれません。

| | Comments (0) | TrackBack (0)

April 21, 2006

セキュリティ対策はどこまで行えばいいのか

@IT連載3回目が掲載されました。この記事は非常に難産で6時間もかかってしまいました。

http://www.atmarkit.co.jp/im/cop/serial/kanrisha/03/01.html

| | Comments (0) | TrackBack (1)

April 20, 2006

避けられないことは楽しめ!

「避けられないことは楽しめ!」

これは韓国の軍隊でよく使われる言葉だそうです。まったくその通りですね。

ついでにちょっと話しは違いますが、そういえば最近読んだ本で、「アメリカの大学院に通っている学生の中でリーダーシップ力がある人を分析したら感情表現豊かな人が多く、その人たちの行動をもっと分析したらボランティア活動に積極的に参加している人がほとんどだった。忙しい合間でも人生を楽しみ分かち合う精神が重要なんだと気がついた」とありました。

人間の器を大きくするって結局は余裕を持つことと、人生を楽しむことなんでしょうね。

| | Comments (0) | TrackBack (0)

April 17, 2006

リモートデスクトップ接続でコンソールのセッションをコントロールする方法

WindowsXPや2003などでリモートデスクトップ接続しようとすると新しいセッションが作られて接続されます。これは、コンソール上で立ち上げているアプリケーション、例えばタスクで定期的に流されるバッチの状況がリモートでリアルタイムに確認できないことを意味します。

そのような場合は

% mstsc /console

と実行するとコンソールのセッションが取得できます。

| | Comments (0) | TrackBack (0)

April 15, 2006

オープンソースにこだわる人の理由って正しい?

オープンソースにこだわる人に理由を聞くと普通

 1.無料だから
 2.大勢の人が使っているからバグが少ないと思われる
 3.ソースコードが公開されているから安心

という答えが返ってきます。1と2はまあその通りだと思います。しかし3は個人的にちょっと疑問です。オープンソースにこだわっている人で、オープンソースソフトウェアのソースコードを実際に分析したことがある人ってどのくらいいるのでしょうか。私の場合は正直apacheくらいはソースコード分析の経験がありますが、それ以外のオープンソースのソースコードはほとんど見たことがないです。

なのでオープンソースにこだわる理由を聞かれたらかっこいいこと言わずに素直に「無料だし機能に不満もないから」くらいにしておくのがよいのではないでしょうか。(無論ソースコードをよく分析している人は除く)

| | Comments (0) | TrackBack (3)

April 04, 2006

カテゴリー分けされる人達

最近いろいろな人と話していて、なんかこの人はAタイプ,この人はBタイプといったようにきれいにカテゴリー分けができることに気がついた。このカテゴリー、いわゆる血液型や性格といった従来のものとは何だか様子が違うのである。

【発想が同じ】
特定のカテゴリーの人と話すと、何故か皆同じことを話す。発想が同じ。関心事が同じ。話題の結論が同じなのである。

【行動が同じ】
またそういった人達を見ると何故か皆同じ行動を取り出す。まるで何かに操られるような不思議な感覚を覚える。

【結局は情報源が同じ】
何故かな~とずっと考えていてたどり着いた結論は、同じカテゴリーに属する人は皆同じような情報源から情報を仕入れているということである。考えてみればIT技術者は一様にIT系専門のインターネットニュースを見る。専業主婦は一様に昼のワイドショーを見る。金融業界の人は一様に日経産業新聞を読むといった感じである。

ここで考えられる応用は2つ。一つは特定のカテゴリーに属したければ同じ情報源から情報を仕入れること。もう一つは自身の幅を広げたければ人とは違った情報源から情報を仕入れる努力が必要だということである。

| | Comments (0) | TrackBack (0)

April 03, 2006

実践してみてわかったことシリーズその2

今回のテーマは語学です。語学音痴を自称していた私が韓国語を使う仕事に就くようになるまでの話しをしてみたいと思います。

【昔話】
実は私、英語が大の苦手でして、大学の授業で英語を履修したら卒業できないのではないかと思うくらいの恐怖がありました。幸いなことに僕がいた学部は英語以外の語学を第1外国語にすることが可能だったので、当時一番簡単に単位が取れそうだということで韓国語を履修したというのが韓国語を始めた本当のきっかけです。ちなみに今でこそ韓流ブームで韓国語は人気ですが、当時韓国語は超マイナー言語だったんですよ。

授業が始まってからも語学音痴ぶりはすさまじく、多分クラス中ビリから数えたほうが早いくらいの成績だったんじゃないかなあ。そんな感じでした。

その後1年半の履修期間が終わったあとも何故か興味は続いていたようでNHNラジオ講座等を聞きながら独学し、一度勉強したはずの内容をそのとき改めて理解したという感じでした。田舎キャンパスだったので自動車通学だったのですが、通学中ラジオの録音を聞きながら真似して音読するということを繰り返しているうちに基本的な表現を少しずつ話せるようになってきました。

あるとき韓国旅行に行ったときどうしても韓国語を話さなければならないシチュエーションに出くわして恐る恐る話してみたらうまく通じてとても嬉しくなってそれから今までずっと勉強を続けています。その後は韓国系の仕事をしていることもありかなりの場数を踏んでます。

【語学を習得するためには】
語学を取得するには2つのポイントがあると考えています。一つは外国人に話しかけることができる勇気を身につけること。もう一つはとにかく継続することです。

語学は「勉強」と思った瞬間につまらないものになってしまいます。楽しく続けるためのモチベーションを作ることが苦痛な勉強を自分に強いることよりよっぽど重要だと思います。

【語学を習得してみてわかったこと】
どこまでいけば習得と呼べるかはわからないのですが自分の中ではまだまだ先は長いと考えているのでこのタイトル付けは正しくないのですが、まぁそれは置いておいて、ある程度話せるようになって思ったことは、「仕事の上では語学ができるというだけではWordやExcelが使えるのと同様、単に自分の道具が一つ増えるだけだな」ということです。

高校生くらいまでは、もし自分が語学ができるようになれたら一生安泰というくらいすごいことであると考えていましたが、周り、特にうちの社内を見渡すと語学が出来る人が大勢居すぎて全然特別なことではないです。仕事中他の人から「このPCでこのメールはどうやって開くんですか?」というような質問と平行して「この韓国語の単語って日本語に訳すとどういう意味ですか?」と聞かれるようなごく当たり前な感じです。なので「これから語学をマスターして自分が特別な人になってやろう!」などと考えるのであれば他のことを極めたほうがいいかもしれないです。

| | Comments (0) | TrackBack (0)

« March 2006 | Main | May 2006 »