Google の mod_pagespeed で Web サーバを高速化する
「インストールするだけで Web サーバが早くなる!」という Google の mod_pagespeed を、遅ればせながら試してみました。今回は CentOS 5.5 i386 環境でテストしています。
「インストールするだけで Web サーバが早くなる!」という Google の mod_pagespeed を、遅ればせながら試してみました。今回は CentOS 5.5 i386 環境でテストしています。
2004 年の書籍ですが、いまどきのソケットプログラミング―遊んで学ぶ、TCP/IPネットワークの奥義 をお書きになっている 波多さん 作の Wlinee を使うと、ネットワーク上で遅延やロスを発生させたり、帯域を一定の状態にポリシング出来ます。Wlinee を使うと、遅延やロスの多い、品質の悪い回線を Windows で手軽にエミュレート出来ますので、悪条件化でのネットワークテストを実施することが出来ます。Wlinee は下図のように、遅延やロスを挿入したい位置へ Wlinee PC を物理的に割り入れる(挟む)構成にして利用しますので、必然的にふたつの NIC がインストールされた Windows PC が必要となります。
今回は Windows XP SP3(32bit)環境に Wlinee をインストールしてみました。尚、波多さんは Wlinee 以前に Linux で動作する Linee もお書きになっています。
Wlinee を動作させるには、以下のふたつが事前に必要となりますので、予めインストールしておきます。.NET Framework 3.5 であれば 2.0 を含んでいます(最新の 4.0 は下位バージョンを含んでいません)。
Wlinee は Sourceforge のプロジェクトページ からインストーラをダウンロード出来ます。インストーラがあるので、インストール自体は簡単です。.NET Framework 2.0 と WinPcap がインストールされていれば、起動するはずです。起動画面は以下の通りです。
Cisco ルータはデフォルトで TELNET サーバとして動作しますが、設定することで SSH サーバとしても動作させることが可能です。詳しくは Cisco IOS が稼働するルータとスイッチでの Secure Shell の設定 に記載があります。
フリーのトラフィック・ジェネレータは幾つかありますが、Linux でも Windows でも、どちらのプラットフォームでも使えるものに D-ITG があります。D-ITG はコマンドラインのツールですが、Java で書かれた GUI のラッパーも公開されています。
数年前から Java やその他の言語を書く機会がめっきり減り、(自分で選択出来るのであれば)C# で書くようになりました。「Eclipse よりも、Visual Studio が好きだから」という理由が大きいのですが・・・川俣晶さんのプログラミング関連書籍は興味深いものが多く、しばしば拝見させて頂いていますが、C# を書く機会が増えたので以下の書籍は購入させて頂きました。ちょうど上から順に "C# 2.0", "3.0", "4.0" がテーマとして取り上げられています。
そもそも、System.Collections.Generic.List も System.Collections.Generic.LinkedList も一次元リストを扱うものですが、List はインデックスを指定することで任意の位置にアクセス出来るが、LinkedList はインデックス指定ではリストにアクセス出来ず、先頭か、もしくは末尾から順に目的のデータ位置まで辿っていかなければならない、という機能差があります。「究極のC#プログラミング」では System.Collections.Generic.List と System.Collections.Generic.LinkedList の性能差について言及してあり、面白そうだったので検証してみました。
Juniper の KB(Knowledge Base)にも公式に記載されている通り、Juniper の VPN クライアントである "NetScreen-Remote" は Windows 7 をサポートしません。
私は普段、Mac を中心に使っているのですが、業務上、NetScreen / SSG / ISG(以下、SSG で統一)に IPSec VPN する際は VMware Fusion 内の Windows XP から NetScreen-Remote をして IPSec VPN する、という一手間をかけていました。この手間を解消すべく、Mac OS X 用の VPN クライアントを探したことがあり、以前に equinux 社の VPN Tracker というソフトウェアの 30 日間評価版を試したことがありました。ソフトウェア自体はよく出来ており、不満は無かったのですが、お値段が高めだったので購入は避け、結局、VMware Fusion 内の Windows XP を使い続けていました。
しかし、「ソフトウェアのサポート対象から Windows XP が除外される」など、Windows XP の利用が厳しくなってきた為、代替手段を探したところ、Juniper の KB で KB5546 - Is there a Macintosh Virtual Private Network (VPN) client available? という記事を見つけました。以下はその記事からの抜粋です。
Currently, there are a few VPN clients that runs on the Macintosh platform.
- MacPGP from PGP Corporation. That product is PGP Corporate Desktop, and is only available for Mac OS 9. For more details on purchasing, please go to http://www.pgp.com.
- VPN Tracker from Equinux. This is a front end to the IPSec engine that is built into the BSD kernel in Mac OS 10. The minimum requirement here is Mac OS 10.2. You can find further details on this product at http://www.equinux.com/us/products/vpntracker/ You can also find a VPN Interop document written by VPN Tracker at http://www.equinux.com/download/HowTo_NetScreen.pdf
- VaporSec (http://http://www.macshareware.com/review/vaporsec) is similar to VPN Tracker, except it is Open Source, which means you can download it free of charge. You can also find a VPN Interop document on this. Please click VPN Between NetScreen to VaporSec
- IPSecuritas from Lobotomo Software. This is also downloadable free of charge. Requires Mac OS 10.3 or higher.
3 項目の VaporSec は公式ページが "404 Not Found" になっていました。結果的に一番、下にある「IPSecuritas」を試してみることにしました(無料のようですし)。
"GeoIP" と一般的に呼ばれている機能を使うと、IP アドレスを地理情報に変換することが出来ます。具体的には Apache で「特定の国からのアクセスは拒否する」といった制御を実施したり、Wireshark でキャプチャした IP アドレスが「どこの国の IP アドレスなのか?」解析したり、といったことが出来ます。GeoIP 用のデータベースは有料のものが多いのですが、MaxMind では無料で利用可能なバージョンが配布されています(有料版もあります)。 ただし、GeoIP で判定される地理情報は 100%、正しいとは限らないので注意が必要です。
Mac OS X v10.6.5 統合アップデート がリリースされました。
アップデート内容は以下の通りです。
Linux 上でも mono を使うと .NET Framework を動作させることが出来ます。Linux 環境で mono をインストールする方法は 以前の記事 に書きましたが、このままでは .NET のプログラム(.NET Assenbly)を実行する都度、以下のように mono を実行する必要があります。
1 2 |
|
binfmt_misc という仕組みを使うと、毎回、"mono" としてしなくても、あたかも ELF と同等に .NET Assembly を実行出来るようになります。余談ですが、binfmt_misc の公式ページ は 404 not found になっているようです。
かつて Windows では FileMon というユーティリティを使うことでファイルシステムへのアクセス(アクティビティ)をモニタすることが出来ました。しかし、2006 年以降、FileMon は Process Monitor というツールに統合され、ファイルシステム / プロセス / レジストリのアクティビティを横断的にモニタすることができるようになりました。
Linux でも inotify-tools を使うことでファイルシステムのアクティビティをモニタすることができます。今回は inotify-tools を CentOS 5.5 x86_64 へインストールしてみます。