そして、そのためにインストールしたiTunesでパソコンがブートしなくなった。
テラユルセナス!
テラユルセナス!
- 関連記事
-
- 仕事オワタ\(^o^)/ (2007/06/03)
- iPod買った (2007/05/27)
- ついったー (2007/05/09)
注意: 以下の記事は完全に間違っています。ext3はflushメソッドがNULLなので、closeのときにfsyncされないよん。ごめんなさいm(_ _)m
http://d.hatena.ne.jp/naoya/20070521/1179754203
のコメント欄
Linuxのcloseは暗にfsyncするから、ここであげられている
100000回繰り返し
open
8K write
close
というパターンだとfsyncコストが見えちゃうので良くないんじゃないかな
naoya氏がなんで突然カーネルの世界にはまりだしたのか知らないけど、まずはメデタイ\(^o^)/
http://d.hatena.ne.jp/naoya/20070521/1179754203
のコメント欄
naoya 『read はキャッシュに載ってれば常にメモリアクセスのみで済むけど write はページに dirty フラグを立ててプロセスに制御が戻ったあと、pdflush がどこかのタイミングでディスクに書き出しして必ず物理的にディスクにアクセスしますよね。
その時の排他処理周りなんじゃないかなあと思いますが、その辺が実ははっきりしないんですよね。だいぶ追ってみてはみたんですが。』 (2007/05/22 00:24)
naoya 『普通に考えれば write はディスク更新があるから云々というのは想像がつくけど、じゃあ具体的にページをディスクに書き出す処理がたくさん発生した場合に、OS がどこの処理を行ったときに write してるユーザープロセスに影響を与えてしまうのかというのが正確に説明できない。』 (2007/05/22 00:26)
Linuxのcloseは暗にfsyncするから、ここであげられている
100000回繰り返し
open
8K write
close
というパターンだとfsyncコストが見えちゃうので良くないんじゃないかな
naoya氏がなんで突然カーネルの世界にはまりだしたのか知らないけど、まずはメデタイ\(^o^)/
- 関連記事
-
- 中学3年間の英語を10時間で復習する本 (2007/08/05)
- writeではtmpfsよりpage cacheが遅い理由 (2007/05/22)
- さいきん livedoor Reader が人気な件について (2007/03/27)
http://www.kt.rim.or.jp/%7ekbk/zakkicho/07/zakkicho0705.html#D20070505-5より
素直にワロタ
素直にワロタ
三人がかりでジェットストリームアタックかっ(笑)■ 見事な連携だ
正規表現 part 3
619 DATE:2007/05/04(金) 23:03:13 【・∀・)っ-○◎●】 sage
(.+)(\|(.+)(\|(.+)・・・・))))
で奇数番目を取る。
でも素直にsplit使えよ
620 DATE:2007/05/04(金) 23:13:21 【デフォルトの名無しさん】 sage
/[^|]+/g
でも素直にsplit使えよ
621 DATE:2007/05/04(金) 23:33:18【デフォルトの名無しさん】 sage
先読みを使って、Matches に入った AAAA、BBBB、CCCC を処理する
.*(?=\||$)
でも素直にsplit使えよ
622 DATE:2007/05/05(土) 00:22:20 【デフォルトの名無しさん】 sage
ありがとうございます。勉強になりました。
素直にsplit使うことにします。
- 関連記事
-
- [ネタ][google] Google Earthを利用したデジタルデータ配布システム (2007/06/21)
- 2chねた 正規表現ジェットストリームアタック (2007/05/13)
- Google Mapsの経路表示が健康に優しすぎる件について (2007/03/30)
諸卿もご存知の通り、Linuxのメモリアロケーションはmalloc(), mmap()した段階ではメモリ割付をせず、最初にメモリにアクセスしたときに行うという俗に「first touch」と呼ばれるアロケーションポリシーを採用している。
さて、んでは、このmmap()したけどまだ実際にはメモリ割付されているないアドレスにたいしてmlock()したらどうなるか。
というと、この時点でメモリ割付が走る。
走るのはいいんだが、これがまたベラボーに遅い。
別にLinuxカーネルのアルゴリズムが悪いわけではなくて、メモリ割付をする=そのページを0クリアするという事なので、DRAMのアクセス速度が超えられない壁となって立ちはだかるわけだ。
じゃあ、どのくらい時間がかかるか計算してみよう。
まず、DRAMをDDR2 PC5300と仮定しよう。イマドキ、こんなもんよね。
これでアクセス速度理論値 5300/2=2650MB/s(=2.65GB/s).
mlockするサイズを150GBと仮定すると150 / 2.65 =~ 56.6 sec
うむ、約1分かかるな。
ただ、この1分はただの1分ではなくカーネル空間での1分であるので、
Linuxのつくりの問題で
・CPUが何個あろうと1分かかる
(mlockをcallしたCPUで全処理走るから)
・その間、スケジューラは一切走らず別のプロセスは動作できない
(CONFIG_PREEMPT無効の場合。Redhat Enterprise Linuxとかは無効)
という事態になる。
ところで、世の中にはサーバーが無反応になったら自動的にリブートが走るという便利なサービスを提供しているソフトがいっぱいあってな・・・
かつ、Linuxではevent/n スレッドはper CPUなスレッドであるから、
あるスレッドが動けない状態になっても別スレッドは助けてくれない仕組みになっておってな・・・
まあ、このevent/nスレッドはwork queueとか使うと勝手に使われる仕組みなので、知らない間につかってしまっている事も多いのだが。
・・・・
あとは・・・分かるな? ・゚・(ノД`)・゚・
PS. 計算式にメモリのデュアルチャンネルありなしが入っていないのはおいらが詳しくないから。あれって、シーケンシャルアクセスにも効果あるんだっけ?
ロック! ランキング!
さて、んでは、このmmap()したけどまだ実際にはメモリ割付されているないアドレスにたいしてmlock()したらどうなるか。
というと、この時点でメモリ割付が走る。
走るのはいいんだが、これがまたベラボーに遅い。
別にLinuxカーネルのアルゴリズムが悪いわけではなくて、メモリ割付をする=そのページを0クリアするという事なので、DRAMのアクセス速度が超えられない壁となって立ちはだかるわけだ。
じゃあ、どのくらい時間がかかるか計算してみよう。
まず、DRAMをDDR2 PC5300と仮定しよう。イマドキ、こんなもんよね。
これでアクセス速度理論値 5300/2=2650MB/s(=2.65GB/s).
mlockするサイズを150GBと仮定すると150 / 2.65 =~ 56.6 sec
うむ、約1分かかるな。
ただ、この1分はただの1分ではなくカーネル空間での1分であるので、
Linuxのつくりの問題で
・CPUが何個あろうと1分かかる
(mlockをcallしたCPUで全処理走るから)
・その間、スケジューラは一切走らず別のプロセスは動作できない
(CONFIG_PREEMPT無効の場合。Redhat Enterprise Linuxとかは無効)
という事態になる。
ところで、世の中にはサーバーが無反応になったら自動的にリブートが走るという便利なサービスを提供しているソフトがいっぱいあってな・・・
かつ、Linuxではevent/n スレッドはper CPUなスレッドであるから、
あるスレッドが動けない状態になっても別スレッドは助けてくれない仕組みになっておってな・・・
まあ、このevent/nスレッドはwork queueとか使うと勝手に使われる仕組みなので、知らない間につかってしまっている事も多いのだが。
・・・・
あとは・・・分かるな? ・゚・(ノД`)・゚・
PS. 計算式にメモリのデュアルチャンネルありなしが入っていないのはおいらが詳しくないから。あれって、シーケンシャルアクセスにも効果あるんだっけ?
ロック! ランキング!
- 関連記事
-
- IA64 Linux の i-cache 管理が間違っていた件について (2007/06/23)
- linuxのmlockが凶悪な件について (2007/05/02)
- kprobeはすごくCoolです (2007/04/11)