タグ

ブックマーク / kzk9.net (4)

  • 常駐型サーバープログラムのデバッグ手法

    BOOK: WEB+DB Press TITLE: 常駐型サーバーのデバッグ手法(ドラフト版) AUTHOR: (株)プリファードインフラストラクチャー 太田一樹 *注: この文章はWEB+DB PRESS Vol.48に掲載された記事のドラフト版です はじめに 今回はデバッグ関連特集ということで、常駐型サーバープログラムを作成する際のハマりどころやそれに対する解析方法・解析ツール・対策を、実際の経験を交えながら紹介したいと思います。 筆者は(株)プリファードインフラストラクチャーでインメモリ分散検索エンジン「Sedue (セデュー)」を開発しています。モバイル向け検索エンジン「エフルート」や、2008/11/6にリニューアルされました「はてなブックマーク2」などの検索バックエンドとして使われております。 この検索エンジンはいくつかの常駐型サーバープログラムから構成されており

    advblog
    advblog 2009/04/09
  • libaio(Linuxの非同期I/Oライブラリ)の使い方 - moratorium

    libaio(Linuxの非同期I/Oライブラリ)の使い方 2007-06-05 (Tue) 4:53 Unix Linuxで非同期I/Oを行うためのライブラリ「libaio」の使い方を書いてみる事にする。少し昔の話になるが、lighttpdが使用し、スループットを80%も上げたらしい。 TOEFLに向けて転置ファイルについての論文(Inverted files for text search engine [moffat 06])でReading対策をしていたところ、意外とスニペット(検索にヒットした箇所の前後の文章)を作るところが時間がかかるという事を教えてもらったので、適当にそれを例題にしてみる。具体的には以下のようなコードを非同期I/Oを使用して速くなるかどうか見てみる。 for (unsigned int i = 0; i < files.size(); i++) { FILE*

    advblog
    advblog 2009/03/24
  • C言語で実行時バックトレース - moratorium

    C言語で実行時バックトレース 2006-07-30 (Sun) 2:43 Unix glibcにはbacktrace()という便利な関数が有るらしいのですが、あえてその中身を自分で実装してしまおうという暇潰しをしてみました。 x86に限ると以下の様な感じでスタックフレームにアクセス出来てしまいます。 int get_stack_trace(void **result) { void **sp = (void**)&result - 2; // sp[0] : pointer to previous frame // sp[1] : caller address // sp[2] : first argument int n = 0; while (sp && n < 100) { result[n++] = *(sp + 1); void **new_sp = (void**)(*sp);

    advblog
    advblog 2009/03/24
  • moratorium | はてな合宿

    はてな合宿 6月の週末にはてなさんの京都オフィスにお邪魔して3日間の合宿を行いました。その時にnaoya, oxy, kzkチームで作った「はてブ関連エントリー機能」が今日公開されました。 関連エントリー機能のリリースについて はてなブックマークの関連エントリー機能開発、PFI さんとの合宿 by naoya はてなブックマークの関連エントリー機能開発 by oxy はてブ関連エントリ 技術解説 by nvaca 僕は主にoxyの作ったエンジン(reflexaに使われている奴)をThriftのマルチスレッドサーバー上に載せる仕事をしました。マルチスレッド周りでエンジンに数箇所バグが有ったのでそれを取り、負荷生成ツールを作ってCPUを完全に使い切る所まで持っていくことができました。今までシングルスレッドで動かしてたんですよねー。 エンジン自体は行列を圧縮したり、上手く探索を枝狩りしてたりと、

    advblog
    advblog 2008/07/16
  • 1