どろソース入手完了

職場の先輩から情報を得てダイエーLink で入手。(^_^)b いつもはジャスコLink でお買い物が多いのですが、それと比べると・・・高くない!?

と思ったけど、餃子はおいしいし、しいたけは肉厚だし、品質のわりには安いかもしれない。AEONってどうも安かろう悪かろうてな感じが^^;

ただしカップ麺は高い。焼きそばUFOはダイエーでは119円だったが、ジャスコじゃ99円だw

— posted by mu at 06:07 pm   commentComment [0]  pingTrackBack [0]

実は解決してない

この話Link 。_| ̄|○カンベンシテクレ

以前から落ちるのはvacuumdb --fullでPostgreSQLの全テーブルをvacuumしたときというのは分かってる。ただ兆候が見つからずいきなりOOM Killerの餌食になってるので、困る。うまく行くときもあるので謎。ほぼ同じソフトウェア構成で、搭載DRAMが2GB & シングルCPUのサーバは何の問題もないので、さらに謎。

とりあえず、--fullオプション付けて一気にやらずに、1テーブルごとにコマンド発行に変更。さて、初日はうまく行きましたが・・・ → もう一回やったら落ちた _| ̄|○

つぎはカーネルを2.6.9-42.0.2.ELsmp(平穏だった去年8月レベル)に戻してみることに。頼む、安定してくれ・・・→ 落ちた _| ̄|○

続きLink

— posted by mu at 04:44 pm   commentComment [0]  pingTrackBack [0]

OOM Killer対策

先日のこの話LinkOut Of Memory KillerLink 、通称OOM Killerのせいらしい。キャッシュとしてshared memoryを贅沢に(^^;)使用するPostgresSQLのWrite processが集中的に狙われてます>_<。

直接的にこの仕組みを切るには

echo 0 > /proc/sys/vm/oom-kill

echo -17 > /proc/(PID)/oom_adj

ただし前者はRedHat独自&OOM Killer完全停止、後者はカーネル2.6.11以降&プロセスごとに設定。CentOS 4.4のカーネルは現時点2.6.9なので前者。もうひとつの方法として、OOM Killerが発動する1つの原因を作っているメモリのオーバーコミットをさせない方法。具体的には、

echo 2 > /proc/sys/vm/overcommit_memory
echo 90 > /proc/sys/vm/overcommit_ratio

これを起動時に自動設定させるには、/etc/sysctl.confに以下の行を追加。

vm.overcommit_memory = 2
vm.overcommit_ratio = 90

ちなみにオーバーコミットとは何かといいますと、「ありもしないメモリを割り当てる」こと。全てのプログラムは情報を記録するためのメモリが必要で、必要な量をOSに事前申請(malloc)して割り当ててもらう必要があります。最近のJavaとか.NET使っている方はそんなのやったことないかもしれませんが、それはJava runtimeや.NET Frameworkが自動でやってくれているからです。後で追加申請できますが、プログラムが複雑になりやすいので最初に多めに申請する場合が多いです。

従来のOSは申請に応じてマシンのメモリを分け与え、無くなったら以後の申請は却下するわけですが、前述のように使わないのに多めに申請するプログラムが多いと(いや、実際に多いw)、有効利用されないメモリが多くなって効率が悪い。

そこで「どうせお前ら、使いもしないのに多めに申請してるんだろ!?」と考えるLinuxは(w)、事前申請は気前良くと受け付けます。たとえマシンにそれだけメモリがなくても。仮想メモリを自動的に増やすという話じゃありません。実メモリ+仮想メモリの合計以上に申請されても許可しちゃうんです。で、各プログラムが実際にメモリを使おうとしたときに初めて使う分だけ本物のメモリを分け与えるわけです。(これだけでも、私には良くそんな面倒なもの作ったなと感心)

問題はもし多くのプログラムが申請した分のメモリを本当に使い出したら・・・。足りません。どうせ実際には使いやしないと高をくくって申請は受けましたが、無いものは無いのです。しかしプログラムはそのメモリにアクセスできないとそれ以上処理できないわけで。他のプログラムが終わってメモリが返却されるのを悠長に待ってはいられない場合もあるでしょう。さて、どうするか? 「しょうがねぇ、いくつかのプログラムお取り潰しにして、そこが使っていたメモリを巻き上げるか・・・」そこでOOM Killerです。

メモリが少ないから何も言わず終了してくれ(会社の経営が苦しいから、何も言わずに辞めてくれw)、ってOSからご丁寧に頼んで素直に聞いてくれるプログラムばかりなら良いですが、事は一刻を争う。OOM Killerによるお取り潰しはプログラムに了解無く一方的に行われます。ただ無作為にプログラムを止めるわけではなく、大切なプログラムは見逃すとか独自のルールを持ってます。それに照らし合わせるとメモリを大量消費しているPostgreSQLのwriterが目を付けられると。

上の対策は分け与えるメモリが無いなら申請時に却下するという、従来のメモリ管理にすることになります。メモリの利用効率が悪くなってしまいますが、OOM Killerの出番がなくなります。

参考

なんかこれ・・・メモリの先物取引とか手形に思えるのは、私だけでしょうか? OSがこんな実装するなんて、ちょっと意外。

— posted by mu at 11:23 am   commentComment [0]  pingTrackBack [0]

壁紙集の実装変更完了

というわけでLink データをXML化したものに変更しました。使う側からはほとんど差はないはず。それまでのphpスクリプトが簡単なものなので、さほど苦労もなく変更完了。

— posted by mu at 10:33 pm   commentComment [0]  pingTrackBack [0]

今日のミルリリ

millily-20070309

ミルリリー、PSOBBLink に出てくるオブリリーの変異体(レアモンスター)。恐怖の即死魔法メギドの強力版を吐く・・・

と、前置きはこれくらいにしてw。レアアイテム、サイコウォンドを求めてこのミルリリーを狩っているのですが、ただでさえお目にかかりにくいこいつがお目当てのアイテムを落とす確率は低く、なかなか手に入りません。

すでにかなりのオブリリーを始末したわけですが未だ出ず、気力を保つためにミルリリーが出たら、ブログに掲載しようとw。

てなわけで、その第一回目。落し物はレジスト/コールドでした _| ̄|○ イラネ

— posted by mu at 12:47 am   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.1507 sec.
prev
2025.3
next
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31