Entries from 2008-05-01 to 1 month
PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP http://www.google.com/codesearch?hl=en&q=PTHREAD_RWLOCK_DEFAULT_NP+package%3Aglibc な、なんだってー!!! orzライター優先で使うケースのが多いですよね? てか Mac OS X とか Solaris …
> 奥さん コメント有難うございます。そういう事なら確かにpwriteでもっと性能出て欲しいですね。単体のベンチマークのソースコードとかって晒して貰う事は出来ますでしょうか? http://d.hatena.ne.jp/nishidakeisuke/20080528/p1#c1211944915 おもしろいか…
4コアで idle がなくなったってことはまあ設計はこれでいいってことだろうから機能追加再開する。 DELETE on SELECT モードの実装 複数行 own できるように 例外の扱いとかちゃんとするorz
色々ユーザランドでのロックを使わない形に書き換えても、なかなか速くならなかったのが、pwrite をやめて mmap(PROT_WRITE) 経由での書き込みにしたら、20% 程度あった idle time が 0 になった。ベンチマーク的にはこんな感じ。上が pwrite 経由。下が msy…
念のためテストコードを書いて確認。ちゃんと動く。 #include <assert.h> #include <fcntl.h> #include <stdio.h> #include <sys/mman.h> #include <sys/types.h> #include <sys/uio.h> #include <unistd.h> int main(int argc, char **argv) { int fd, i; int *map; char buf[16]; fd = open("/tmp/mmap_pwrite.tmp", O_RDWR | O_CREAT </unistd.h></sys/uio.h></sys/types.h></sys/mman.h></stdio.h></fcntl.h></assert.h>…
read を並走可能にしようといじっていたら、concurrency は上がったけどスループットは落ちたorz
read の MT 化は、ほぼ完了 各スレッドに owned_row を割り付ければ、owner mode の場合に rnd_next 内での mutex 獲得を不要にできるはず 次は read の mmap 化 pread が不要になることにより、不可避のボトルネックであるキュー割り付けコード (assign_own…
実際にベンチマークをとってみました。Kazuho at Work: Maximum Peformance of MySQL and Q4M
とりあえず pwrite を複数スレッドから呼ぶようにしてみた。でもってベンチとろうとしたら perl のテストコードじゃサチってどうしようもなくなっていたので C で書いた。 $ MESSAGES=400000 CONCURRENCY=40 DBI='dbi:mysql:test;mysql_socket=/tmp/mysql51.…
263 バイトとかじゃないので注意が必要。 OS 最大サイズ Windows 8TB*1 Linux (>=2.6.11) 128TB*2 Linux ( 512GB Solaris 10 250TB*3 Mac OS X は不明。mmap でファイル全体にランダムアクセスとか、ちょっと微妙かもしれないと思った。 *1:x86-64 - Wikiped…
Q4M のアクセスにあわせた File I/O の抽象化レイヤを書いて、64-bit 版はデフォルト mmap+msync を使うようにしようと思った。32-bit 版は mmap 使えないので、速度が向上しないかもしれないけど、それは以下の理由により気にしない方向で。 今後は 64-bit …
ボトルネックはたぶん削除処理が直列化されて、1行毎に pwrite, そして fsync でまとめてコミット、というコードになっている点。fsync を呼出は MUST だから、並列化することはできないし、1行毎の pwrite をやめて削除処理をジャーナリングすることで、…
Opteron 2218 x2 のマシンで。Idle が出ているということは、やっぱキューへのアクセスに関連する直列化がボトルネックなんよねという感じ。最適化かけないといけないですね。 top - 18:46:13 up 40 days, 2:15, 3 users, load average: 3.61, 3.50, 1.72 Ta…
Expires レスポンスヘッダとか、そのまま使うんじゃなく Date ヘッダの値で減算したデルタ値を使うのが正しい。だってクライアントやサーバの時計があっている保証なんてないから。 #タイムゾーンが狂ってるとかよくあるし freshness_lifetime = expires_va…
とりあえず、Pathtraq の開発用テストデータの URL テーブルの圧縮率テスト。 形式 バイト数 圧縮率 無圧縮 717,225,984 100% 独自*1 406,847,488 57% InnoDB 圧縮*2 360,710,144 50% 独自 & InnoDB圧縮 239,075,328 33% 現時点での感想。 カスタマイズされ…
東京の都市圏人口が世界一だからでしょ。 世界の都市圏人口の順位 - Wikipedia参考: 404 Blog Not Found:世界最大のYAPCが東京で行われる理由
$ uname -a Linux rel32.pathtraq.com 2.6.18-53.1.14.el5 #1 SMP Wed Mar 5 11:37:38 EST 2008 x86_64 x86_64 x86_64 GNU/Linux (snip) t/04-blob-cond.............ok t/04-blob..................ok t/05-multireader...........ok 1/4 Multireader bench…
いつでもどこからでもサーバにログインしたくなるときってありますよね。かといって、サーバの sshd への接続を全世界から可能にしておくというのは、たとえパスワード認証を無効化していても避けたいところ。今までは自宅が事実上固定アドレスだったので、…
shwget | gniibeの日記 | スラド あたりを見ながら遊んでいたわけですが。 % (echo GET / >&0 ; cat) < /dev/tcp/localhost/80あたりが最小形態ですかね。HTTP/0.9 を使ってボディだけ取る。 % (echo GET / >&0 ; cat) < /dev/tcp/localhost/80 | openssl md…