lu ru
WWWサーバのパフォーマンス改善
(注意:下記文書のベースは 1996年5月に書いたもので、今では古くなった 内容も含まれます。)

* 困った WWW サーバ

何と言っても最近は、猫もしゃくしも「インターネット」「マルチメディア」 で数多くの WWW サーバが立ち上がってきています。細かな情報発信を、情報 を持っている組織や人が自らの手で行なうというのは、非常に良い事です。こ れらの情報発信が、ブームとは言え各方面に及び、網羅的な情報が得られる状 況に向かっているのは大歓迎です。願わくば、単なるブームで終らせるのでは なく、これら情報発信がある世界を生活基盤として定着していってほしいもの です。

さて、最近ネットサーフィンしていると、困ったことにページが表示される までに非常に時間のかかるサイトを目にする事があります。利用者からすると テンポ良くいろいろなページを見たいのに入口で待たされてしまう。これはと てもストレスが溜ります。また、それだけでそのサーバの心象を悪くして、見 てくれる人が減ってしまいます。これでは、せっかくの情報発信が入口の悪さ だけで台無しになってしまいます。

* WWW サーバのパフォーマンスを改善する

では、どうすれば良いのでしょうか?

私のこれまでの経験から、次の点の改善によりかなりレスポンスが改善され ます。参考にして、快適なページを増やしていただければうれしい限りです。


・画面に張り込むイメージは小さく、必要最小限にしましょう

必要以上に大きいイメージは転送が遅くなります。GIF を作成する 際には、イメージの質が損なわれない程度にぎりぎりまで減色します。256 色 が一般的ですが、64 色や、場合によっては 16 色程度にまで色数を落しても 問題ない図も多くあります。イメージの大きさ自体もなるべく小さめにしましょ う。また、必要以上にべたべたと多くのイメージをならべ過ぎるのも遅くなる 原因です。見た目を美しくする事は悪い事ではありませんが、少ないイメージ でより美しく見せる方が賢いでしょう。


画面に張り込むイメージには大きさを指定しましょう

意外に実施しているページが少ないのがサイズ指定です。 (面倒だというのが原因だと思いますが…) 一般に HTML でイメージを取り込む際のタグの記述は、
<IMG SRC="image.gif" ALT="^_^;">
とされていると思います。こうすると何が起きるかと言えば、例えば Netscape Navigator 等のブラウザはこれを見ると、図を張り付けるという事 がわかるので、図を取りにいこうとします。ところが、図の大きさは図を取っ てこないとわからないので、それ以降の画面のデザインが出来ません。そのた め、例えばページの先頭にイメージを張り付けると HTML を全部取ってきても 図を取り込むまで、画面には何も出ないという事になります。
そこで、HTML の中で図の大きさを指定しておきます。例えば上の例の image.gif が 縦 50 ピクセル、横 200 ピクセルだったとすると、
<IMG SRC="image.gif" ALT="^_^;" WIDTH=200 HEIGHT=50>
と記述します。WIDTH や HEIGHT 属性はもともと図を拡大・縮小して表示す るための機能なのですが、それを原寸のままの大きさで指定する訳です。 こうする事で、HTML が転送された段階でイメージだけ抜けた文字の画面の レイアウトが即座に表示され、その後ゆっくりイメージが表示されます。次の 画面に進みたい人は、すぐに進む事が出来て快適な操作感となります。 (このページのグレーボール「*」のイメージ等をサイズ指定しています。 )

注:最近の Internet Exproler の場合サイズが不明でもとにかく 表の枠だけ表示してしまって後からサイズ調整するようになっています。 よって、「表示が遅い」というより、「途中段階の表示がイマイチ」に なります。 ただ、世の中 IE ユーザだけじゃありません。 みんなの事を考慮した方がベターでしょう。 (2001.1.13追記)


イメージはなるべくインターレース表示にしましょう

インターレース表示というのは最初に概略 が表示され、段々と表示が細かくなっていくというものです。これも、なるべ く短時間のうちに概略だけでも見せてしまう事で、みかけ上のレスポンスを改 善しています。 PhotoShop などの画像加工ツールで画像を保存する際に、 インターレース表示での保存が選べます。 (2001.1.13追記)

ここまでは、各ページのコンテンツの作り方についてのポイントでした。次 の項目は、実は WWW サーバになっているマシンの OS それ自体の問題点の改 善についてです。サーバ管理者の方に読んでもらいたい項目です。

UNIX をお使いの方はカーネルパラメータ SOMAXCONN を増やしましょう

さて、UNIX の世界では NCSA httpd, CERN httpd (W3C httpd) 等が フリーの httpd として配布されており、多くのサイトがこれらの httpd を用 いて WWW サーバを運用しています。ところが、これらのサイトの一部では、 マシンの負荷はとても軽いのに、稀にどうも WWW のレスポンスが悪くなる 時がある。下手をすると、プロセスがちゃんと動いているのに全くつながらな い。という現象が発生する事があります。どうしてでしょうか?
これらの httpd ソフトウェアが悪いわけではありません。実は、UNIX のソ ケットには TCP の接続を待ち受けるためのキューの長さの上限を規定してい るパラメータが存在します。BSD の世界では SOMAXCONN と呼ばれているもの です。この値が不足していると、(1)インターネットのようにパケットの伝搬 遅延があるネットワークから、(2)HTTP のように頻繁に接続が発生するアクセ スを行なうと、接続できなくなるという事象が発生します。HTTP では特に接 続・切断が頻繁に発生するために問題が顕在化しました。
歴史的にこの値はデフォルトで5になっています。詳細は省略しますが、5 では不足で35程度必要になります。アクセスが極めて多いサーバでは、もっ と多くする必要があります。

注:小規模サイトは関係無いし、最近の UNIX は WWW サーバ用なんて 当たり前なので最初から大きめになっているようです。 まあ、あまり気にする必要は無いでしょう。 (2001.1.13追記)



[ホームページへ戻る] ・ [いんぎらーっとしまっし Part2] [ねこだま掲示板2] [ねこだまについて] [カップルズ・バイオリズム]

1996.5.17 Written by , all rights reserved.

lb rb