タグ

2008年11月10日のブックマーク (5件)

  • 「はてな流大規模データ処理」を見てきた - もぎゃろぐ

    KOF2008:関西オープンソース2008というイベントに来ています。 はてなの伊藤さんの講演があったので、講演メモを公開。 #ボクがメモした内容であって、100%言ったとおりに書いてあるわけじゃないので、参考としてご覧ください。 (続き) アジェンダ 大規模なデータ OSのキャッシュ MySQLの運用 大規模データアプリケーションの開発 データの例 はてなブックマークのデータ量:五千万件くらいのデータ量 このデータに対して何百万人がアクセスしてくる状況でどういう作りにするか レコード数 1073万エントリー 3134万エントリー 4143万タグ データサイズ エントリー2.5GB 何の工夫もなく普通にアクセスすると...200秒待っても結果が帰ってこない 大規模データの難しいところ 開発サーバで開発者が作っている時は快適に動いていても、多数の人間がアク

  • Introduction to GNU GRUB

    GNU GRUB とは、GNU ライセンスで配布されている、いわゆるブートセレクタです。 複数の OS を切り替えるのに使います。かなり高機能らしいのですが、自分には ほとんど使いこなせていません (;_;) GNU GRUB はその高機能さゆえにハードディスクの MBR 領域内(512byte)には 収まりません。そこで MBR 領域に stage1 というファイルを、OS の ファイル システム上にstage2というファイルを置き、stage1 から stage2 を呼び出す (stage1.5 を経由している?)ことで対処しています。stage2を置く場所は fat, ufs, ext2, reiserfs などの様々なファイルシステムに 対応しています。 WindowsNT/2000/XP で使われる NTFS には対応していないようです。

    hogem
    hogem 2008/11/10
    "高機能さゆえにハードディスクの MBR 領域内(512byte)には収まりません。そこでMBR領域にstage1というファイルを、OSのファイルシステム上にstage2というファイルを置き、stage1からstage2を呼び出すことで対処しています。"へぇ
  • イメージをループバックデバイスとしてマウントする - tomoyamkungの日記

    ファイルの作成 ファイルの作成は dd コマンドを使う。ファイルの中身は /dev/zero で1メガ単位で8192回書き込んだものをISOイメージとして作成。 # dd if=/dev/zero of=/mnt/data/hoge.img bs=1M count=8192 ext3ファイルシステムの構築 dd で作成したイメージを ext3 ファイルシステムとして構築する。ext3 なので -j 、強制なので -F を指定。これを読み書きする場所として扱う。 # mkfs.ext2 -j -F /mnt/data/hoge.img ループバックデバイスとしてマウント マウントポイントを作成して、そこにイメージをマウントする。 # mkdir /loop_back_hoge ## マウントポイント # mount -t ext3 -o loop=/dev/loop2 /mnt/data/h

    イメージをループバックデバイスとしてマウントする - tomoyamkungの日記
    hogem
    hogem 2008/11/10
  • 革命の日々! で、結局overommit_memoryのオススメ設定値はいくつなのさ?

    あんまりエントリにするほどの分量はないんだけど、現時点でのオイラのオススメ値を貼っとく overcommit_memory=2 overcommit_ratio=0 swapパーティションのサイズ: 物理メモリ量x80% overcommit_ratio=0 にすることで、全プロセスの仮想メモリ量がスワップサイズを超えなくなるので、カーネルによほど負荷をかけないかぎりスワップしなくなる。 んで、スワップを0にしたときと違って、カーネルに負荷をかけるようなスゲー使いかたをしたときでもスワップが発生するだけでOOM-killerは発生しない。 欠点は、ほぼ使わないと想定しているスワップに結構なディスク量をとられることだけである。 あ、あと、80%というのはかなり適当に決めた値なのでシステムによっては90%とかでもいけると思う。 注意1: この設定は組み込みでは全然使えません。なぜならサーバー系

  • DBサーバ向けLinuxチューニングを考える 〜 メモリオーバーコミット編 : DSAS開発者の部屋

    Cでプログラムを書いていて大量のメモリを確保したくなったとき、大抵は mallocを使うと思いますが、その際には戻り値がNULLかどうかを判断してエラー処理に飛ばすと思います。しかし、Linux のメモリ管理サブシステムには「メモリ・オーバーコミット」という機構があり、実装されているメモリ以上の領域を確保できてしまいます。 #include <stdio.h> #include <stdlib.h> int main() { int i; char *p; for(i=0;i<65536;i++){ p = (char *)malloc(65536); if(0 == (long)p){ break; } } printf("SIZE=%dMB\n",i*65536/1024/1024); return(0); } swapoff したメモリ 1G のマシンでこれを実行するとこんな感じにな

    DBサーバ向けLinuxチューニングを考える 〜 メモリオーバーコミット編 : DSAS開発者の部屋
    hogem
    hogem 2008/11/10
    OSに落とされるぐらいなら、DB自身がメモリ不足のエラーで落ちたほうがマシっていう / /proc/sys/vm/overcommit_* / man malloc見たら、この動作はバグらしい