100% Hardcore! RSS
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|
トップ <前の日記(2006-06-01) 次の日記(2006-06-03)> 最新

2006-06-02

_ [diary] 見た事無いよ、こんなvmstatの値

昨日リリースしたサイトが予想以上に反響があったのか、システムリソースの見積もりを失敗したのか、リリース開始からload average高め。で、今日も状態を確認するためにvmstat 1を端末で流していたら…サーバが応答しなくなった…ヤバイ…

ていうか、system inが133878って!

_ [develop][symfony] モジュール単位でユーザ定義設定 module.yml

symfonyではアプリケーション単位でのユーザ定義値の設定はsymfony_root/apps/アプリケーション/config/app.ymlで行う。で、モジュール単位での設定はsymfony_root/apps/アプリケーション/modules/モジュール/config/module.ymlで行う。なんだが、ここで設定した値の取得方法がドキュメントに書かれていない。app.ymlの方は説明されているのだけど、module.ymlの方は、「同様に...」と省略されている。実際には

$value = sfConfig::get('mod_モジュール_ネームスペース');

なんだけど、それはドキュメントには書かれていない。書かれているけど、モジュールが抜けていたりする。

Configuration explained

Module configuration

とりあえずどんなYAMLで設定した値がsfConfigの中でどのようなキーで保存されているかは、キャッシュディレクトリを覗くのがてっとり早い。例えばfrontedアプリケーションのprod(商用)環境のprモジュールのmodule.ymlのキャッシュならばこのように確認できる

$ cd symfony_root; cat cache/frontend/prod/config/modules_pr_config_module.yml.php

_ [diary] livedoor Reader + YouTube + はてなブックマークで最速動画ウォッチング

ギザベンリス!と思いインストールしてみましたが、yでYouTube動画が開くものの、どうやって再生すればよいのか分かりませんでした…てか、俺の問題?う〜ん。また余裕があるときに深追いしてみるか

_ [develop][php] PHPを使って大きいデータを吐き出すバッドノウハウ

今回リリースしたサイトは超デカメな素材ファイルをばらまくという素敵なサイトなんだが、これらの素材ファイルをダウンロードするためにはあらかじめ会員情報などから適切な権限確認を行わないといけない。なので、データの吐き出し部分もphpで実装することになる。そこで単にphpの最後の方に

 readfile($file);

したのでは吐き出し対象のファイルがメモリに取り込まれて大変な事になる。てか今日大変な事になっていた…そこで、以下のような魔法を唱えてあげると、メモリには入らない

    flush();
while(@ob_end_flush()) {}
readfile($file);

検証したのはphp-5.1.4とapache-2.2.2。検証方法としては、readfileの後に

error_log(sprintf("memory used: %dKb", intval(memory_get_usage()/1024)));
みたいな事をして確認(実際にはちょっと違うんだけど)。使用前はまるまる対象$fileのファイルサイズ+phpプログラム分のメモリを消費していたのだけど、使用後は読み込み対象のファイルサイズに関係なく、phpプログラム分のメモリ消費だけになりました。単純にphpの設定でoutput_bufferingを0にしたりしてもいいのかな。しかしそれが必ずしもできる環境ではないし、header()とかのからみがよくわからないので、こちらの対策をチョイス。他のバージョンのphpでは扱いが若干違うようです。以下のスレッドが参考になるかも?

*ファイルの出力中にメモリフロー

メモリーフローってなんだってツッコミはおいといて、結局このスレッドもまとまった解がないまま終わってるし。メーリングリストでただでノウハウ教えてもらっているんだからさ、最後に内容まとめてコミュニティにコミットするのは義務なんじゃないかと思うのだけど。ま、俺はメーリングリストに参加していないけど、こうやってウェブ経由で情報を得たのでフィードバックしているわけなんだが。always pass on knowledge!

お名前:
E-mail:
右の画像に書かれている文字列を入力してください:
コメント:

トップ <前の日記(2006-06-01) 次の日記(2006-06-03)> 最新
合計: 2196499 今日: 421 昨日: 1246 (from 2003/11/04)
PROFILE

Kyoichi Ozaki

CONTACT



SPONSORS




最近のツッコミ
1.kyoichi (Jan 08. 19:46)
2.HR (Jan 08. 14:42)
3.kyoichi (Jan 08. 13:01)
4.fixika (Jan 07. 12:30)
5.kyoichi (Dec 29. 12:50)
6.kyoichi (Dec 29. 12:49)
7.MITSU (Dec 29. 12:39)
8.HIRO (Dec 28. 18:20)
9.YU (Dec 28. 14:59)
10.Kyoichi (Dec 28. 02:52)
11.HR (Dec 26. 13:27)
12.ミナト (Dec 26. 11:06)
13.kyoichi (Dec 25. 23:33)
14.kyoichi (Dec 25. 23:33)
15.kyoichi (Dec 25. 23:32)
16.fixika (Dec 24. 16:34)
17.hgd☆ (Dec 19. 18:49)
18.fixika (Dec 19. 18:10)
19.fixika (Dec 19. 14:04)
20.Kyoichi (Dec 19. 01:43)