タグ

ブックマーク / kazuhooku.hatenadiary.org (5)

  • 2010年代には Apache の mpm_prefork とか流行らない (もしくは HTTP keep-alive のメリットとデメリット) - kazuhoのメモ置き場

    HTTP の持続的接続の功罪について はじめに、HTTP の持続的接続 (keep-alive) のメリットについて。持続的接続を使うメリットは、以下の2点。 TCP 接続の確立にかかる時間の節約*1 TCP の接続と切断に必要な資源 (CPUとネットワーク) の節約 ウェブブラウザ〜データセンタ間の通信で、持続的接続を使う理由は、このうちの前者。特に太平洋を超えるようなケースだと、TCP 接続に0.2秒とかかかるので、メリットが大きい。 一方、持続的接続のデメリットは、 接続が切断されるまでの間、その接続を維持するためにコストがかかる (主としてメモリが無駄になる) という点になる。特に、1プロセス1コネクションを前提とするアーキテクチャ (例: mod_perl) だと、メモリの無駄使いが、とてもひどいことになる。 そこで、ブラウザからの接続を受ける HTTP サーバとアプリケーション

    2010年代には Apache の mpm_prefork とか流行らない (もしくは HTTP keep-alive のメリットとデメリット) - kazuhoのメモ置き場
    amayan
    amayan 2010/03/29
  • InnoDB Plugin のデータベース圧縮機能 - kazuhoのメモ置き場

    ファイルサイズが 1/10 になってアクセス速度も大幅改善か。実データでこれはすごいな *1。 I’ve tried to convert this table using COMPRESSED row format. This time conversion took 1,5 hours and results were really surprising: Only 5Gb data file (from 60Gb) ~5% I/O load according to iostat (from 99%) ~5% CPU load according to top (from 80-100% mostly waiting for I/O) 0.01 sec average lookup time by primary key (from 1-20 sec before the conve

    InnoDB Plugin のデータベース圧縮機能 - kazuhoのメモ置き場
  • mysql と drizzle の負荷テストツール「skyload」が凄い! - kazuhoのメモ置き場

    tmaesakaさんがやってくれました。 ずいぶん前からSQLのベンチマークを測定するのに使いやすいプログラムないかなーと思ってました。個人的にはmysqlslapというのを使ってたのですが、幾らか気に入らない所があったりコマンドラインオプションが複雑で毎回 --help を読んだりしていました。余計な機能なんかなくて、指定したSQLを高速にくりかえしてくれる物が欲しいなぁって思ってたんです。 とあるIRCでこの前、tmaesakaさんから「いま作ってる」という話を聞いて、いろいろ要望を言ってたんですが、ついさっきチュートリアルが公開されました。速いw 名前はskyload。とても小さく、実装コードだと800行程度です。しかもオプションが少ないので使い方が単純です。試しに適当な INSERT の速度を測ってみました。 $ skyload --server=localhost --mysql

    mysql と drizzle の負荷テストツール「skyload」が凄い! - kazuhoのメモ置き場
  • セキュアな XS ローダー - id:kazuhookuのメモ置き場

    perl のプロセス内でサンドボックスを作ろうと思うと、少なくとも以下の2点が必要です。 オプコードの制限 DynaLoader::dl_install_xsub を利用したネイティブコード注入 このうち、オプコードの制限については、ops モジュールで行うことが可能です。一方、DynaLoader::dl_install_xsub 関数については、これを単純に使えなくしてしまうと、XS モジュールをロードできなくなってしまうので、一定の条件下でのみ、これが実行されるような仕組みを作ってやる必要があります。 というわけで私案。クロージャーを使って、以下のような形にするのはどうでしょう? 「strict::import とか書き換えられちゃうとダメじゃね?」ということで没ネタですorz #! /usr/bin/perl use strict; use warnings; use DynaLo

    セキュアな XS ローダー - id:kazuhookuのメモ置き場
  • NanoB というウェブアプリケションフレームワーク書いた - kazuhoのメモ置き場

    MENTA (http://d.hatena.ne.jp/tokuhirom/20081112/1226460761) は事前コンパイル型だけど、キャッシュ方式でどこまでパフォーマンスが出るか。と同時に、CGI で最速 WAF を作ろうと思うと、コントローラ毎に index.cgi を生成するのが一番速いだろうというのは、合意が得られるところだろう。というわけで、apache のリクエストに応じて、cgi を動的に生成/更新するウェブアプリケーションフレームワークを作ってみました。あくまでも評価目的 (=ネタ) なので、名前も NanoB というやる気のないもの。 結論: やや古い MENTA に対して 13% 増の速度 (156.67 reqs/s vs. 138.27 reqs/s) 取った手法としては、以下のとおり。 CGI 生成 CGI が、cache ディレクトリ以下にコントロー

    NanoB というウェブアプリケションフレームワーク書いた - kazuhoのメモ置き場
  • 1