Entries from 2009-12-01 to 1 month

ウェブ業界の15年、これからの10年 (Re ウェブアプリケーションサーバを複数台構成とか2010年代には流行らない)

先のエントリ (ウェブアプリケーションサーバを複数台構成とか2010年代には流行らない) ではボトムアップに煽った書き方をしたけど、自分がトップダウンでどういうふうに捉えているかについて。以下、あくまでも私見です。いわゆるネット業界は1990年代後半…

ウェブアプリケーションサーバを複数台構成とか2010年代には流行らない

タイトルは煽り入ってますが。仮に動的ページを生成するのにかかる時間が1秒、そのうちデータベースやmemcached等リモートサーバへの問い合わせ時間を除くいたCPUの処理時間が0.1秒とする。また、ピークのリクエスト処理量は、平均の2倍とする。そうすると…

Tritonn のホットバックアップ(とsync 3回伝説)

Tritonn のホットバックアップ環境を構築しようと思って調査。結論から言うと 漢(オトコ)のコンピュータ道: MySQLバックアップ頂上決戦!! LVMスナップショット vs InnoDB Hot Backup の「MyISAMをスナップショットでバックアップ」でよさそう。確認したこ…

Plackで静的コンテンツのMIME型を指定する方法

Apache の設定ファイルおける AddType を Plack でどうやるのか。Plack::App::File (あるいはそれをラップしている Plack::Middleware::Static) は、拡張子から Content-Type を決定するのに MIME::Types を使っている thanks to miyagawa-san。なので、たと…

Plack::Server::StandaloneとErrnoの話をjperl advent calendarに書いた件から今年を振り返ってみる

Plack::Server::Standalone 系を使ってウェブアプリケーション開発と運用が楽になる話 - JPerl Advent Calendar 2009 Perl のローレベルエラー処理 (もしくは Errno.pm のススメ) - JPerl Advent Calendar 2009 さすがに今年はこれ以上書かないと思う。どっ…

うお座

$ echo うお座 | mecab う 感動詞,*,*,*,*,*,う,ウ,ウ お座 名詞,一般,*,*,*,*,お座,オザ,オザ EOS $ その発想はなかった...

InnoDBのテンポラリテーブルとinnodb_file_per_tableの相性が悪いっぽい

tmpdirをtmpfsにしてても、LOCK_openを2秒間握ったままとかorz... innodb_file_per_tableをオフにしたら、ぐっと症状が改善した。なお、環境は MySQL 5.1.41 (linux, x86_64, innodb_plugin)参考: Slow DROP TABLE - Percona Database Performance Blog (tha…

linuxで httpd が使ってるメモリ総量を調べる話

Perl等のLLでウェブアプリケーションサーバを書いていると、普通はマルチプロセスモデル (apache なら prefork とか) で運用することになると思う。で、それらがどれだけメモリを使っているか、っていうのはチューニングにおいて重要になってきたりする (ん…

RDBMSでもNoSQLでもなく、「手段としてのMySQL」について。12/18(金)のイベントで話します

「NoSQL」というバズワードが注目を集める昨今、私も「http://shibuya.pm.org/blosxom/techtalks/200911.html」に登壇の機会をいただき、SQL派の立場で発表したりしています (発表資料)。ですが、言うまでもないことですが、RDBMSやKVSに限らず、全てのソフ…

iptablesのownerモジュールでクローラを安全に運用する話

RSSリーダーとかブックマークサービスとかアクセス統計サービスとかを作っていると、クローラの運用は必須。クローラは保護したいから、当然DMZに設置する。でもクローラがDMZ内にある他のホストにアクセスできちゃうとまずいわけで。で、クローラからのアク…

Plackは各サーバ実装の依存関係を「意図的に」requireしていない

だって、ユーザーは全てのサーバ実装を使いたいわけじゃないから。例えば Plack::Server::Standalone::Prefork は Parallel::Prefork に依存してるけど、これを Makefile.PL に書いてないのは意図的、ということ。FCGI にしても同じ。全部インスコするには T…

Intel X25-M (160GB, 34nm) のベンチマーク

例によって16KBランダムアクセス。コントローラは MCP55 Pro。速い。仮想化してないのと、内蔵のまともなコントローラ使ってるからかなぁ。 並列度 Read (MB/sec) ← IOPS Write (MB/sec) ← IOPS 1 61.8 3,950 14.1 902 16 158 10,100 14.0 893

なぜ daemontools を使うのか

_ djb が自作ツールの更新を放棄してからずいぶんたって、qmail やら djbdns やらはゆっくりと置き替えが進んでいるようだ。が、いまだに使い続けられているものもある。具体的には daemontools。いまだに daemontools を 使うネタが書かれているのを見て絶…

ドキュメントとテストコードつきのPerlスクリプトを書く方法

Re http://d.hatena.ne.jp/perlcodesample/20091130/1258979624, http://mt.endeworks.jp/d-6/2009/12/scriptsubimport.htmlスクリプトとコードとテストを単一のファイルにまとめたい*1という需要が、かねて自分の中であったので教えを請うた結果、以下のよ…

Re: Perl5 の signal 処理と DBI と Q4M

今更ですが。 Q4M を使用していると、$dbh->execute がキュー待ちの間ブロックしてくれます。これは便利なのですが、SIGINT をうけとったら終了してほしい。通常の処理としては SIGINT をうけとったら終了します。ですが、$SIG{INT} = sub { warn "\シグナ…

VMMのI/Oスケジューラ (に関する一般論と XenServer の場合)

I/O負荷が高い時に、キャッシュに入ってないコマンドを実行しようとするとひっかかる。なんでかなーと思って調べてみたら、XenServer のデフォルトは以下のとおりだった。 hdparm -W 1 dom0 の I/O エレベータは noop domU の I/O エレベータは noop SATA 向…

XenServerのI/Oパフォーマンス

諸般の事情により、XenServer 5.5にeSATA(Si3132)経由でIntel X25-Mをつないだので、ついでにベンチマーク。データベース系の用途ということで、例によって randombench -b 16 -c 1 -f 102400。 実機(旧) XenServer(DomU) ← (16並列) Read (MB/sec) 38.0 32.…