Entries from 2008-01-01 to 1 year
初心者や小規模アプリケーションむけ 1コントローラ1ファイル ディスパッチテーブルレス PHP のような、テンプレート中心のコーディングも可能 CGI での速度遅延が少ない 遅延ロードを駆使 テンプレートをコンパイルしてキャッシュ 実行時に必要なコントロ…
nanoa-conf.cgi で設定 *1 絶対パスあるいは相対パスが使用可能 相対パスの場合は .htaccess が必須 (かつ .htaccess が使用できること) .htaccess の使用可否は自動検出, なければ自動生成 という形にしました。かつ、初期値は相対パスの var なので、 多く…
META.yml だとテスト用の依存関係まで書いてあったりするので、実際の負荷を予測するための手段として use してるものを grep するワンライナー。 ところでモデルってなんですか? $ (a=`perldoc -l SQL::DB | perl -pe 's/\.pm$/*/'` ; cat `find $a | egre…
dmaki さんが dist 作れるようにしてくれたりとかいろいろ手をいれてくれて、だいぶ構造がきれいになりました。ありがとうございます。というわけで、何も機能がない掲示板作ってみました。http://kazuho.31tools.com/nanoa/nanoa.cgi/tinybbs/.pm ファイル…
http://d.hatena.ne.jp/tokuhirom/20081113/1226592335コピペしたので NanoA のエラー画面も美麗です。ありがとうございます。実際のエラー画面
CGI だと勉強会で並ばれた時なんか恥ずかしいww 下向いちゃうしww ウェブプログラマにはせめて mod_perl 使って欲しい・・・ 参考: 彼氏が軽自動車に乗ってた。別れたい…ちなみに Japanize は CGI で動いてますよっと。
http://kazuho.31tools.com/nanoa/nanoa.cgi
MENTA (http://d.hatena.ne.jp/tokuhirom/20081112/1226460761) は事前コンパイル型だけど、キャッシュ方式でどこまでパフォーマンスが出るか。と同時に、CGI で最速 WAF を作ろうと思うと、コントローラ毎に index.cgi を生成するのが一番速いだろうという…
Perlの軽量ウェブアプリケーションフレームワーク最新事情 - とほほのN88-BASIC日記 関連で今日出た話。 index.cgi ではなく フレームワーク名.cgi にすべき DirectoryIndex を設定した .htaccess を一緒に配布すべき Japanize や AutoPagerize のような配布…
InnoDB は MVCC で遅そうだから読み込み主体の場合は MyISAM とか言うけど、そういう発想の人はそもそも MVCC 不要=複雑なクエリを書かない人なわけで、で、永続的なハッシュとしてしか MySQL を使わないようなケースでは、どのみちプロセス間通信がボトル…
Mojo::Template を使えるようにしました。たとえば、MyApp/mojo.mt というファイルを作って <html> <head> <title>hello world</title> </head> <body> Hello to <%= $app->query->param('user') || '' %>. </body> </html>とか書いて、index.cgi/mojo にアクセスすると、「Hello to 誰々」なんて表示されます。コン…
CGI というシーンにおける現状の Perl のウェブアプリケーションフレームワークの問題点とは 都度 perl のインタープリタインスタンスを起動するのでモジュールの読みこみ/コンパイルコストを無視できない bless の速度を無視できない といったあたりである…
だいぶ楽になった。 % svn co http://svn.coderepos.org/share/lang/perl/NanoA/trunk nanoa % cd nanoa % mkdir myapp1 % cat > myapp1/start.pm package myapp1::start; use strict; use warnings; use base w(NanoA); sub run { my $self = shift; 'hello…
O_LARGEFILE が必要なのかー。lseek64 とか普通に呼べるし気にしてなかった。というわけで、Q4M 0.8.3 以前は、32bit の linux 実行環境では 2GB 以上のデータを保存しようとすると落ちます。ごめんなさい。64bit 環境なら大丈夫。svn trunk のやつは、とり…
O_DIRECT を使わない場合限定だけど。 HDD に swap 置いたらダメ。必ず SSD に配置 swappiness を低めに設定 あとから SSD を足す場合とか忘れそうな感じ。めんどくさがって HDD の swap を swapoff だけして運用してたらメモリ不足でログインすらできなくな…
バッファキャッシュを置き換えちゃう優先度をブロックデバイス毎に変える、ってのでもいい。理由は以下のとおり。 ランダムアクセスの場合、HDD と SSD だと速度が10倍以上違ったりする Kazuho at Work: Benchmarking SSD for MySQL HDD と SSD 混在で、後者…
全文検索中に KILL CONNECTION を有効にするパッチ (Tritonn-dev 126) - Tritonn - OSDN
SSD のデータを mmap して、秒間数千回ページフォルトするようなケースで、コードのチューニングをしたい。ボトルネックを探したい。どうやればいいんだろ。Linux か Mac OS X (10.5) で。oprofile で見つけられるのかなー。やり方がわからない。dtrace だと…
これは楽しいわ。 % iostat -k 5 (snip) Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 1.20 3.20 2.40 16 12 sdb 3032.40 1237.60 25558.40 6188 127792Tritonn へデータ追加中はこんな感じ。 avg-cpu: %user %nice %system %iowait %steal %idle 5…
並走度を高めると NCQ まわりでパフォーマンスが改善するかテストしようと思った → ext2/3 は内部でロックがあるので xfs が必要 → CentOS 5.2 は xfs デフォルトで入らないっぽい → raw disk でパフォーマンス測定すればいいや → ベンチマーク → ベンチマー…
SSD Enhanced SMART ATA feature set Intel® X18-M/X25-M SATA Solid State Drive SMART attribute の 232 と 233 が SSD 関連かなぁ。ドキュメントがない >< $ sudo /usr/sbin/smartctl -d ata -a /dev/sdb smartctl version 5.36 [x86_64-redhat-linux-gnu…
Re memcachedのストレージにSSDを使うアイディア - sdyuki-develとりあえず、新たにサーバを開発しなくても、 SSD 全体をスワップに指定 memcached を CPU + SSDドライブ数 * 4 とかに指定 SSD の I/O ってどの程度多重化するといいんだろう (NCQ まわりとか…
Kazuho@Cybozu Labs: ウェブサービスにおける SSD 導入にむけて〜検索サービスの可能性 関連スワップをしないように設定 (swapoff) したとしても、実行コードと mmap されたデータはメモリの奪い合いをするのかな。そして swappiness=0 と設定すれば、実行コ…
memcached座談会:連載|gihyo.jp … 技術評論社MacBook を修理に持ち込む途中で見てた。まだ第2回の途中までしか見てないけど感想。 mixi の設計がきれい ローカル memcache 導入より、複数台へのライブラリレイヤでの分散のがいいなぁ ウェブサーバ100台に…
MySQL Lists: internals: Re: Const propagation within a non-const expression Kazuho at Work: Using O_DIRECT on Mac OS X Kazuho@Cybozu Labs: Tritonn (MySQL+Senna) の join を高速化 全文検索中に KILL CONNECTION を有効にするパッチ (Tritonn-dev …
Setting mysql_auto_reconnect to on is not advised if 'lock tables' is used because if DBD::mysql reconnect to mysql all table locks will be lost. DBD::mysql - MySQL driver for the Perl5 Database Interface (DBI) - metacpan.org って書いてあ…
参照: http://d.hatena.ne.jp/ryocotan/20081006/p1, http://d.hatena.ne.jp/ryocotan/20081011/p1 Windows ってオーバーコミットしなかったような 一気に大量に malloc すると、swap が足りなくて失敗するんじゃないか*1 swap は適宜拡張されて行くのでちょ…
以前もやり方を忘れたのでメモ。/dev/fd/2 を tee の出力先に指定すればいい。 % ... | tee /dev/fd/2 | ./stats.plとか。
ひさびさに個人ブログ更新→インターネットとオープンソースとエンドユーザー開発 : Kazuho Oku's Weblog (跡地)
メモリのエラー訂正はサーバでは必須だよという話もあるけど、じゃあ実際どのくらい訂正が発生しているのか。確認するには、/sys/devices/system/edac/mc/mc*/csrow*/edac_mode が S.?ECD.?ED になっていることを確認した上で /sys/devices/system/edac/mc/m…