Entries from 2009-10-01 to 1 month

(特にMyISAMを使っていた)ウェブ屋さんがInnoDBを使う場合の設定項目

InnoDBはMyISAMと比較して安全(OSクラッシュや電源断が発生してもテーブルが壊れない)分、書き込みが遅い。データベース屋さんからすると、それは当然のことでMyISAMがおかしいんだ、ということになり、だからバッテリバックアップ機能のついたRAIDカードを…

vipっていうviラッパー作った

http://github.com/kazuho/vip/よくperlとかで、 $ perl print "テストコードを色々..."; ... ^Dとかやってテストするけど、コード書き間違えちゃったりした時に編集できなくてめんどいのと、書いたコードが失われちゃうのが嫌だなあと思ってた。で、ついに…

彼氏がMyISAM使ってた。別れたい…

追記: マジメな比較はこちら:Open database life: MyISAMとInnoDBのどちらを使うべきか MyISAMだとPostgreSQLと並べられた時なんか恥ずかしいww下向いちゃうしwwウェブサイトにはせめてInnoDB使って欲しい・・・勉強会とかで発表されたら・・・・もう最…

「0xe-0xeはゼロという迷信」は本当なの?

[迷信] 0xe-0xe はゼロ | 株式会社きじねこ単に GCC のバグじゃないのかなー。そもそも、 手元の規格 *1 だと、pp-number に 'x' は含まれない だから '0xe-0xe' は pp-number として評価されないはず BNF を見ると pp-number は #if とかプリプロセッサディ…

サーバやI/O待ちを含むベンチマークを Benchmark::cmpthese で比較してはいけない、という話

Benchmark.pm の cmpthese は手軽に速度の比較ができるのでとても便利。でも、そもそも何のパフォーマンスを比較しているのか? ソースコードを読めばわかるけど、 perl プロセスのCPU使用時間 あるいは、上記+子プロセスのCPU使用時間 を測定している。換…

初期化とか終了処理とか除いたベンチマークの取り方

ベンチマークを取る際に、それぞれの手法ごとに初期化や終了処理が必要なんだけど、それら処理を除いた、コアの部分の数値を比較したいことって結構ある。そういう場合は、以下のように書けばいい。ということを理解したのでメモ。 #! /usr/bin/perl use str…

linodeがネットワーク的に近くてびびった件

linodeというより、Hurricane Electronic ががんばってるんだろうけど。このホップ数はビビった。 $ traceroute 74.207.***.*** traceroute to 74.207.***.*** (74.207.***.***), 64 hops max, 40 byte packets 1 eM60-254-***-*.emobile.ad.jp (60.254.***.…

HA構成と復旧作業時間と信頼性

2台でHAノードを組んでいて1台が落ちた場合に、何時間以内に再度2台構成に復帰させる必要があるのかなーと思って、ちょっと計算してみた。ノード毎の障害発生の確率が独立であると仮定すると、 $ perl -le 'print exp(log($ARGV[0])/(365*24))**$ARGV[1]'…

Re hbstudy #4 での OpenVZ の話 (ARP response が遅い件について)

hbstudy #4 で id:fujya さんが OpenVZ についてお話されました。FreeBSD の jail 大好きっこだった自分も OpenVZ を使っているので、興味深く拝聴させていただきました。ありがとうございました。(スライドは Open VZ)。その中で、 「venetを超えてrt_cache…

perlの文字列結合におけるpreallocもしくは事前のSvGROWの効果

多少あるのかも。 use strict; use warnings; use Benchmark qw(:all); my $t = "hello world! hello world! hello world! hello world!\n"; my $rep = 100; my $prealloc_s = $t x $rep; cmpthese(100000, { default => sub { my $s = ''; $s .= $t for 1..…

HTTPプロトコルパーサのオーバーヘッドは18%以下という話

「テキストプロトコルは遅くないよ」という話 - kazuhoのメモ置き場に関するの具体的な話。Kazuho@Cybozu Labs: 「サーバ書くなら epoll 使うべき」は、今でも正しいのかを書く際に自作したベンチマークツールがあるのですが、それを使ったベンチマーク結果…

Plack::Server::Standalone(::Prefork) の ToDo

REQUEST_METHOD が HTTP/1.0 に規定されているものかチェックしていない チェックすべきだろうか HEAD リクエストが来た際に、レスポンス entity-body を消すような処理はしていない すべきだろうか REQUEST_URI が / から始まるか確認していない HTTP/1.0 …